| name: Run Tox tests |
| |
| on: |
| - push |
| - pull_request |
| |
| jobs: |
| build: |
| runs-on: ubuntu-latest |
| name: "Python ${{ matrix.python-version }}, Postgres=${{ matrix.with-postgres }}" |
| |
| strategy: |
| matrix: |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] |
| with-postgres: [true, false] |
| fail-fast: false |
| |
| steps: |
| - uses: actions/checkout@v5 |
| with: |
| fetch-depth: 0 # fetch all history including tags -- necessary to determine the version from SCM |
| - name: Set up Python ${{ matrix.python-version }} |
| uses: actions/setup-python@v6 |
| with: |
| python-version: ${{ matrix.python-version }} |
| - name: Install dependencies |
| run: | |
| python -m pip install --upgrade pip |
| pip install tox tox-gh-actions |
| - name: Install PostgreSQL |
| if: ${{ matrix.with-postgres }} |
| uses: tj-actions/install-postgresql@v3 |
| with: |
| postgresql-version: 17 |
| - name: Tox flake8 |
| run: tox -e flake8 |
| - name: Tox docs |
| run: tox -e docs |
| - name: Tox mypy |
| run: tox -e mypy |
| - name: Tox py3 |
| run: tox -e py3 |