Merge pull request #359 from hdamker/release/tooling-0.7.0 #80
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
| # CAMARA Validation Framework — Validation Regression (canary) | |
| # | |
| # Auto-dispatches validation/scripts/regression_runner.py against | |
| # camaraproject/ReleaseTest on every push to main, so that "broken | |
| # stays broken" and "clean stays clean" are verified automatically | |
| # before v1-rc is moved for the rest of the org. | |
| # | |
| # The runner dispatches camara-validation.yml on each branch matching | |
| # regression/* on ReleaseTest, waits for it to complete, downloads the | |
| # diagnostics artifact, and diffs the findings against each branch's | |
| # committed .regression/regression-expected.yaml fixture. | |
| # | |
| # Cross-repo access is provided by a short-lived camara-validation | |
| # GitHub App installation token scoped to camaraproject/ReleaseTest. | |
| # The default GITHUB_TOKEN is only used for the initial checkout. | |
| # | |
| # See validation/docs/regression-testing.md for the full picture. | |
| name: Validation Regression | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - 'validation/**' | |
| - 'shared-actions/**' | |
| - 'tooling_lib/**' | |
| - '.github/workflows/validation.yml' | |
| - '.github/workflows/validation-regression.yml' | |
| workflow_dispatch: | |
| concurrency: | |
| group: validation-regression-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| env: | |
| # Keep validation runtime pins explicit and aligned across CI workflows. | |
| PYTHON_VERSION: "3.14" | |
| jobs: | |
| regression: | |
| name: Regression canary | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout tooling | |
| uses: actions/checkout@v7 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ env.PYTHON_VERSION }} | |
| - name: Install runner dependencies | |
| run: | | |
| pip install --upgrade pip | |
| pip install --quiet -r requirements.txt | |
| - name: Mint validation app token | |
| id: app-token | |
| uses: actions/create-github-app-token@v3 | |
| with: | |
| client-id: ${{ vars.VALIDATION_APP_CLIENT_ID }} | |
| private-key: ${{ secrets.VALIDATION_APP_PRIVATE_KEY }} | |
| owner: camaraproject | |
| repositories: ReleaseTest | |
| - name: Run regression runner | |
| env: | |
| GH_TOKEN: ${{ steps.app-token.outputs.token }} | |
| run: | | |
| python3 validation/scripts/regression_runner.py \ | |
| --repo camaraproject/ReleaseTest \ | |
| --branch-filter 'regression/*' \ | |
| --summary-file validation-regression-summary.md | |
| - name: Publish summary | |
| if: always() | |
| run: | | |
| if [ -f validation-regression-summary.md ]; then | |
| cat validation-regression-summary.md >> "$GITHUB_STEP_SUMMARY" | |
| else | |
| echo "::warning::validation-regression-summary.md not produced (runner likely failed before writing)" | |
| fi | |
| - name: Upload summary artifact | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: validation-regression-summary | |
| path: validation-regression-summary.md | |
| if-no-files-found: warn | |
| retention-days: 30 |