Quality Gates
Tracera uses a tiered quality gate system — from fast local checks to comprehensive nightly analysis.Gate Tiers
make precommit
Runs automatically via Git pre-commit hook. Same asmake check.
make check
Fast local quality gate (~10 seconds):| Check | Command | Purpose |
|---|---|---|
| Format | gofmt -l | Ensure consistent formatting |
| Modules | go mod verify | Verify module checksums |
| Vet | go vet ./... | Catch common mistakes |
| Lint | staticcheck ./... | Static analysis |
| Test | go test ./... | Unit tests |
make ci
Full CI gate (runs on every pull request):| Check | Additional to check |
|---|---|
| Race detector | go test -race ./... |
make nightly
Deep quality gate (runs nightly via GitHub Actions):| Check | Additional to ci |
|---|---|
| Vulnerability scan | govulncheck ./... |
| Coverage gate | go test -coverprofile with threshold |
| Benchmarks | go test -bench |
| Release check | Build reproducible release binary |
| Docker checks | Migration and schema validation |
Additional Checks
| Target | Description |
|---|---|
make db-check | Docker-backed migration/schema validation |
make test-integration | Integration tests against real TimescaleDB + Redis |
make bench | Run benchmarks |
make bench-profile | Run benchmarks with CPU/memory pprof profiles |
make release-check | Reproducible release binary build |
make migration-check | Validate migration filenames and sequence |
GitHub Actions
CI Workflow (.github/workflows/ci.yml)
Runs on every push and pull request:
- Executes
make ci(check + race detector)
Nightly Workflow (.github/workflows/nightly.yml)
Runs on a schedule:
- Executes
make nightly(full deep quality gate)
Dependabot (.github/dependabot.yml)
Automatically creates PRs for:
- Go module dependency updates (weekly)
- GitHub Actions version updates (weekly)