fix(ci): build each Burrito target on its matching OS runner (CRY-40) - #108
Conversation
rustler_precompiled (used by mdex_native/Marcli) fetches a precompiled NIF for the build host's platform at compile time. The previous single ubuntu-latest runner caused the Linux .so to be bundled into macOS and Windows Burrito releases, making MDEx unavailable at runtime and crashing `lcls --full` with an UndefinedFunctionError. Switch the burrito-build matrix to per-OS runners so each target picks up the correct precompiled NIF automatically: - macos_aarch64 -> macos-latest (Darwin arm64 .dylib) - linux_x86_64 -> ubuntu-latest (Linux x86_64 .so, unchanged) - windows_x86_64 -> windows-latest (Windows x86_64 .dll) Remove the p7zip install step: it was only needed when cross-compiling the Windows target from Linux; Windows runners have 7z pre-installed. Fixes CRY-40. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Implementation completeThis PR implements the fix for CRY-40. What changed:
Why this fixes the crash: Verification: Trigger a release workflow (or |
Windows runners default to pwsh; bash is required for the env-var assignment and POSIX test syntax used in the build and verify steps. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Rework — address code reviewReview issue addressed: Missing `shell: bash` in `burrito-build` `defaults.run`. Change: Added `shell: bash` to the `defaults.run` block of the `burrito-build` job ( Commit: `722a65d fix(ci): set shell: bash in burrito-build defaults` Quality checks: 227/227 tests pass, compilation clean. No other changes. The `burrito-package` job already runs on `ubuntu-latest` and is unaffected. |
🤖 I have created a release *beep* *boop* --- ## [1.5.1](v1.5.0...v1.5.1) (2026-08-14) ### Bug Fixes * **ci:** build each Burrito target on its matching OS runner (CRY-40) ([#108](#108)) ([c2d592d](c2d592d)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
Summary
lcls --fullcrash caused by MDEx'srustler_precompiledNIF being unavailable in macOS/Windows Burrito releasesubuntu-latest, so the Linux.sowas bundled instead of the Darwin.dylibor Windows.dllmacos-latestformacos_aarch64,ubuntu-latestforlinux_x86_64(unchanged),windows-latestforwindows_x86_64p7zipinstall step, which was only needed when cross-compiling Windows from Linux; Windows runners have7zpre-installedChanges
.github/workflows/main.yaml: convert flattargetmatrix +runs-on: ubuntu-latestto anincludematrix with per-targetrunnerfields; remove theapt-get install p7zip-fullstepTest plan
workflow_dispatch) and confirm all three matrix legs succeed on their respective runner typesmacos_aarch64binary loads MDEx correctly (lcls --fullno longer crashes on Darwin arm64)linux_x86_64andwindows_x86_64builds are unaffectedCloses CRY-40.
🤖 Generated with Claude Code