Skip to content

Use testcontainers for DB tests #2771

Use testcontainers for DB tests

Use testcontainers for DB tests #2771

Workflow file for this run

name: Test Suite
on:
push:
branches: ["master", "v1"]
paths-ignore:
- "docs/**"
pull_request:
branches: ["master", "v1"]
paths-ignore:
- "docs/**"
jobs:
linters:
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements/requirements.txt
pip install -r requirements/dev-requirements.txt
pip install -r requirements/test-requirements.txt
- name: Lint
run: ./scripts/lint.sh
integration:
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
matrix:
# These tests are slow, so we only run on the latest Python
# version.
python-version: ["3.13"]
postgres-version: [17]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements/requirements.txt
pip install -r requirements/test-requirements.txt
pip install -r requirements/extras/postgres.txt
- name: Run integration tests
run: ./scripts/test-integration.sh
env:
TC_POSTGRES_VERSION: ${{ matrix.postgres-version }}
postgres:
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
postgres-version: [13, 14, 15, 16, 17, 18]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements/requirements.txt
pip install -r requirements/test-requirements.txt
pip install -r requirements/extras/postgres.txt
- name: Test with pytest, Postgres
run: ./scripts/test-postgres.sh
env:
TC_POSTGRES_VERSION: ${{ matrix.postgres-version }}
- name: Upload coverage
uses: codecov/codecov-action@v1
if: matrix.python-version == '3.13'
cockroach:
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
cockroachdb-version: ["v25.4.3"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements/requirements.txt
pip install -r requirements/test-requirements.txt
pip install -r requirements/extras/postgres.txt
- name: Test with pytest, CockroachDB
run: ./scripts/test-cockroach.sh
env:
TC_COCKROACH_VERSION: ${{ matrix.cockroachdb-version }}
- name: Upload coverage
uses: codecov/codecov-action@v1
if: matrix.python-version == '3.13'
sqlite:
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements/requirements.txt
pip install -r requirements/test-requirements.txt
pip install -r requirements/extras/sqlite.txt
- name: Test with pytest, SQLite
run: ./scripts/test-sqlite.sh
- name: Upload coverage
uses: codecov/codecov-action@v1
if: matrix.python-version == '3.13'