Skip to content

Commit 74c524c

Browse files
committed
ci(cross-platform): gate on Linux, make macOS/Windows non-blocking
Focus CI on Linux now and defer full cross-platform support to a later effort. The FFI is currently POSIX-only — probe.zig uses fcntl/F.GETFL for non-blocking sockets and cli.zig uses posix.getenv — so Windows does not compile (F is void on Windows; posix.getenv is unavailable there) and macOS is build-only. Rather than block every PR on targets that are not supported yet: - Linux: gates as before (build + integration tests; continue-on-error false) - macOS + Windows: still build for early signal, but continue-on-error true, so they no longer fail the workflow or gate merges. Full Windows/macOS support (fcntl -> ioctlsocket(FIONBIO), posix.getenv -> std.process.getEnvVarOwned, and whatever else surfaces) is tracked for a dedicated cross-platform effort. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LvsZgNxFbeqfRmrVFNhJ8G
1 parent cc0b75b commit 74c524c

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

.github/workflows/cross-platform.yml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# SPDX-License-Identifier: MPL-2.0
22
# Cross-platform CI for Game Server Admin
3-
# Builds and tests on Linux, macOS, and Windows
3+
# Linux gates (build + integration tests). macOS and Windows are
4+
# non-blocking build legs until full cross-platform support lands —
5+
# the FFI is currently POSIX-only (fcntl sockets, posix.getenv).
46

57
name: Cross-Platform Build & Test
68

@@ -19,19 +21,27 @@ jobs:
1921
fail-fast: false
2022
matrix:
2123
include:
24+
# Linux is the gating target. macOS/Windows still build for early
25+
# signal but do not gate (continue-on-error) — full cross-platform
26+
# support is deferred to a later effort.
2227
- os: ubuntu-latest
2328
name: Linux
2429
run-integration: true
30+
continue-on-error: false
2531
- os: macos-latest
2632
name: macOS
2733
run-integration: false
34+
continue-on-error: true
2835
- os: windows-latest
2936
name: Windows
3037
run-integration: false
38+
continue-on-error: true
3139

3240
name: ${{ matrix.name }}
3341
runs-on: ${{ matrix.os }}
3442
timeout-minutes: 30
43+
# Linux gates; macOS/Windows are non-blocking (see matrix include).
44+
continue-on-error: ${{ matrix.continue-on-error }}
3545

3646
steps:
3747
- name: Checkout

0 commit comments

Comments
 (0)