merge: align v5.4.6 release with GitHub main #45
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: Validate AI Delivery Spec | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: validate-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| on: | |
| push: | |
| branches: [main, "feature/**", "release/**"] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| validate: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest] | |
| python-version: ["3.10", "3.11", "3.12"] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: pip | |
| - name: Install dependencies | |
| run: python -m pip install -r scripts/requirements.txt "pytest>=8,<9" | |
| - name: Compile validators | |
| run: python -m compileall -q scripts maintainer/tools maintainer/tests | |
| - name: Run fast deterministic checks | |
| run: python scripts/ai_delivery_spec_cli.py check | |
| - name: Run pytest regressions | |
| run: python -m pytest maintainer/tests -q | |
| - name: Run full release checks once | |
| if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12' | |
| run: python scripts/ai_delivery_spec_cli.py check --profile release --keep-going | |
| - name: Validate Publishing Product Truth explicitly | |
| run: >- | |
| python scripts/validators/validate_product_truth.py | |
| maintainer/examples/publishing-learning-v5/delivery/truth/product-truth.yaml | |
| - name: Validators must not mutate tracked files | |
| run: git diff --exit-code | |
| required-gate: | |
| name: required-gate | |
| if: always() | |
| needs: validate | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Enforce all validation matrix jobs | |
| run: | | |
| if [ "${{ needs.validate.result }}" != "success" ]; then | |
| echo "Validation matrix did not pass: ${{ needs.validate.result }}" | |
| exit 1 | |
| fi |