Skip to content

Add multi-OS CI (Windows, macOS ARM64/Intel) with cross-platform connection testing#14

Closed
mariuz wants to merge 25 commits into
juarezr:masterfrom
mariuz:master
Closed

Add multi-OS CI (Windows, macOS ARM64/Intel) with cross-platform connection testing#14
mariuz wants to merge 25 commits into
juarezr:masterfrom
mariuz:master

Conversation

@mariuz

@mariuz mariuz commented Apr 14, 2026

Copy link
Copy Markdown
Contributor

Extends CI matrix beyond ubuntu-latest to cover windows-latest, macos-latest (ARM64), and macos-13 (Intel), based on #7 — with fixes for several platform-specific bugs that would cause that PR to silently fail.

Key fixes over the upstream PR

Problem Fix
runner.os == 'macos' wrong case runner.os == 'macOS'
docker-practice/actions-setup-docker unreliable on ARM64 Replaced with colima (Homebrew), works natively on ARM64 and x86_64
Windows Docker Linux-container switch used wrong path C:\Program Files\Docker\Docker\DockerCli.exe via PowerShell
INPUT_FIREBIRD_DATABASE set to full host path for non-ubuntu runners Fixed to plain filename (my_database.fdb); the full path is server-side only
No wait-for-ready on non-ubuntu platforms test_connection.py --wait 120 handles cross-platform port polling
firebird-driver requires native .so/.dylib/.dll — breaks on Windows/macOS Replaced with firebirdsql (pure Python wire-protocol, zero native deps)
Git Bash converts /var/lib/… to a Windows path before Python receives it MSYS_NO_PATHCONV=1 on the Python test step
Unsupported isql flags (-echo -merge -m2) and rdb$database query in testing.sh Removed flags; query changed to SELECT * FROM rdb$roles

New files

  • test_connection.py — pure-Python connection tester (uses firebirdsql package). Built-in TCP port wait + retry; no native Firebird client required on the runner.
  • .github/actions/workflow-info/action.yaml — composite action that writes runner/job context to the GitHub step summary.

Matrix strategy

Non-ubuntu runners test [latest, 5, 4, 3] (the full 9-version suite stays on ubuntu-latest) to keep CI time reasonable while still validating all supported OS/arch combinations.

Copilot AI and others added 25 commits April 9, 2026 13:11
Add event_port input to enable Firebird RemoteAuxPort (events support)
…for test issues

- Add test_connection.py: pure-Python Firebird tester using firebirdsql
  package (no native library needed); includes port-wait and retry logic
- Add .github/actions/workflow-info/action.yaml composite action
- Update testing_changes.yml:
  * Expand matrix to windows-latest, macos-latest (ARM64), macos-13 (Intel)
  * Set fail-fast: false
  * Setup Docker on macOS with colima (works on ARM64 and x86_64)
  * Switch Windows to Linux containers via DockerCli.exe (correct path)
  * Fix INPUT_FIREBIRD_DATABASE for non-ubuntu (filename only, not full path)
  * Add MSYS_NO_PATHCONV=1 to prevent Git Bash path mangling on Windows
  * Use actions/checkout@v4
  * Add if: always() on Stop Container steps
- Fix testing.sh: use SELECT * FROM rdb\$roles and remove unsupported isql flags

Agent-Logs-Url: https://github.com/mariuz/firebirdsql-github-action/sessions/bed7893d-94d6-420d-8b6b-338b3aefebe0

Co-authored-by: mariuz <18359+mariuz@users.noreply.github.com>
Add multi-OS CI (Windows, macOS ARM64/Intel) with cross-platform connection testing
Fix: replace removed `--wait` flag in `colima start`
fix: guard DockerCli.exe switch on Windows CI runners
fix: colima startup failure on macOS runners (VZ driver fatal exit)
fix: run firebirdsql/firebird as linux/amd64 on Windows Docker (Windows Server 2025)
fix: clean up colima state before QEMU fallback on macOS runners
…switch

Fix: switch to Linux containers on Windows runners via WSL2 dockerd fallback
…er-one

fix(ci): replace colima VZ driver with QEMU on macOS runners
Replace colima/QEMU macOS Docker setup with docker/setup-docker-action@v5
Drop macos-latest (ARM64) from CI matrix; use only macos-13 (amd64)
@mariuz

mariuz commented Apr 14, 2026

Copy link
Copy Markdown
Contributor Author

Solution (recommended): Don’t run the container-based tests on Windows/macOS
Your action is a Docker container action (or otherwise requires Linux containers). Running it on Windows/macOS runners is brittle and (on GitHub-hosted Windows) often impossible without heavy custom provisioning.

Update the matrix to run Firebird container tests only on Ubuntu

@mariuz mariuz closed this Apr 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants