Skip to content

Automating Tests with GitHub Actions

What GitHub Actions is

GitHub Actions runs workflows on:

  • push
  • pull_request
  • schedules

Minimal Python test workflow

Create .github/workflows/tests.yml.github/workflows/tests.yml:

name: tests
 
on:
  pull_request:
  push:
 
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
 
      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"
 
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt
 
      - name: Run tests
        run: |
          pytest -q
name: tests
 
on:
  pull_request:
  push:
 
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
 
      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"
 
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt
 
      - name: Run tests
        run: |
          pytest -q

Tips

  • cache pip if workflows are slow
  • upload coverage/html reports as artifacts
  • run lint/type checks as separate jobs

If this helped you, consider buying me a coffee ☕

Buy me a coffee

Was this page helpful?

Let us know how we did