name: PostgreSQL Compatibility Matrix on: push: branches: ["main", "master"] pull_request: jobs: pg-compat: name: PG${{ matrix.pg_version }} smoke runs-on: ubuntu-latest strategy: fail-fast: false matrix: pg_version: ["14", "15", "16", "17", "18"] services: postgres: image: postgres:${{ matrix.pg_version }} env: POSTGRES_DB: compatdb POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres ports: - 5432:5432 options: >- --health-cmd "pg_isready -U postgres -d compatdb" --health-interval 5s --health-timeout 5s --health-retries 20 steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.12" - name: Install backend dependencies run: pip install -r backend/requirements.txt - name: Run PostgreSQL compatibility smoke checks env: PG_DSN_CANDIDATES: postgresql://postgres:postgres@postgres:5432/compatdb?sslmode=disable,postgresql://postgres:postgres@127.0.0.1:5432/compatdb?sslmode=disable run: python backend/scripts/pg_compat_smoke.py