name: lane-shas # Verify that every ADR-0092..0099 lane produces its pinned SHA-256 # report. A failing job means a lane's deterministic output changed # without an explicit ADR-tracked pin update via: # # python scripts/verify_lane_shas.py --update # # Single source of truth for the pinned values is scripts/verify_lane_shas.py. on: push: branches: [main] pull_request: branches: [main] permissions: contents: read concurrency: group: lane-shas-${{ github.ref }} cancel-in-progress: true jobs: verify: name: verify pinned lane SHAs runs-on: ubuntu-latest timeout-minutes: 20 steps: - name: checkout uses: actions/checkout@v4 with: fetch-depth: 1 # setup-uv (not actions/setup-python) provisions Python on the aarch64 # self-hosted runner; actions/setup-python has no arm64 build for the # pinned 3.12.13. Matches smoke.yml / full-pytest.yml. - name: set up uv uses: astral-sh/setup-uv@v5 with: python-version: '3.12.13' enable-cache: true - name: install dependencies run: | uv pip install -e . pyyaml pytest - name: verify lane SHAs env: PYTHONPATH: ${{ github.workspace }} run: | uv run python scripts/verify_lane_shas.py - name: verify CLAIMS.md is current env: PYTHONPATH: ${{ github.workspace }} run: | uv run python scripts/generate_claims.py --check - name: emit machine-readable report (on failure) if: failure() env: PYTHONPATH: ${{ github.workspace }} run: | uv run python scripts/verify_lane_shas.py --json || true