Add support for Python 3.13 #368
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
push: | |
pull_request: | |
jobs: | |
tests: | |
name: Unit tests run | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- {python: "3.7", postgres: "10"} | |
- {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: "16"} | |
# Opposite extremes of the supported Py/PG range, other architecture | |
- {python: "3.7", postgres: "16", architecture: "x86"} | |
- {python: "3.8", postgres: "15", architecture: "x86"} | |
- {python: "3.9", postgres: "14", architecture: "x86"} | |
- {python: "3.10", postgres: "13", architecture: "x86"} | |
- {python: "3.11", postgres: "11", architecture: "x86"} | |
- {python: "3.12", postgres: "10", architecture: "x86"} | |
- {python: "3.13", postgres: "10", architecture: "x86"} | |
env: | |
PSYCOPG2_TESTDB: postgres | |
PSYCOPG2_TESTDB_HOST: 127.0.0.1 | |
PSYCOPG2_TESTDB_USER: postgres | |
PSYCOPG2_TESTDB_PASSWORD: password | |
services: | |
postgresql: | |
image: postgres:${{ matrix.postgres }} | |
env: | |
POSTGRES_PASSWORD: password | |
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: | |
- uses: actions/checkout@v4 | |
# Can enable to test an unreleased libpq version. | |
- name: install libpq 16 | |
if: false | |
run: | | |
set -x | |
rel=$(lsb_release -c -s) | |
echo "deb http://apt.postgresql.org/pub/repos/apt ${rel}-pgdg main 16" \ | |
| sudo tee -a /etc/apt/sources.list.d/pgdg.list | |
sudo apt-get -qq update | |
pqver=$(apt-cache show libpq5 | grep ^Version: | head -1 \ | |
| awk '{print $2}') | |
sudo apt-get -qq -y install "libpq-dev=${pqver}" "libpq5=${pqver}" | |
- name: Install tox | |
run: pip install "tox < 4" | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Run tests | |
env: | |
MATRIX_PYTHON: ${{ matrix.python }} | |
run: tox -e ${MATRIX_PYTHON%-dev} | |
timeout-minutes: 5 |