Skip to content

An explicit model pick binds, or the send is refused #738

An explicit model pick binds, or the send is refused

An explicit model pick binds, or the send is refused #738

Workflow file for this run

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