This is an automated email from the ASF dual-hosted git repository.
shreemaanabhishek pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix.git
The following commit(s) were added to refs/heads/master by this push:
new c132d222f fix(ci): replace blind sleep with health-check retry loops
(#13156)
c132d222f is described below
commit c132d222f19dc603506c0a54e7f5215147efaed0
Author: Shreemaan Abhishek <[email protected]>
AuthorDate: Wed Apr 8 15:00:17 2026 +0545
fix(ci): replace blind sleep with health-check retry loops (#13156)
---
ci/init-common-test-service.sh | 29 ++++++++++++++++++++++++++---
ci/init-plugin-test-service.sh | 12 +++++++++++-
2 files changed, 37 insertions(+), 4 deletions(-)
diff --git a/ci/init-common-test-service.sh b/ci/init-common-test-service.sh
index bdf5fe4bb..2674c1ec6 100755
--- a/ci/init-common-test-service.sh
+++ b/ci/init-common-test-service.sh
@@ -16,14 +16,37 @@
# limitations under the License.
#
+# wait for vault to be ready
+for i in $(seq 1 30); do
+ if curl -sf http://127.0.0.1:8200/v1/sys/health >/dev/null 2>&1; then
+ break
+ fi
+ if [ "$i" -eq 30 ]; then
+ echo "ERROR: vault failed to become ready"
+ docker logs vault 2>&1 || true
+ exit 1
+ fi
+ sleep 2
+done
+
# prepare vault kv engine
-sleep 3s
docker exec -i vault sh -c "VAULT_TOKEN='root'
VAULT_ADDR='http://0.0.0.0:8200' vault secrets enable -path=kv -version=1 kv"
+# wait for localstack to be ready
+for i in $(seq 1 30); do
+ if curl -sf http://127.0.0.1:4566/_localstack/health >/dev/null 2>&1; then
+ break
+ fi
+ if [ "$i" -eq 30 ]; then
+ echo "ERROR: localstack failed to become ready"
+ docker logs localstack 2>&1 || true
+ exit 1
+ fi
+ sleep 2
+done
+
# prepare localstack
-sleep 3s
docker exec -i localstack sh -c "awslocal secretsmanager create-secret --name
apisix-key --description 'APISIX Secret' --secret-string '{\"jack\":\"value\"}'"
-sleep 3s
docker exec -i localstack sh -c "awslocal secretsmanager create-secret --name
apisix-mysql --description 'APISIX Secret' --secret-string 'secret'"
# prepare filesystem mcp server
diff --git a/ci/init-plugin-test-service.sh b/ci/init-plugin-test-service.sh
index 7b60607f5..201ae6f4f 100755
--- a/ci/init-plugin-test-service.sh
+++ b/ci/init-plugin-test-service.sh
@@ -49,7 +49,17 @@ after() {
docker exec -i rmqnamesrv /home/rocketmq/rocketmq-4.6.0/bin/mqadmin
updateTopic -n rocketmq_namesrv:9876 -t test4 -c DefaultCluster
# wait for keycloak ready
- bash -c 'while true; do curl -s localhost:8080 &>/dev/null; ret=$?; [[
$ret -eq 0 ]] && break; sleep 3; done'
+ for i in $(seq 1 60); do
+ if curl -sf localhost:8080 >/dev/null 2>&1; then
+ break
+ fi
+ if [ "$i" -eq 60 ]; then
+ echo "ERROR: keycloak (apisix_keycloak_new) failed to become ready"
+ docker logs apisix_keycloak_new 2>&1 || true
+ exit 1
+ fi
+ sleep 3
+ done
# install jq
wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 -O
jq