feat/blitz 0.3 router universal #76
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| build: | |
| name: build ${{ matrix.target }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - target: aarch64-macos | |
| os: macos-14 | |
| - target: x86_64-macos | |
| os: macos-14 | |
| - target: x86_64-linux-musl | |
| os: ubuntu-latest | |
| - target: aarch64-linux-musl | |
| os: ubuntu-latest | |
| - target: x86_64-windows-gnu | |
| os: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Zig 0.16.0 | |
| uses: mlugg/setup-zig@v2 | |
| with: | |
| version: "0.16.0" | |
| - name: Verify Zig version | |
| run: zig version | |
| - name: Build | |
| # ReleaseSafe triggers a Zig 0.16/tree-sitter C interop trap in ts_parser_parse | |
| # on macOS/Linux smoke runs. Use ReleaseFast for distributable smoke builds; | |
| # native `zig build test` below keeps Debug safety checks in CI. | |
| run: zig build -Dtarget=${{ matrix.target }} -Doptimize=ReleaseFast | |
| - name: Setup Bun (linux-musl only) | |
| if: matrix.target == 'x86_64-linux-musl' | |
| uses: oven-sh/setup-bun@v2 | |
| - name: Smoke version | |
| if: matrix.target == 'aarch64-macos' || matrix.target == 'x86_64-macos' || matrix.target == 'x86_64-linux-musl' | |
| run: ./zig-out/bin/blitz --version | |
| - name: Smoke doctor | |
| if: matrix.target == 'aarch64-macos' || matrix.target == 'x86_64-macos' || matrix.target == 'x86_64-linux-musl' | |
| run: ./zig-out/bin/blitz doctor | |
| - name: Smoke benchmark regression gate | |
| if: matrix.target == 'x86_64-linux-musl' | |
| run: bun run bench/run.ts | |
| - name: Test (native only) | |
| if: matrix.target == 'x86_64-linux-musl' || matrix.target == 'aarch64-macos' | |
| run: zig build test | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: blitz-${{ matrix.target }} | |
| path: | | |
| zig-out/bin/blitz* | |
| if-no-files-found: warn |