name: test release tool on: push: paths: - .github/workflows/release_tests.yml - scripts/release.py - scripts/release_tests.py pull_request: paths: - .github/workflows/release_tests.yml - scripts/release.py - scripts/release_tests.py permissions: {} jobs: test-release-tool: # We want to run on external PRs, but not on our own internal PRs as they'll be run # by the push to the branch. Without this if check, checks are duplicated since # internal PRs match both the push and pull_request events. if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository runs-on: ${{ matrix.os }} strategy: matrix: python-version: ["3.12", "3.13", "3.14", "3.15"] os: [macOS-latest, ubuntu-latest, windows-latest] steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: # Give us all history, branches and tags fetch-depth: 0 persist-credentials: false - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 with: python-version: ${{ matrix.python-version }} allow-prereleases: true pip-version: "25.3" pip-install: --group coverage - name: Print Python Version run: python --version --version && which python - name: Print Pip Version run: pip --version && which pip - name: Print Git Version run: git --version && which git - name: Run unit tests via coverage + print report run: | coverage run scripts/release_tests.py coverage report --show-missing