Some checks failed
PostgreSQL Compatibility Matrix / PG14 smoke (push) Successful in 7s
PostgreSQL Compatibility Matrix / PG15 smoke (push) Successful in 7s
PostgreSQL Compatibility Matrix / PG17 smoke (push) Has been cancelled
PostgreSQL Compatibility Matrix / PG18 smoke (push) Has been cancelled
PostgreSQL Compatibility Matrix / PG16 smoke (push) Has been cancelled
The backend Alpine smoke test targeting PostgreSQL 16 was removed from the CI configuration. This cleanup simplifies the workflow by eliminating redundancy, as the functionality might be covered elsewhere or deemed unnecessary.
70 lines
2.1 KiB
YAML
70 lines
2.1 KiB
YAML
name: PostgreSQL Compatibility Matrix
|
|
|
|
on:
|
|
push:
|
|
branches: ["main", "master", "development"]
|
|
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: Enable pg_stat_statements in service container
|
|
run: |
|
|
PG_CID="$(docker ps --filter "ancestor=postgres:${{ matrix.pg_version }}" --format "{{.ID}}" | head -n1)"
|
|
if [ -z "$PG_CID" ]; then
|
|
echo "Could not find postgres service container for version ${{ matrix.pg_version }}"
|
|
docker ps -a
|
|
exit 1
|
|
fi
|
|
|
|
echo "Using postgres container: $PG_CID"
|
|
docker exec "$PG_CID" psql -U postgres -d compatdb -c "ALTER SYSTEM SET shared_preload_libraries = 'pg_stat_statements';"
|
|
docker restart "$PG_CID"
|
|
|
|
for i in $(seq 1 40); do
|
|
if docker exec "$PG_CID" pg_isready -U postgres -d compatdb; then
|
|
break
|
|
fi
|
|
sleep 2
|
|
done
|
|
|
|
docker exec "$PG_CID" psql -U postgres -d compatdb -c "CREATE EXTENSION IF NOT EXISTS pg_stat_statements;"
|
|
|
|
- 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
|