CI
What the GitHub Actions CI workflow checks and in what order.
CI
.github/workflows/ci.yml runs on every push and pull request.
Job: lint-and-typecheck (ubuntu-latest)
Steps, in order (a failure stops the job):
actions/checkout@v6pnpm/action-setup@v4+actions/setup-node@v6(Node 22, pnpm cache)dtolnay/rust-toolchain@stable- Install Tauri Linux deps (
libwebkit2gtk-4.1-dev,libayatana-appindicator3-dev,librsvg2-dev,libxdo-dev) pnpm install --frozen-lockfile- Lint —
pnpm run lintinapps/desktop(Biome) - Type check —
pnpm exec tsc --noEmitinapps/desktop - Unit tests —
pnpm run test:unitinapps/desktop - Automation readiness tests —
pnpm run test:automationat root (hermetic Foundry receipt sanitize tests; the live manifest verifier runs inrelease.ymlas a post-upload check, not here) - MCP sidecar build smoke —
pnpm run prepare:mcp-sidecar - Desktop build —
pnpm run build(Vite production build) - MCP protocol and safety tests —
cargo test --manifest-path src-tauri/Cargo.toml mcp:: - MCP release-mode stdio lifecycle —
cargo test --release --manifest-path src-tauri/Cargo.toml --test mcp_stdio
Other workflows
| Workflow | Trigger | Purpose | Doc |
|---|---|---|---|
auto-release.yml |
push to main on tauri.conf.json version bump |
cut v<version> release + dispatch release.yml |
release-pipeline.md |
release.yml |
release.created or workflow_dispatch |
build/sign/upload Tauri binaries + latest.json |
release-pipeline.md |
deploy-landing.yml |
workflow_dispatch (manual) |
deploy Astro site to Cloudflare Pages | landing-deploy.md |
weekly.yml |
cron 0 9 * * 1 (Mon 09:00 UTC) + workflow_dispatch |
lockfile-agnostic quality check (lint/typecheck/test/build if defined) | jobs/weekly-quality.md |
docs.yml |
push/PR | doc link + structure validation | ../development/docs.md |
Local pre-commit / pre-push
- pre-commit (
.husky/pre-commit):lint-staged→biome check --writeon stagedapps/desktop/src/**/*.{ts,tsx}. - pre-push (
.husky/pre-push):npm run lint(rootlintscript, which runs Biome) + secret-pattern scan over tracked files. Exclusions are anchored to known dirs (benchmark/,apps/landing-page-astro/public/benchmark/, fixtures,secret_policy.rs).