chore: enable python 3.14 #2644
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: "Validations" | |
| on: | |
| # needed for publishing commit images on the main branch | |
| push: | |
| branches: | |
| - main | |
| # needed when running from forks | |
| pull_request: | |
| permissions: | |
| contents: read | |
| jobs: | |
| # note: the name for this check is referenced in release.yaml, do not change here without changing there | |
| Static-Analysis: | |
| name: "Static Analysis" | |
| runs-on: runs-on=${{ github.run_id }}/runner=small | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1 | |
| with: | |
| # in order to properly resolve the version from git | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: Bootstrap environment | |
| uses: ./.github/actions/bootstrap | |
| - name: Run static analysis | |
| run: make static-analysis | |
| - name: Ensure quality gate tools are properly configured | |
| run: | | |
| cd tests/quality && make validate-test-tool-versions | |
| Discover-Test-Envs: | |
| runs-on: runs-on=${{ github.run_id }}/runner=small | |
| outputs: | |
| envs: ${{ steps.get-envs.outputs.envs }} | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: Bootstrap environment | |
| uses: ./.github/actions/bootstrap | |
| - name: Get tox environments | |
| id: get-envs | |
| run: | | |
| envs=$(uv run tox -l | jq -R -s -c 'split("\n") | map(select(length > 0))') | |
| echo "envs=$envs" >> $GITHUB_OUTPUT | |
| Test: | |
| needs: Discover-Test-Envs | |
| runs-on: runs-on=${{ github.run_id }}-test-${{ strategy.job-index }}/runner=small | |
| permissions: | |
| contents: read | |
| strategy: | |
| matrix: | |
| toxenv: ${{ fromJson(needs.Discover-Test-Envs.outputs.envs) }} | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1 | |
| with: | |
| # in order to properly resolve the version from git | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: Bootstrap environment | |
| uses: ./.github/actions/bootstrap | |
| - name: Run unit tests | |
| env: | |
| TOXENV: ${{ matrix.toxenv }} | |
| run: uv run tox -e "$TOXENV" | |
| - name: Build assets | |
| run: make build | |
| # this is to help facilitate ensuring all checks have run with the checks API for release | |
| # see https://github.com/orgs/community/discussions/26822#discussioncomment-3305794 | |
| # as well as the release.yaml workflow | |
| Test-Gate: | |
| if: ${{ always() }} | |
| runs-on: runs-on=${{ github.run_id }}/runner=small | |
| name: Test Gate | |
| needs: [Test] | |
| steps: | |
| - env: | |
| TEST_RESULT: ${{ needs.Test.result }} | |
| run: | | |
| if [[ $TEST_RESULT == "success" || $TEST_RESULT == "skipped" ]]; then | |
| exit 0 | |
| else | |
| exit 1 | |
| fi | |
| Publish-PreProd: | |
| runs-on: runs-on=${{ github.run_id }}/runner=release | |
| needs: [Static-Analysis, Test] | |
| if: github.ref == 'refs/heads/main' | |
| permissions: | |
| contents: read | |
| # package write permission is needed for publishing commit images | |
| packages: write | |
| steps: | |
| - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 #v6.0.1 | |
| with: | |
| # in order to properly resolve the version from git | |
| fetch-depth: 0 | |
| persist-credentials: false | |
| - name: Bootstrap environment | |
| uses: ./.github/actions/bootstrap | |
| - name: Login to ghcr.io | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| GITHUB_ACTOR: ${{ github.actor }} | |
| run: | | |
| echo "$GITHUB_TOKEN" | docker login ghcr.io --username "$GITHUB_ACTOR" --password-stdin | |
| - name: Build assets | |
| run: make build | |
| - name: Publish commit image | |
| run: make ci-publish-commit |