Skip to content

ci(phase1): cross-build nextest archives on Linux, replay on Windows/macOS (#130) - #188

Merged
zackees merged 3 commits into
mainfrom
feat/meta-work-130
Sep 18, 2026
Merged

zackees merged 3 commits into
mainfrom
feat/meta-work-130

Conversation

@zackees

@zackees zackees commented Sep 18, 2026

Copy link
Copy Markdown
Owner

Closes #130

Moves the windows-msvc and macos-arm64 phase-1 compile step onto ubuntu-24.04 (phase1-cross-build, setup-soldr 0.9.18 cross toolchains, cargo nextest archive). The native runners then replay the archives in phase1-native-run with --archive-file + --workspace-remap. The linux-gnu and windows-gnu legs are unchanged.

Attempt 2: on Windows the pinned cargo-nextest install now runs CARGO_HOME through cygpath -u before tar -C. Git Bash tar read the C: prefix as a remote host, so the install failed and the replay never produced platform-tests.log.

Local evidence:

  • pytest ci/tests: 345 passed; ci.yml parses; fmt + clippy -D warnings + tidy clean.
  • Relocation proof on Linux: archive, hide target/, replay from a copy at a different path with the native-leg filter: 271 tests run, 271 passed.
  • act (act -W .github/workflows/ci.yml -j phase1-cross-build --pull=false -P ubuntu-24.04=soldr-act-24.04:local): both legs green. windows-msvc: soldr prepare 1m43s, archive 1m11s, PE32 verify OK. macos-arm64: prepare 2m21s, archive 50s, Mach-O verify OK. EXIT 0.

🤖 Generated with Claude Code

zackees and others added 3 commits September 17, 2026 23:50
…macOS (#130)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ct on Windows (#130)

Git Bash's GNU tar treats the C: prefix of the native CARGO_HOME path as a
remote host spec, so the pinned cargo-nextest install failed and the
windows-msvc replay never produced platform-tests.log.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…utput (#130)

The windows-msvc leg of PR #188 failed after nextest had already run: a Windows
runner's Python defaults stdout to cp1252, `_run_logged` echoes child output
line by line, and nextest prints characters cp1252 cannot encode. The echo
raised `UnicodeEncodeError` and took the job down, so the leg reported 0 tests
run.

`main` now reconfigures stdout and stderr to UTF-8 with replacement before any
command runs. The child pipe was already decoded leniently; this makes the other
end of the echo match. The regression test reproduces the exact CI error against
a cp1252 console without the fix.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@zackees
zackees merged commit e965ea0 into main Sep 18, 2026
27 checks passed
@zackees
zackees deleted the feat/meta-work-130 branch September 18, 2026 06:59
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.

Pilot: cross-compile the phase1 build from Linux to free Windows/macOS runners

1 participant