Nightly Full Tests #53
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Nightly Full Tests | |
| on: | |
| schedule: | |
| # Run at 2am UTC daily | |
| - cron: '0 2 * * *' | |
| workflow_dispatch: # Allow manual trigger | |
| jobs: | |
| full-test: | |
| name: Full Test Suite | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.24' | |
| - name: Configure Git | |
| run: | | |
| git config --global user.name "CI Bot" | |
| git config --global user.email "[email protected]" | |
| - name: Build | |
| run: go build -v ./cmd/bd | |
| - name: Full Test Suite (including integration tests) | |
| run: go test -v -race -tags=integration -coverprofile=coverage.out -timeout=30m ./... | |
| - name: Check coverage threshold | |
| run: | | |
| COVERAGE=$(go tool cover -func=coverage.out | grep total | awk '{print $3}' | sed 's/%//') | |
| echo "Coverage: $COVERAGE%" | |
| if (( $(echo "$COVERAGE < 50" | bc -l) )); then | |
| echo "❌ Coverage is below 50% threshold" | |
| exit 1 | |
| elif (( $(echo "$COVERAGE < 55" | bc -l) )); then | |
| echo "⚠️ Coverage is below 55% (warning threshold)" | |
| else | |
| echo "✅ Coverage meets threshold" | |
| fi | |
| - name: Upload coverage | |
| uses: codecov/codecov-action@v4 | |
| if: success() | |
| with: | |
| file: ./coverage.out | |
| fail_ci_if_error: false |