You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Two new layers of macOS CI coverage. macOS GH Actions runners are free for
public repos and run in parallel with Linux/Windows, so wall-clock release
time is unchanged.
Phase A — macOS unit + plugin tests (Rust + bun)
tests.yml: new `rust-macos` job
release.yml: new `test-macos` job (gates the e2e suite)
Until now, the build-darwin-* jobs only ran `cargo build --release`, never
`cargo test`, so macOS-specific code paths (FSEvents, /var canonicalization,
broken-symlink fallback, bash_background SIGTERM behavior, Apple Silicon
codegen) had zero CI coverage. Tag-time release builds were the only place
the macOS binary ever got produced, with no test signal at all.
Phase B — macOS native e2e
_e2e-suite.yml: new `e2e-macos` job
tests/macos-e2e/run.sh: new host-setup script (mirrors Dockerfile.linux-x64)
tests/docker/test-e2e.sh: refactored to be platform-aware via
AFT_E2E_PLATFORM=linux|macos. The shared scenario
logic now reads the broken-ONNX path
(libonnxruntime.so vs libonnxruntime.dylib),
mock-server location, and platform display from
env so we don't fork the harness.
Single source of truth: macOS uses the same scenario script as Linux Docker,
just on a real macOS-arm64 host with native install of OpenCode + Bun +
aimock. Catches FSEvents watcher behavior, /var vs /private/var
canonicalization, broken-symlink-chain fallback, and .dylib loading paths
for ONNX (probe order /opt/homebrew/lib then /usr/local/lib differs from
Linux /usr/local/lib).
Verified locally:
- yaml.safe_load on all 3 workflow files: clean
- actionlint .github/workflows/*.yml: clean
- bash -n on tests/{docker,macos-e2e}/test-e2e.sh + run.sh: clean
- cargo fmt --check: clean
- cargo clippy --workspace --all-targets -- -D warnings: clean
- bun test (opencode-plugin): 679 pass / 2 skip / 0 fail
- bun test (pi-plugin): 380 pass / 0 fail
0 commit comments