Run and test
Every package script, what runs in CI, and where heavy work belongs.
Setup
Node 22 (pinned in .nvmrc) and npm. Install once at the repository root; do not run npm install inside a package.
git clone https://github.com/harshbhx/gavel-auction.git
cd gavel-auction
nvm use
npm ciCopy .env.example to .env only when a task needs configuration, with PayPal sandbox values only.
Root scripts
| Script | Purpose |
|---|---|
npm run build | tsc -b, all packages with project references |
npm run typecheck | Root and per-package type checks |
npm run lint | ESLint, zero warnings |
npm run format:check | Prettier check (npm run format rewrites) |
npm test | Unit tests of every package (vitest run --project 'unit:*') |
npm run test:pkg -- unit:engine | Unit tests of one package: replace the project name |
npm run test:coverage | Unit tests with coverage, then the per-package floors |
npm run test:property | Property tests (property:* projects) |
npm run test:scenarios | The in-process scenarios (unit:e2e) |
npm run test:tools | Tests of the repository scripts and lint rules |
npm run check:deps | Dependency rule, engine purity, payments dependencies |
npm run check:secrets | Builds the web app with canary values and scans the bundle |
npm run check:ascii, check:banned-words, check:live-host, check:ownership, check:audit, check:gates-result | The repository checks described in Infra |
test:e2e, test:e2e:sandbox, test:load and report at the root are placeholders that print "not implemented" and exit 1. The real commands are the package scripts under the e2e tab below.
Package scripts
| Command | What it does |
|---|---|
npm run test -w @gavel/shared | Vitest |
npm run typecheck -w @gavel/shared | tsc --noEmit |
What CI runs
On every pull request
ci runs the checks that make up the required roll-up: typecheck, lint, format, unit, coverage floors, property, scenarios, dependency rules, secret scans, ASCII and banned words, docs format, commit messages, ownership, the voice checks, fixture validation, the Python reference tests, the differential test, tool tests, package checks and a production build of the server with a smoke run. A documentation-only change skips the build, test and type jobs.
On the paths a change touches
Path-filtered workflows run only when relevant: engine-readiness, server-postgres, payments-evidence, sim-multiday, load, voice-eval, voice-browser, browser-specs, ui-screens, interface-check, audit and docsite.
On a schedule and by hand
The nightly sandbox specs, the G3 probe, the judge smoke, the daily backup and the weekly checks run on a schedule. Gates and measurements run by hand. See the workflow tabs on Infra.
Reading CI results
gh pr checks <number>
gh run watch <run-id>
gh run view <run-id> --log-failed
gh run download <run-id> -n <artifact-name>Screenshots, reports and evidence are uploaded as artifacts (for example ui-screens, docsite-shots and the nightly sandbox report).
- package.jsonroot scripts
- vitest.workspace.tsthe unit and property projects
- .github/workflows/ci.ymlthe pull request pipeline
- CONTRIBUTING.mdthe contribution guide
Last updated on