feat(reqstool): dogfood OpenSpec <-> reqstool traceability #275
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@v6 | |
| 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 | |
| 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 | |
| if: matrix.reqstool-source == 'main' | |
| uses: reqstool/.github/.github/actions/validate-reqstool@9c6feaab046f4782f430dd2527fdb82c2a5cd926 # main 2026-06-22 | |
| - name: Run reqstool status | |
| 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 |