Skip to main content

Quality Gates

Tracera uses a tiered quality gate system — from fast local checks to comprehensive nightly analysis.

Gate Tiers

┌─────────────────────────────────────────────┐
│           make nightly (Deep)               │
│  ┌───────────────────────────────────────┐  │
│  │        make ci (Full CI)              │  │
│  │  ┌─────────────────────────────────┐  │  │
│  │  │    make check (Fast Local)      │  │  │
│  │  │  ┌───────────────────────────┐  │  │  │
│  │  │  │  make precommit (Hook)   │  │  │  │
│  │  │  └───────────────────────────┘  │  │  │
│  │  └─────────────────────────────────┘  │  │
│  └───────────────────────────────────────┘  │
└─────────────────────────────────────────────┘

make precommit

Runs automatically via Git pre-commit hook. Same as make check.
make precommit-install  # Install the hook

make check

Fast local quality gate (~10 seconds):
CheckCommandPurpose
Formatgofmt -lEnsure consistent formatting
Modulesgo mod verifyVerify module checksums
Vetgo vet ./...Catch common mistakes
Lintstaticcheck ./...Static analysis
Testgo test ./...Unit tests
make check

make ci

Full CI gate (runs on every pull request):
CheckAdditional to check
Race detectorgo test -race ./...
make ci

make nightly

Deep quality gate (runs nightly via GitHub Actions):
CheckAdditional to ci
Vulnerability scangovulncheck ./...
Coverage gatego test -coverprofile with threshold
Benchmarksgo test -bench
Release checkBuild reproducible release binary
Docker checksMigration and schema validation
make nightly

Additional Checks

TargetDescription
make db-checkDocker-backed migration/schema validation
make test-integrationIntegration tests against real TimescaleDB + Redis
make benchRun benchmarks
make bench-profileRun benchmarks with CPU/memory pprof profiles
make release-checkReproducible release binary build
make migration-checkValidate 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)