Skip to content

Merge pull request #389 from hdamker/fix/s036-parameter-casing-filter… #96

Merge pull request #389 from hdamker/fix/s036-parameter-casing-filter…

Merge pull request #389 from hdamker/fix/s036-parameter-casing-filter… #96

# 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