Release PR: v1.3.3 #29
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: CI | |
| on: | |
| # Run on pull requests into dev or master. | |
| pull_request: | |
| branches: [master, dev] | |
| # After a PR is merged, the merge commit is pushed to master; we still want tests + coverage once on the resulting commit. | |
| push: | |
| branches: [master] | |
| jobs: | |
| test: | |
| # * Runs unit-test matrix: | |
| # - Always on pull_request (dev or master) | |
| # - On push to master (after merge) | |
| if: | | |
| github.event_name == 'pull_request' || | |
| (github.event_name == 'push' && github.ref == 'refs/heads/master') | |
| name: Test on Python ${{ matrix.python-version }} (beta=${{ matrix.beta }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13"] | |
| beta: [false, true] | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| # For pull_request we check out the PR commit; for push we stay on the pushed ref (master). | |
| with: | |
| ref: ${{ github.event.pull_request.head.sha }} | |
| - name: Set up Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.22" | |
| - name: Build Go parsers | |
| run: pwsh -File ./build_goparser.ps1 | |
| shell: bash | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install .[dev] | |
| - name: CLI smoke test | |
| run: | | |
| agent-docstrings --version | |
| if [ "${{ matrix.beta }}" = "true" ]; then | |
| agent-docstrings --beta --version | |
| fi | |
| - name: Run tests with coverage | |
| run: | | |
| pytest --cov=agent_docstrings --cov-report=xml --cov-report=term-missing | |
| - name: Upload coverage artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: coverage-${{ matrix.python-version }}-${{ matrix.beta }} | |
| path: coverage.xml | |
| report: | |
| # * Only for master: either in PR to master (so reviewers see comment) or after merge push to master. | |
| if: | | |
| (github.event_name == 'pull_request' && github.base_ref == 'master') || | |
| (github.event_name == 'push' && github.ref == 'refs/heads/master') | |
| name: Report Coverage | |
| runs-on: ubuntu-latest | |
| needs: test | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Download all coverage artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: coverage-artifacts | |
| pattern: coverage-* | |
| merge-multiple: true | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| directory: ./coverage-artifacts/ | |
| fail_ci_if_error: false | |
| check-version: | |
| # * Only on PRs into dev: prevent accidental version bumps. | |
| if: github.event_name == 'pull_request' && github.base_ref == 'dev' | |
| name: Check for accidental version bump | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Verify that version was not bumped | |
| run: | | |
| if ! git diff --quiet origin/dev HEAD -- pyproject.toml; then | |
| echo "::error::Version in pyproject.toml was changed in a PR to dev." | |
| echo "Version bumping should only happen in a release PR to master." | |
| exit 1 | |
| fi | |
| echo "Version check passed for pyproject.toml" |