An explicit model pick binds, or the send is refused #738
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: [master] | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| frontend: | |
| name: Frontend | |
| # Linux, like every other QA job. The Namespace profile trialled here was | |
| # macOS (`Operating System: macOS`, bun-darwin-aarch64) and finished in | |
| # 21s against ubicloud's 1m4s, but this job is typecheck, lint and a | |
| # bundler: nothing it does needs a Mac, and QA is the half that must stay | |
| # cheap because it runs on every push. The only macOS in this repository | |
| # is the release bundle, which cannot be built anywhere else. | |
| runs-on: ubicloud-standard-2 | |
| defaults: | |
| run: | |
| working-directory: apps/gui/frontend | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Keep AgencyZero QA actions semantic | |
| working-directory: . | |
| run: | | |
| if grep -nE 'press:[[:space:]]*true' tests/ps-qa/*.ron; then | |
| echo 'AgencyZero ps-qa checks must use semantic node activation.' >&2 | |
| exit 1 | |
| fi | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| # --frozen-lockfile: a dependency that only resolves because the lockfile | |
| # was ignored is a dependency nobody chose. | |
| - run: bun install --frozen-lockfile | |
| - run: bun run typecheck | |
| - run: bun run lint | |
| - run: bun run lint:ui-controls | |
| - run: bun run build | |
| rust: | |
| name: Rust | |
| runs-on: ubicloud-standard-4 | |
| env: | |
| # CI needs diagnostics, not debugger symbol tables. This substantially | |
| # shrinks compile and link work without changing which tests execute. | |
| CARGO_PROFILE_DEV_DEBUG: 0 | |
| CARGO_PROFILE_TEST_DEBUG: 0 | |
| CARGO_INCREMENTAL: 1 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # First, because it needs nothing installed and it guards a failure this | |
| # job cannot otherwise see: `blitz-runtime` is off here, so a renderer | |
| # pinned at two revs compiles green through every PR gate and only breaks | |
| # the macOS bundle after the merge. | |
| - run: scripts/check-one-rev-per-git-source.sh | |
| # The Tauri stack needs a webview toolchain to compile at all. | |
| - name: Install Tauri system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y --no-install-recommends \ | |
| libwebkit2gtk-4.1-dev \ | |
| libjavascriptcoregtk-4.1-dev \ | |
| libsoup-3.0-dev \ | |
| libgtk-3-dev \ | |
| librsvg2-dev \ | |
| patchelf | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: latest | |
| # `tauri::generate_context!` embeds `frontendDist` at compile time, so | |
| # apps/gui/dist has to exist before cargo runs. It is generated, not | |
| # tracked, and `cargo build` does not invoke `beforeBuildCommand` — | |
| # only `cargo tauri build` does. | |
| - name: Build the frontend az-gui embeds | |
| working-directory: apps/gui/frontend | |
| run: | | |
| bun install --frozen-lockfile | |
| bun run build | |
| - name: Build the AgencyProxy sidecar | |
| run: scripts/stage-agency-proxy-sidecar.sh | |
| - run: cargo fmt --all --check | |
| # Blitz is currently a macOS preview runtime. Enabling every feature on | |
| # this Linux runner asks it to implement Tauri's GTK-only runtime traits, | |
| # which is separate portability work rather than Linux CI for AgencyZero. | |
| - run: cargo clippy --workspace --all-targets --no-default-features --features experimental,webview-runtime -- -D warnings | |
| - run: cargo test --workspace --no-default-features --features experimental,webview-runtime |