fix: skip stale signal_triage rows instead of re-inserting during sna… #81
Workflow file for this run
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: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| verify: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 2 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| cache: npm | |
| - name: Install locked dependencies | |
| run: npm ci | |
| - name: Lint | |
| run: npm run lint | |
| - name: Typecheck | |
| run: npm run typecheck | |
| - name: Test | |
| run: npm test | |
| - name: Restore complete repository data | |
| run: npm run db:seed | |
| - name: Prepare previous evaluation baseline | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| if git show HEAD^:data/reports/system-evaluation.json > "$RUNNER_TEMP/evaluation-baseline.json" 2>/dev/null; then | |
| echo "Using the previous commit evaluation as the CI baseline." | |
| elif [[ -s data/reports/system-evaluation.json ]]; then | |
| cp data/reports/system-evaluation.json "$RUNNER_TEMP/evaluation-baseline.json" | |
| fi | |
| - name: Evaluate system capability and prevent score regression | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| npm run --silent evaluate:system -- \ | |
| --skip-bootstrap \ | |
| --baseline="$RUNNER_TEMP/evaluation-baseline.json" \ | |
| --output="$RUNNER_TEMP/evaluation-current.json" \ | |
| --summary="$GITHUB_STEP_SUMMARY" \ | |
| --fail-on-regression | |
| - name: Upload system evaluation evidence | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: system-evaluation-${{ github.run_id }} | |
| path: ${{ runner.temp }}/evaluation-current.json | |
| if-no-files-found: error | |
| retention-days: 30 | |
| - name: Export static site | |
| run: npm run export -- --skip-seed | |
| - name: Validate public content across every main tab | |
| run: npm run --silent public:validate -- --output="$RUNNER_TEMP/public-integrity.json" | |
| - name: Upload public integrity evidence | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: public-integrity-${{ github.run_id }} | |
| path: ${{ runner.temp }}/public-integrity.json | |
| if-no-files-found: ignore | |
| retention-days: 7 | |
| - name: Build | |
| run: npm run build |