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-projection.git
The following commit(s) were added to refs/heads/main by this push:
new 0f6c3c37 copy over docker wait changes (#524)
0f6c3c37 is described below
commit 0f6c3c37dd02076309637a03c9b489110b4919d2
Author: PJ Fanning <[email protected]>
AuthorDate: Mon Jun 15 17:00:41 2026 +0100
copy over docker wait changes (#524)
* copy over docker wait changes
* Update integration-tests-r2dbc.yml
---
.github/workflows/integration-tests-r2dbc.yml | 35 ++++++++++++++++++++++-----
docker-files/docker-compose-postgres.yml | 6 +++++
2 files changed, 35 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/integration-tests-r2dbc.yml
b/.github/workflows/integration-tests-r2dbc.yml
index cc832e13..a3c68860 100644
--- a/.github/workflows/integration-tests-r2dbc.yml
+++ b/.github/workflows/integration-tests-r2dbc.yml
@@ -56,9 +56,16 @@ jobs:
- name: Start PostgreSQL DB
run: |-
- docker compose -f docker-files/docker-compose-postgres.yml up -d
- # TODO: could we poll the port instead of sleep?
- sleep 10
+ docker compose -f docker-files/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 <
r2dbc-int-test/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
< r2dbc-int-test/ddl-scripts/create_tables_postgres.sql
@@ -109,9 +116,16 @@ jobs:
- name: Start YugabyteDB
run: |-
- docker compose -f docker-files/docker-compose-yugabyte.yml up -d
- # TODO: could we poll the port instead of sleep?
- sleep 10
+ docker compose -f docker-files/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 < r2dbc-int-test/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 <
r2dbc-int-test/ddl-scripts/create_tables_yugabyte.sql
@@ -163,6 +177,15 @@ jobs:
- name: Start MySQL
run: |-
docker compose -f docker-files/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 <
r2dbc-int-test/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 <
r2dbc-int-test/ddl-scripts/create_tables_mysql.sql
diff --git a/docker-files/docker-compose-postgres.yml
b/docker-files/docker-compose-postgres.yml
index 351a6bb7..eb832234 100644
--- a/docker-files/docker-compose-postgres.yml
+++ b/docker-files/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]