dependency: (deps): bump coverage from 7.11.3 to 7.12.0 #37
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
| # Human-friendly name that appears in the Actions UI in GitHub | |
| name: Continuous Integration | |
| on: | |
| # Run the workflow on any push to the main branch | |
| push: | |
| branches: ["main"] | |
| # Also run on pull requests that target the main branch | |
| pull_request: | |
| branches: ["main"] | |
| # Explicitly declare the permissions this workflow needs | |
| permissions: | |
| pull-requests: write | |
| contents: write | |
| # Reusable environment variables for all jobs/steps (unless overridden) | |
| env: | |
| # Central place to control the Python version used across jobs | |
| PYTHON_VERSION: "3.12" | |
| jobs: | |
| # Primary CI job: build the project and run tests/linting | |
| build-and-test: | |
| # Display name in the Actions UI | |
| name: continuous-integration | |
| # Use the latest Ubuntu runner image | |
| runs-on: ubuntu-latest | |
| steps: | |
| # Step 1: Check out repository code so subsequent steps can access it | |
| - uses: actions/checkout@v4 | |
| # Step 2: Install the requested Python version on the runner | |
| - name: "Set up Python" | |
| uses: actions/setup-python@v5 | |
| with: | |
| # Pulls from env above so you only change version in one place | |
| python-version: ${{ env.PYTHON_VERSION }} | |
| # Step 3: Install uv Python package Manager | |
| # Also enables caching to speed up subsequent runs | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| # Step 4 (optional): Run pre-commit hooks against the whole repo | |
| # Using uv's pip shim to install pre-commit into the system env. | |
| # 'continue-on-error: true' ensures hooks don't fail the build yet. | |
| - name: Run pre-commit hooks (optional) | |
| run: | | |
| uv pip install --system pre-commit | |
| pre-commit run --all-files || true | |
| continue-on-error: true | |
| # Step 5: Sync/install project dependencies | |
| # - 'uv sync' reads pyproject/lock file and creates a virtual env | |
| # - '--locked' enforces the lockfile (reproducible installs) | |
| # - '--all-extras' installs any optional extras defined in pyproject | |
| - name: Install and sync dependencies | |
| run: | | |
| uv sync --locked --all-extras | |
| # Step 6: Run your test suite | |
| # Replace the echo with your real test command, e.g.: | |
| # uv run pytest | |
| - name: Run root tests | |
| run: | | |
| # TODO: replace with real test command | |
| echo "Running tests..." | |
| # Secondary job: auto-merge Dependabot PRs after CI passes | |
| dependabot: | |
| name: 'Dependabot' | |
| needs: [build-and-test] | |
| runs-on: ubuntu-latest | |
| if: ${{ github.actor == 'dependabot[bot]' && github.event_name == 'pull_request'}} | |
| steps: | |
| - name: Enable auto-merge for Dependabot PRs | |
| # Uses Github CLI to automatically merge the PR if test passes | |
| run: gh pr merge --auto --merge "$PR_URL" | |
| env: | |
| PR_URL: ${{github.event.pull_request.html_url}} | |
| GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} |