3.1 KiB
3.1 KiB
Pre-Commit Checklist
Quick reference for validating changes before committing.
TL;DR - Minimum Validation
# 1. Quick smoke test (2 min)
./devops/scripts/local-ci.sh smoke
# 2. If smoke passes, full PR check (15 min)
./devops/scripts/local-ci.sh pr
# 3. Commit
git add -A && git commit -m "Your message"
Validation Levels
Level 1: Quick Check (Always)
./devops/scripts/local-ci.sh smoke
Time: ~2 minutes Validates: Build + Unit tests
Level 2: PR-Ready (Before opening PR)
./devops/scripts/local-ci.sh pr
Time: ~15 minutes Validates: Unit, Architecture, Contract, Integration, Security, Golden
Level 3: Module-Focused (Changed modules only)
./devops/scripts/local-ci.sh module
Time: Varies by module Validates: Auto-detected or specified module
Level 4: Full Suite (Major changes/releases)
./devops/scripts/local-ci.sh full
Time: ~45 minutes Validates: All categories including Performance, Benchmark, AirGap, Chaos
Quick Commands
| Purpose | Command |
|---|---|
| Smoke test | ./devops/scripts/local-ci.sh smoke |
| PR check | ./devops/scripts/local-ci.sh pr |
| Module tests | ./devops/scripts/local-ci.sh module --module Scanner |
| Single category | ./devops/scripts/local-ci.sh pr --category Unit |
| Verbose output | ./devops/scripts/local-ci.sh pr --verbose |
| Dry run | ./devops/scripts/local-ci.sh pr --dry-run |
| Release check | ./devops/scripts/local-ci.sh release --dry-run |
Windows (PowerShell)
.\devops\scripts\local-ci.ps1 smoke
.\devops\scripts\local-ci.ps1 pr
.\devops\scripts\local-ci.ps1 module -Module Scanner
Service Management
# Start
docker compose -f devops/compose/docker-compose.ci.yaml up -d
# Stop
docker compose -f devops/compose/docker-compose.ci.yaml down
# Reset
docker compose -f devops/compose/docker-compose.ci.yaml down -v
Test Categories
| Category | When Required |
|---|---|
| Unit | Always |
| Architecture | PR-gating |
| Contract | API changes |
| Integration | Database/service changes |
| Security | Any code changes |
| Golden | Output format changes |
Troubleshooting
Build fails
dotnet clean src/StellaOps.sln
dotnet build src/StellaOps.sln
Tests fail
./devops/scripts/local-ci.sh pr --verbose
cat out/local-ci/logs/Unit-*.log
Services won't start
docker compose -f devops/compose/docker-compose.ci.yaml down -v
docker compose -f devops/compose/docker-compose.ci.yaml up -d
Checklist
Before every commit:
./devops/scripts/local-ci.sh smokepasses
Before opening PR:
./devops/scripts/local-ci.sh prpassesgit statusshows only intended changes
Before release:
./devops/scripts/local-ci.sh fullpasses./devops/scripts/local-ci.sh release --dry-runsucceeds
Results Location
out/local-ci/
trx/ # Test reports (TRX format)
logs/ # Execution logs