feat: Add wait step for database service availability in CI workflow
Some checks failed
Run Tests / test (push) Failing after 5m46s
Some checks failed
Run Tests / test (push) Failing after 5m46s
This commit is contained in:
@@ -36,6 +36,42 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
pip install -r requirements.txt
|
pip install -r requirements.txt
|
||||||
pip install -r requirements-test.txt
|
pip install -r requirements-test.txt
|
||||||
|
- name: Wait for database service
|
||||||
|
env:
|
||||||
|
DATABASE_DRIVER: postgresql
|
||||||
|
DATABASE_HOST: 127.0.0.1
|
||||||
|
DATABASE_PORT: "5432"
|
||||||
|
DATABASE_NAME: calminer_ci
|
||||||
|
DATABASE_USER: calminer
|
||||||
|
DATABASE_PASSWORD: secret
|
||||||
|
DATABASE_SCHEMA: public
|
||||||
|
DATABASE_SUPERUSER: calminer
|
||||||
|
DATABASE_SUPERUSER_PASSWORD: secret
|
||||||
|
DATABASE_SUPERUSER_DB: calminer_ci
|
||||||
|
run: |
|
||||||
|
python - <<'PY'
|
||||||
|
import os
|
||||||
|
import time
|
||||||
|
|
||||||
|
import psycopg2
|
||||||
|
|
||||||
|
dsn = (
|
||||||
|
f"dbname={os.environ['DATABASE_SUPERUSER_DB']} "
|
||||||
|
f"user={os.environ['DATABASE_SUPERUSER']} "
|
||||||
|
f"password={os.environ['DATABASE_SUPERUSER_PASSWORD']} "
|
||||||
|
f"host={os.environ['DATABASE_HOST']} "
|
||||||
|
f"port={os.environ['DATABASE_PORT']}"
|
||||||
|
)
|
||||||
|
|
||||||
|
for attempt in range(30):
|
||||||
|
try:
|
||||||
|
with psycopg2.connect(dsn):
|
||||||
|
break
|
||||||
|
except psycopg2.OperationalError:
|
||||||
|
time.sleep(2)
|
||||||
|
else:
|
||||||
|
raise SystemExit("Postgres service did not become available")
|
||||||
|
PY
|
||||||
- name: Run database setup (dry run)
|
- name: Run database setup (dry run)
|
||||||
env:
|
env:
|
||||||
DATABASE_DRIVER: postgresql
|
DATABASE_DRIVER: postgresql
|
||||||
|
|||||||
Reference in New Issue
Block a user