chore(github-actions): pin reqstool/.github references to 1.0.0 #458
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: | |
| inputs: | |
| ref: | |
| description: "Branch, tag or SHA to build. Empty = the caller's ref." | |
| required: false | |
| type: string | |
| default: "" | |
| artifact-name: | |
| description: > | |
| Name to upload the build output under. The release flow runs this | |
| workflow twice in one run -- once on the branch, once on the tag -- and | |
| upload-artifact rejects a duplicate name. | |
| required: false | |
| type: string | |
| default: "dist" | |
| 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: | |
| # Full history and tags: poetry-dynamic-versioning derives the version from git state, so a | |
| # shallow clone would build the wrong number rather than fail. | |
| - name: Check out source repository | |
| uses: actions/checkout@v7 | |
| with: | |
| persist-credentials: false | |
| fetch-depth: 0 | |
| fetch-tags: true | |
| ref: ${{ inputs.ref || github.ref }} | |
| - name: Set up Python | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: "3.13" | |
| - name: Install and configure Poetry | |
| uses: snok/install-poetry@a783c322200f0519c7926aa6faa857c4e23e9263 # v1 | |
| with: | |
| version: 2.4.1 | |
| virtualenvs-create: true | |
| - name: Install poetry-dynamic-versioning | |
| run: poetry self add "poetry-dynamic-versioning[plugin]" | |
| - name: Install dependencies | |
| run: poetry install --with dev | |
| - name: Build wheel (used by e2e tests) | |
| run: poetry build --format wheel | |
| - name: Install plugin into Poetry (activates it for e2e tests) | |
| run: poetry self add $(ls $PWD/dist/reqstool_python_poetry_plugin-*.whl | tail -1) | |
| - name: Run tests | |
| run: poetry run pytest --junitxml=build/junit.xml --cov --cov-report=xml:build/coverage.xml | |
| - name: Build project | |
| run: poetry build | |
| - name: Install reqstool | |
| uses: reqstool/.github/.github/actions/install-reqstool@ef815eae0bca7160cdc714126cac73f76d638b39 # 1.0.0 | |
| with: | |
| reqstool-source: ${{ matrix.reqstool-source }} | |
| - name: Validate reqstool spec completeness | |
| # not yet available in the latest PyPI release | |
| if: matrix.reqstool-source == 'main' | |
| uses: reqstool/.github/.github/actions/validate-reqstool@ef815eae0bca7160cdc714126cac73f76d638b39 # 1.0.0 | |
| - name: Run reqstool status | |
| uses: reqstool/.github/.github/actions/reqstool-status@ef815eae0bca7160cdc714126cac73f76d638b39 # 1.0.0 | |
| 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: ${{ inputs.artifact-name || 'dist' }} | |
| path: dist/ | |
| validate-openspec: | |
| uses: reqstool/.github/.github/workflows/common-validate-openspec.yml@ef815eae0bca7160cdc714126cac73f76d638b39 # 1.0.0 |