chore(github-actions): update pypa/gh-action-pypi-publish action to v1.14.1 #279
Workflow file for this run
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: Build PyPI | |
| on: | |
| workflow_call: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| types: | |
| - opened | |
| - reopened | |
| - synchronize | |
| permissions: | |
| contents: read | |
| jobs: | |
| linting: | |
| name: Reuse linting job | |
| uses: ./.github/workflows/lint.yml | |
| build: | |
| needs: linting | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| reqstool-source: [pypi, main] | |
| steps: | |
| - name: Check out source repository | |
| uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 #full history | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.13" | |
| - name: Install dependencies | |
| run: pip install hatch | |
| - name: Run tests | |
| run: hatch run dev:pytest --junitxml=build/junit.xml --cov=reqstool_python_decorators --cov-report=xml:build/coverage.xml | |
| - name: Build project | |
| run: hatch build | |
| - name: Self-apply own decorator processor to own src/tests | |
| # Relies on `hatch build` (above) not cleaning build/ -- annotations.yml lands | |
| # alongside the junit/coverage output from the "Run tests" step, and | |
| # reqstool_config.yml expects to find both there. If hatch build ever starts | |
| # cleaning build/, move the pytest output dir outside of it. | |
| run: hatch run dev:python scripts/generate_annotations.py | |
| - name: Install reqstool | |
| uses: reqstool/.github/.github/actions/install-reqstool@9c6feaab046f4782f430dd2527fdb82c2a5cd926 # main 2026-06-22 | |
| with: | |
| reqstool-source: ${{ matrix.reqstool-source }} | |
| - name: Validate reqstool spec completeness | |
| # not yet available in the latest PyPI release; supplementary to (not a | |
| # replacement for) the `reqstool status --fail-if-incomplete` gate below, which | |
| # is the actual required check on the pypi leg | |
| if: matrix.reqstool-source == 'main' | |
| uses: reqstool/.github/.github/actions/validate-reqstool@9c6feaab046f4782f430dd2527fdb82c2a5cd926 # main 2026-06-22 | |
| - name: Run reqstool status | |
| # Required gate on both matrix legs -- fails the build unless every | |
| # requirement is implemented and verified. | |
| uses: reqstool/.github/.github/actions/reqstool-status@9c6feaab046f4782f430dd2527fdb82c2a5cd926 # main 2026-06-22 | |
| with: | |
| fail-if-incomplete: "true" | |
| # Upload artifacts for later use | |
| - name: Upload Artifacts | |
| if: matrix.reqstool-source == 'pypi' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: dist | |
| path: dist/ | |
| validate-openspec: | |
| uses: reqstool/.github/.github/workflows/common-validate-openspec.yml@9c6feaab046f4782f430dd2527fdb82c2a5cd926 # main 2026-06-22 |