Test tap-postgres #2419
This file contains hidden or 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/constraints.txt | |
| - .github/workflows/test.yml | |
| - log_based/** | |
| - pagila/** | |
| - plugins/** | |
| - ssh_tunnel/** | |
| - ssl/** | |
| - tap_postgres/** | |
| - tests/** | |
| - pyproject.toml | |
| - tox.ini | |
| - uv.lock | |
| push: | |
| branches: [main] | |
| paths: | |
| - .github/workflows/constraints.txt | |
| - .github/workflows/test.yml | |
| - log_based/** | |
| - pagila/** | |
| - plugins/** | |
| - ssh_tunnel/** | |
| - ssl/** | |
| - tap_postgres/** | |
| - tests/** | |
| - pyproject.toml | |
| - tox.ini | |
| - uv.lock | |
| workflow_dispatch: | |
| inputs: {} | |
| schedule: | |
| # Every 8 hours | |
| - cron: '0 */8 * * *' | |
| 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 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: | |
| - "3.14" | |
| - "3.13" | |
| - "3.12" | |
| - "3.11" | |
| - "3.10" | |
| postgres-version: | |
| - "18" | |
| include: | |
| - python-version: "3.14" | |
| postgres-version: "14" | |
| - python-version: "3.14" | |
| postgres-version: "15" | |
| - python-version: "3.14" | |
| postgres-version: "16" | |
| - python-version: "3.14" | |
| postgres-version: "17" | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - 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: Compose Postgres container | |
| env: | |
| POSTGRES_VERSION: ${{ matrix.postgres-version }} | |
| run: | | |
| docker compose up -d --wait --wait-timeout=30 | |
| # Leaving comments as this makes testing the openssh docker image easier and should save someone some time later | |
| # - name: Test SSH File Permissions | |
| # 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@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| allow-prereleases: true | |
| - name: Setup uv | |
| uses: astral-sh/setup-uv@61cb8a9741eeb8a550a1b8544337180c0fc8476b # v7.2.0 | |
| with: | |
| version: ">=0.6.15" | |
| - name: Install Tox | |
| env: | |
| UV_CONSTRAINT: ${{ github.workspace }}/.github/workflows/constraints.txt | |
| run: | | |
| uv tool install --with tox-uv tox | |
| - name: Run pytest | |
| run: | | |
| tox -e ${{ matrix.python-version }} | |
| - name: Run lint | |
| run: | | |
| tox -e lint |