chore: Start testing with Postgres 12-17 and Python 3.13, dropped sup… #1110
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: Test tap-postgres | |
env: | |
FORCE_COLOR: 1 | |
on: | |
pull_request: | |
branches: [main] | |
types: [opened, synchronize, reopened] | |
paths: | |
- .github/workflows/test.yml | |
- log_based/** | |
- pagila/** | |
- ssh_tunnel/** | |
- ssl/** | |
- tap_postgres/** | |
- tests/** | |
- poetry.lock | |
- pyproject.toml | |
- tox.ini | |
push: | |
branches: [main] | |
paths: | |
- .github/workflows/test.yml | |
- log_based/** | |
- pagila/** | |
- ssh_tunnel/** | |
- ssl/** | |
- tap_postgres/** | |
- tests/** | |
- poetry.lock | |
- pyproject.toml | |
- tox.ini | |
workflow_dispatch: | |
inputs: {} | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
tests: | |
name: Python ${{ matrix.python-version }} / Postgres ${{ matrix.postgres-version }} | |
runs-on: ubuntu-latest | |
env: | |
PIP_CONSTRAINT: ${{ github.workspace }}/.github/workflows/constraints.txt | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: | |
- "3.13" | |
- "3.12" | |
- "3.11" | |
- "3.10" | |
- "3.9" | |
postgres-version: | |
- "17" | |
include: | |
- python-version: "3.13" | |
postgres-version: "12" | |
- python-version: "3.13" | |
postgres-version: "13" | |
- python-version: "3.13" | |
postgres-version: "14" | |
- python-version: "3.13" | |
postgres-version: "15" | |
- python-version: "3.13" | |
postgres-version: "16" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Fix Permissions | |
run: | | |
chmod 777 -R ./ssh_tunnel/ssh-server-config | |
chmod 600 ssl/server.key | |
sudo chown 999:999 ssl/server.key | |
chmod 600 ssl/pkey.key | |
- name: Build Postgres container | |
env: | |
POSTGRES_VERSION: ${{ matrix.postgres-version }} | |
run: | | |
docker build . --build-arg POSTGRES_VERSION=${POSTGRES_VERSION} --tag meltano/log_based | |
- name: Compose Postgres container | |
env: | |
POSTGRES_VERSION: ${{ matrix.postgres-version }} | |
run: | | |
docker compose -f docker-compose.yml up -d --wait --wait-timeout=30 | |
- uses: isbang/compose-action@v2.0.2 | |
env: | |
POSTGRES_VERSION: ${{ matrix.postgres-version }} | |
# Leaving comments as this makes testing the openssh docker image easier and should save someone some time later | |
# - name: Test SSH File Permissiosn | |
# run: | | |
# docker exec openssh-server ls -lsa /config/ssh_host_keys | |
# docker exec openssh-server cat /config/logs/openssh/current | |
# docker exec openssh-server ps aux | |
- run: docker ps | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
allow-prereleases: true | |
- name: Install Tox | |
run: | | |
python -m pip install --upgrade pip | |
pipx install tox | |
- name: Run pytest | |
run: | | |
tox -e $(echo py${{ matrix.python-version }} | tr -d .) | |
- name: Run lint | |
run: | | |
tox -e lint |