Public source validation / validate (push) Failing after 3m8s
37 lines
1.6 KiB
Markdown
37 lines
1.6 KiB
Markdown
# CI pipeline target
|
|
|
|
Codex must implement CI-equivalent commands locally even when no hosted CI is connected.
|
|
|
|
Recommended stages:
|
|
|
|
1. repository/planning validation;
|
|
2. formatting;
|
|
3. lint/static analysis;
|
|
4. generated contract drift;
|
|
5. wiring/reachability gate (`python tools/check_wiring.py`): every production package must have at least one non-test importer reachable from a binary (`cmd/api`, `cmd/worker`, `cmd/agent`, `cmd/migrate`), or be listed in `tools/wiring_allowlist.json` with a reason and a tracking task id; a task may not be marked done while its deliverable is unreachable;
|
|
6. frontend type/unit (`pnpm test` runs Vitest + Testing Library, including ADR-0008 status invariants);
|
|
7. Go unit/race where suitable;
|
|
8. integration with PostgreSQL/fake sources;
|
|
9. frontend build;
|
|
10. API/OpenAPI/schema compatibility;
|
|
11. Playwright smoke (`pnpm test:e2e`, desktop/mobile/wallboard Chromium projects);
|
|
12. accessibility (axe-core in the Playwright smoke; serious or critical violations fail);
|
|
13. dependency/license/secret scan;
|
|
14. container build and image scan;
|
|
15. compose/config validation;
|
|
16. evidence summary.
|
|
|
|
The executable Gitea Actions definition is `.gitea/workflows/ci.yml`. The local
|
|
equivalent is `scripts/verify.ps1`; install Chromium once with
|
|
`pnpm exec playwright install chromium` before its browser stage. Browser tests
|
|
mock only the versioned API boundary and exercise the real built React routes.
|
|
|
|
Release pipeline additionally:
|
|
- clean checkout;
|
|
- full E2E;
|
|
- performance subset;
|
|
- migration/backup/restore;
|
|
- SBOM/provenance where feasible;
|
|
- immutable image digest record;
|
|
- deployment smoke and rollback proof.
|