Deployment Workflow
Terra now uses a mainline release model: main is the source of truth, CI gates every change, and tags create human-readable GitHub releases.
Branch and Environment Model
Required CI Gates
Terra CI (.github/workflows/ci.yml) enforces:
- Build/typecheck
- ESLint
- Vitest suite
- No skipped Terra Playwright directives (
check-terra-skipped-tests.mjs) - Chromium public status smoke test
Daily Development Flow
Release Process (GitHub Releases)
Terra release automation lives in.github/workflows/release.yml.
Option A: Tag push (most direct)
Option B: Manual workflow dispatch
Use Actions → Release → Run workflow and provide:tag(optional; auto-generatesvYYYY.M.Dif omitted) IfvYYYY.M.Dalready exists, the workflow auto-selectsvYYYY.M.D.1,.2, etc.target(defaults tomain)prerelease(optional)
Rollback
If a bad change lands on production:Quick Commands
Testing
Test and quality gates
Contributing
Development guidelines