fix: save raw AI response for debugging and require calculated numbers #383
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: Go Test Coverage | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| branches: | |
| - dev | |
| - main | |
| push: | |
| branches: | |
| - dev | |
| - main | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| jobs: | |
| test-coverage: | |
| name: Go Unit Tests & Coverage | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25' | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install Python dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r .github/workflows/scripts/requirements.txt | |
| - name: Cache Go modules | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/go/pkg/mod | |
| key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
| restore-keys: | | |
| ${{ runner.os }}-go- | |
| - name: Download dependencies | |
| run: go mod download | |
| - name: Verify Go coverage tool | |
| run: | | |
| go tool cover -h || echo "Warning: go tool cover not available" | |
| - name: Run tests with coverage | |
| env: | |
| DATA_ENCRYPTION_KEY: "test-encryption-key-for-ci-only-not-production" | |
| run: | | |
| go test -v -race -coverprofile=coverage.out -covermode=atomic ./... | |
| - name: Calculate coverage and generate report | |
| id: coverage | |
| run: | | |
| chmod +x .github/workflows/scripts/calculate_coverage.py | |
| python .github/workflows/scripts/calculate_coverage.py coverage.out coverage_report.md | |
| - name: Comment PR with coverage | |
| if: github.event_name == 'pull_request' | |
| continue-on-error: true | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| chmod +x .github/workflows/scripts/comment_pr.py | |
| python .github/workflows/scripts/comment_pr.py \ | |
| ${{ github.event.pull_request.number }} \ | |
| "${{ steps.coverage.outputs.coverage }}" \ | |
| "${{ steps.coverage.outputs.emoji }}" \ | |
| "${{ steps.coverage.outputs.status }}" \ | |
| "${{ steps.coverage.outputs.badge_color }}" \ | |
| coverage_report.md |