Skip to content

dependency: (deps): bump coverage from 7.11.3 to 7.12.0 #37

dependency: (deps): bump coverage from 7.11.3 to 7.12.0

dependency: (deps): bump coverage from 7.11.3 to 7.12.0 #37

Workflow file for this run

# 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}}