name: Tests on: push: pull_request: jobs: tests: name: Unit tests run runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: include: - {python: "3.6", postgres: "10"} - {python: "3.7", postgres: "11"} - {python: "3.8", postgres: "12"} - {python: "3.9", postgres: "13"} - {python: "3.10", postgres: "14"} - {python: "3.11-dev", postgres: "14"} # Opposite extremes of the supported Py/PG range, other architecture - {python: "3.6", postgres: "14", architecture: "x86"} - {python: "3.7", postgres: "13", architecture: "x86"} - {python: "3.8", postgres: "12", architecture: "x86"} - {python: "3.9", postgres: "11", architecture: "x86"} - {python: "3.10", postgres: "10", architecture: "x86"} - {python: "3.11-dev", 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@v2 - name: Install tox run: pip install tox - uses: actions/setup-python@v2 with: python-version: ${{ matrix.python }} - name: Run tests env: MATRIX_PYTHON: ${{ matrix.python }} run: tox -e ${MATRIX_PYTHON%-dev} timeout-minutes: 5