feat(stability): unify readiness and recovery
CI - Build & Test / Backend (.NET) (push) Successful in 45s
CI - Build & Test / Backend integration (PostgreSQL/Toxiproxy) (push) Failing after 1m0s
CI - Build & Test / Frontend (Vue/TS) (push) Successful in 2m49s
CI - Build & Test / Security Check (push) Successful in 7s
CI - Build & Test / Deploy Nexus (push) Has been skipped
CI - Build & Test / Backend (.NET) (push) Successful in 45s
CI - Build & Test / Backend integration (PostgreSQL/Toxiproxy) (push) Failing after 1m0s
CI - Build & Test / Frontend (Vue/TS) (push) Successful in 2m49s
CI - Build & Test / Security Check (push) Successful in 7s
CI - Build & Test / Deploy Nexus (push) Has been skipped
This commit is contained in:
@@ -10,6 +10,44 @@ OpenClaw, PostgreSQL, browser, or load-test boundary. Archive the command,
|
||||
versions, sanitized output, dataset provenance, and timestamp for every
|
||||
acceptance run.
|
||||
|
||||
## Release CI gates
|
||||
|
||||
Every push now runs four independent pre-deployment jobs:
|
||||
|
||||
- the normal .NET 10 build and test suite plus a High/Critical NuGet
|
||||
vulnerability gate;
|
||||
- a mandatory Linux runner job with both
|
||||
`NEXUS_RUN_DOCKER_INTEGRATION_TESTS=true` and
|
||||
`NEXUS_RUN_TOXIPROXY_INTEGRATION_TESTS=true`;
|
||||
- frontend version parity, High/Critical production dependency audit,
|
||||
typecheck, generated OpenAPI drift, unit tests, production build and the full
|
||||
Playwright route matrix; and
|
||||
- a full-history Gitleaks v8.30.1 scan downloaded from the upstream release and
|
||||
checked against its pinned SHA-256 before execution.
|
||||
|
||||
Deployment depends on all four jobs. A missing Docker endpoint is therefore a
|
||||
failing integration job, not a successful skip. Local runs without Docker may
|
||||
still show five explicit skips, but they are not release acceptance evidence.
|
||||
The checked-in `.gitleaksignore` contains only exact fingerprints for reviewed
|
||||
historical findings; it is not a pattern-based bypass for new secrets.
|
||||
|
||||
The repository SDK contract is `global.json`: .NET `10.0.100` with
|
||||
`latestFeature` roll-forward. `VERSION` is the release source of truth;
|
||||
frontend package version and OCI image labels are checked against it.
|
||||
|
||||
## Browser route and recovery gate
|
||||
|
||||
The fixture Playwright profile sets `VITE_BROWSER_TELEMETRY_ENABLED=false`, so
|
||||
expected telemetry proxy failures cannot mask application regressions.
|
||||
Production container builds enable the allow-listed browser metrics explicitly.
|
||||
|
||||
The route suite covers Login plus all 20 authenticated views at 375, 768, 1024,
|
||||
1440 and 1920 px. It also checks deep links, shared-query deduplication, one
|
||||
targeted resync after an SSE sequence gap, retained Task Board content during a
|
||||
refresh, Done pagination, drag-and-drop, and distinguishable dependency
|
||||
outage/retry recovery. These are controlled browser contracts, not a
|
||||
credentialed production or real OpenClaw acceptance run.
|
||||
|
||||
## Task Board load gate
|
||||
|
||||
The full k6 profile holds ten virtual users for two minutes and fails when:
|
||||
|
||||
Reference in New Issue
Block a user