From c227921a38f29a536674cfdd8bb6d8961e199329 Mon Sep 17 00:00:00 2001
From: Mark <mark@openappstack.net>
Date: Fri, 27 Mar 2020 17:01:55 +0100
Subject: [PATCH] Wait for hydra to start by checking API

---
 .gitlab-ci.yml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d6b7bd7..b263c9b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -115,13 +115,15 @@ behave-integration:
     FLASK_ENV: "development"
   image: ${CI_REGISTRY_IMAGE}/integration_test:${CI_COMMIT_REF_NAME}
   script:
-    - echo "WAIT FOR SERVICES TO INITIALIZE" && sleep 30
+    # Create user and application objects
     - /bin/bash user-panel/backend/utils/create-user.bash ${TESTUSER_USERNAME} ${TESTUSER_PASSWORD} ${TESTUSER_EMAIL} backend:5000
     - /bin/bash user-panel/backend/utils/create-user.bash ${TESTUSER_USERNAME2} ${TESTUSER_PASSWORD} ${TESTUSER_EMAIL2} backend:5000
     - /bin/bash user-panel/backend/utils/create-application.bash ${KEY} "Application used for testing" backend:5000
     - /bin/bash user-panel/backend/utils/create-role.bash ${ROLE} backend:5000
     - /bin/bash user-panel/backend/utils/grant-access.bash ${TESTUSER_USERNAME} ${KEY} backend:5000
     - /bin/bash user-panel/backend/utils/assign-role.bash ${TESTUSER_USERNAME} ${ROLE} backend:5000
+    # Wait for 60s for hydra to become available. Then create the oauth2 client object
+    - /bin/bash while [[ $HYDRASTATUS -ne "200" &&  60 -ge $TIMER ]]; do HYDRASTATUS=`curl http://hydra:4445/health/ready -o /dev/null -w "%{http_code}"` || TIMER=$TIMER+5 && sleep 5 ; done
     - /bin/bash test/create-hydra-client.bash ${KEY} ${SECRET} http://hydra:4445 http://oauth:5000/callback
     - cd test/login_logout/test/behave/
     - >
-- 
GitLab