|
name: Run PyGreSQL test matrix |
|
|
|
# this has been shamelessly copied from Psycopg |
|
|
|
on: |
|
push: |
|
pull_request: |
|
|
|
jobs: |
|
tests: |
|
name: Unit tests run |
|
runs-on: ubuntu-22.04 |
|
|
|
strategy: |
|
fail-fast: false |
|
matrix: |
|
include: |
|
- { python: "3.8", postgres: "12" } |
|
- { python: "3.9", postgres: "13" } |
|
- { python: "3.10", postgres: "14" } |
|
- { python: "3.11", postgres: "15" } |
|
- { python: "3.12", postgres: "16" } |
|
- { python: "3.13", postgres: "17" } |
|
- { python: "3.14", postgres: "18" } |
|
|
|
# Opposite extremes of the supported Py/PG range, other architecture |
|
- { python: "3.8", postgres: "18", architecture: "x86" } |
|
- { python: "3.9", postgres: "17", architecture: "x86" } |
|
- { python: "3.10", postgres: "16", architecture: "x86" } |
|
- { python: "3.11", postgres: "15", architecture: "x86" } |
|
- { python: "3.12", postgres: "14", architecture: "x86" } |
|
- { python: "3.13", postgres: "13", architecture: "x86" } |
|
- { python: "3.14", postgres: "12", architecture: "x86" } |
|
|
|
env: |
|
PYGRESQL_DB: test |
|
PYGRESQL_HOST: 127.0.0.1 |
|
PYGRESQL_USER: test |
|
PYGRESQL_PASSWD: test |
|
|
|
services: |
|
postgresql: |
|
image: postgres:${{ matrix.postgres }} |
|
env: |
|
POSTGRES_USER: test |
|
POSTGRES_PASSWORD: test |
|
ports: |
|
- 5432:5432 |
|
# Set health checks to wait until postgres has started |
|
options: >- |
|
--health-cmd pg_isready |
|
--health-interval 10s |
|
--health-timeout 5s |
|
--health-retries 5 |
|
|
|
steps: |
|
- name: Check out repository |
|
uses: actions/checkout@v6 |
|
- name: Install tox |
|
run: pip install tox |
|
- name: Setup Python |
|
uses: actions/setup-python@v6 |
|
with: |
|
python-version: ${{ matrix.python }} |
|
- name: Run tests |
|
env: |
|
MATRIX_PYTHON: ${{ matrix.python }} |
|
run: tox -e py${MATRIX_PYTHON/./} |
|
timeout-minutes: 5 |