Skip to content

Commit c132d22

Browse files
fix(ci): replace blind sleep with health-check retry loops (#13156)
1 parent c048154 commit c132d22

File tree

2 files changed

+37
-4
lines changed

2 files changed

+37
-4
lines changed

ci/init-common-test-service.sh

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,37 @@
1616
# limitations under the License.
1717
#
1818

19+
# wait for vault to be ready
20+
for i in $(seq 1 30); do
21+
if curl -sf http://127.0.0.1:8200/v1/sys/health >/dev/null 2>&1; then
22+
break
23+
fi
24+
if [ "$i" -eq 30 ]; then
25+
echo "ERROR: vault failed to become ready"
26+
docker logs vault 2>&1 || true
27+
exit 1
28+
fi
29+
sleep 2
30+
done
31+
1932
# prepare vault kv engine
20-
sleep 3s
2133
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"
2234

35+
# wait for localstack to be ready
36+
for i in $(seq 1 30); do
37+
if curl -sf http://127.0.0.1:4566/_localstack/health >/dev/null 2>&1; then
38+
break
39+
fi
40+
if [ "$i" -eq 30 ]; then
41+
echo "ERROR: localstack failed to become ready"
42+
docker logs localstack 2>&1 || true
43+
exit 1
44+
fi
45+
sleep 2
46+
done
47+
2348
# prepare localstack
24-
sleep 3s
2549
docker exec -i localstack sh -c "awslocal secretsmanager create-secret --name apisix-key --description 'APISIX Secret' --secret-string '{\"jack\":\"value\"}'"
26-
sleep 3s
2750
docker exec -i localstack sh -c "awslocal secretsmanager create-secret --name apisix-mysql --description 'APISIX Secret' --secret-string 'secret'"
2851

2952
# prepare filesystem mcp server

ci/init-plugin-test-service.sh

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,17 @@ after() {
4949
docker exec -i rmqnamesrv /home/rocketmq/rocketmq-4.6.0/bin/mqadmin updateTopic -n rocketmq_namesrv:9876 -t test4 -c DefaultCluster
5050

5151
# wait for keycloak ready
52-
bash -c 'while true; do curl -s localhost:8080 &>/dev/null; ret=$?; [[ $ret -eq 0 ]] && break; sleep 3; done'
52+
for i in $(seq 1 60); do
53+
if curl -sf localhost:8080 >/dev/null 2>&1; then
54+
break
55+
fi
56+
if [ "$i" -eq 60 ]; then
57+
echo "ERROR: keycloak (apisix_keycloak_new) failed to become ready"
58+
docker logs apisix_keycloak_new 2>&1 || true
59+
exit 1
60+
fi
61+
sleep 3
62+
done
5363

5464
# install jq
5565
wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 -O jq

0 commit comments

Comments
 (0)