This is an automated email from the ASF dual-hosted git repository.
pjfanning pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko-persistence-r2dbc.git
The following commit(s) were added to refs/heads/main by this push:
new c6ec8d1 try to improve waits for docker startups in CI (#407)
c6ec8d1 is described below
commit c6ec8d1981735f9a453a6b5f190ed9b9423d7593
Author: PJ Fanning <[email protected]>
AuthorDate: Mon Jun 15 16:30:42 2026 +0100
try to improve waits for docker startups in CI (#407)
* try to improve waits for docker startups in CI
* Update build-test.yml
* try again
* change again
* Update build-test.yml
* Update build-test.yml
---
.github/workflows/build-test.yml | 48 +++++++++++++++++++++++++++++++-------
docker/docker-compose-postgres.yml | 6 +++++
2 files changed, 45 insertions(+), 9 deletions(-)
diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml
index 8065751..3b86b8b 100644
--- a/.github/workflows/build-test.yml
+++ b/.github/workflows/build-test.yml
@@ -78,9 +78,16 @@ jobs:
- name: Start DB
run: |-
- docker compose -f docker/docker-compose-postgres.yml up -d
- # TODO: could we poll the port instead of sleep?
- sleep 10
+ docker compose -f docker/docker-compose-postgres.yml up -d --wait
+ # loop to wait for the DB to be ready
+ for i in {1..8}; do
+ if docker exec -i docker-postgres-db-1 psql -U postgres \
+ -t -c 'SELECT 1;' 2>/dev/null; then
+ break
+ fi
+ echo "Retry $i: SQL check failed, waiting before retry..."
+ sleep $((i * 2))
+ done
docker exec -i docker-postgres-db-1 psql -U postgres -t <
ddl-scripts/create_tables_postgres.sql
docker exec -i docker-postgres-db-1 psql -U postgres -t -c 'CREATE
DATABASE database1;'
docker exec -i docker-postgres-db-1 psql -U postgres -t -d database1
< ddl-scripts/create_tables_postgres.sql
@@ -128,9 +135,16 @@ jobs:
- name: Start DB
run: |-
- docker compose -f docker/docker-compose-postgres.yml up -d
- # TODO: could we poll the port instead of sleep?
- sleep 10
+ docker compose -f docker/docker-compose-postgres.yml up -d --wait
+ # loop to wait for the DB to be ready
+ for i in {1..8}; do
+ if docker exec -i docker-postgres-db-1 psql -U postgres \
+ -t -c 'SELECT 1;' 2>/dev/null; then
+ break
+ fi
+ echo "Retry $i: SQL check failed, waiting before retry..."
+ sleep $((i * 2))
+ done
docker exec -i docker-postgres-db-1 psql -U postgres -t <
ddl-scripts/create_tables_postgres_jsonb.sql
- name: test
@@ -175,9 +189,16 @@ jobs:
- name: Start DB
run: |-
- docker compose -f docker/docker-compose-yugabyte.yml up -d
- # TODO: could we poll the port instead of sleep?
- sleep 10
+ docker compose -f docker/docker-compose-yugabyte.yml up -d --wait
+ # loop to wait for the DB to be ready
+ for i in {1..8}; do
+ if docker exec -i yb-tserver-n1 /home/yugabyte/bin/ysqlsh \
+ -h yb-tserver-n1 -t -c 'SELECT 1;' 2>/dev/null; then
+ break
+ fi
+ echo "Retry $i: SQL check failed, waiting before retry..."
+ sleep $((i * 2))
+ done
docker exec -i yb-tserver-n1 /home/yugabyte/bin/ysqlsh -h
yb-tserver-n1 -t < ddl-scripts/create_tables_yugabyte.sql
docker exec -i yb-tserver-n1 /home/yugabyte/bin/ysqlsh -h
yb-tserver-n1 -t -c 'CREATE DATABASE database1;'
docker exec -i yb-tserver-n1 /home/yugabyte/bin/ysqlsh -h
yb-tserver-n1 -t -d database1 < ddl-scripts/create_tables_yugabyte.sql
@@ -226,6 +247,15 @@ jobs:
- name: Start DB
run: |-
docker compose -f docker/docker-compose-mysql.yml up -d --wait
+ # loop to wait for the DB to be ready
+ for i in {1..8}; do
+ if docker exec -i docker-mysql-db-1 mysql \
+ -h 127.0.0.1 --user=root --password=root --database=mysql -e
'SELECT 1;' 2>/dev/null; then
+ break
+ fi
+ echo "Retry $i: SQL check failed, waiting before retry..."
+ sleep $((i * 2))
+ done
docker exec -i docker-mysql-db-1 mysql -h 127.0.0.1 --user=root
--password=root --database=mysql < ddl-scripts/create_tables_mysql.sql
docker exec -i docker-mysql-db-1 mysql -h 127.0.0.1 --user=root
--password=root -e 'CREATE SCHEMA database1;'
docker exec -i docker-mysql-db-1 mysql -h 127.0.0.1 --user=root
--password=root --database=database1 < ddl-scripts/create_tables_mysql.sql
diff --git a/docker/docker-compose-postgres.yml
b/docker/docker-compose-postgres.yml
index 351a6bb..eb83223 100644
--- a/docker/docker-compose-postgres.yml
+++ b/docker/docker-compose-postgres.yml
@@ -7,3 +7,9 @@ services:
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
+ healthcheck:
+ test: ["CMD", "pg_isready", "-U", "postgres", "-h", "127.0.0.1"]
+ interval: 5s
+ timeout: 10s
+ retries: 12
+ start_period: 10s
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]