CI quality gates
For maintainers. Using T3 Code? See docs/user.
.github/workflows/ci.yml starts with one small Classify
changes job on pull requests and pushes to main. It resolves the complete changed-file list,
matches both sides of renames, and decides which of the following gates can observe the change:
- Check runs
vp check,vpr typecheck, the desktop pipeline build, and preload bundle verification for Node product and configuration changes. Workflow-only changes keep the required check name but use a no-install parse marker. - Test runs every package test task except
apps/server. - Test Server 1/2/3 shards the serialized
apps/serversuite across three runners. Server-only work skips the non-server runner, while client-only work skips all three server runners. Shared contracts, shared runtime code, workspace configuration, and server test dependencies run both. - Rust formats and tests
native/resource-monitor, and only runs for that crate or CI-control changes. - Mobile Native Static Analysis runs
vp run lint:mobileon macOS for handwritten Swift/Kotlin, its lint configuration, and the command dependencies it imports. Generatedios/andandroid/projects remain excluded. - Release Smoke exercises release-only workflow steps through
scripts/release-smoke.ts. It runs for release scripts, workspace manifests, patches, mobile dependency archives, andrelease.yml.
Documentation, repository metadata, and agent/editor configuration skip every product runner. CI workflow or classifier changes run every gate. Unknown, missing, failed, or truncated changed-file classification fails open and runs every gate, so optimization cannot silently remove coverage. Skipped jobs retain the existing required-check names and GitHub treats them as successful.
.github/workflows/release.yml builds macOS (arm64 and x64), Linux (x64), and Windows (x64)
desktop artifacts from a single v*.*.* tag and publishes one GitHub release. It auto-enables
signing only when platform credentials are present. macOS passkey builds additionally require
APPLE_TEAM_ID and the MACOS_PROVISIONING_PROFILE secret; Windows uses Azure Trusted Signing.
Without the core signing credentials, it still releases unsigned artifacts.
See Release Checklist for the full release/signing setup checklist.