name: Python CI

on:
  push:
    branches: [master]
  pull_request:
    branches:
    - '**'


jobs:
  run_tests:
    name: tests
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ 'ubuntu-24.04' ]
        python-version: ['3.11', '3.12']
        toxenv: [ 'django42' ]
        # Only run these other workflows on the latest python version we support.
        include:
          - python-version: '3.12'
            toxenv: 'quality'
            os: 'ubuntu-24.04'
          - python-version: '3.12'
            toxenv: 'docs'
            os: 'ubuntu-24.04'
          - python-version: '3.12'
            toxenv: 'pii_check'
            os: 'ubuntu-24.04'

    steps:
    - uses: actions/checkout@v4
    - name: setup python
      uses: actions/setup-python@v5
      with:
        python-version: ${{ matrix.python-version }}

    - name: Install pip
      run: pip install -r requirements/pip.txt

    - name: Install Dependencies
      run: pip install -r requirements/ci.txt

    - name: Run Tests
      env:
        TOXENV: ${{ matrix.toxenv }}
      run: tox

    - name: Run Coverage
      if: matrix.python-version == '3.11' && matrix.toxenv=='django42'
      uses: codecov/codecov-action@v4
      with:
        flags: unittests
        fail_ci_if_error: true
        token: ${{ secrets.CODECOV_TOKEN }}