@@ -263,26 +263,38 @@ e2e-test:
263263    { {- end }  }
264264
265265e2e-test-status:
266-   stage: e2e 
266+   stage: test 
267267  image: registry.ddbuild.io/images/docker:20.10-py3
268268  tags: ["arch:amd64"]
269-   dependencies:
270-     - e2e-test
269+   timeout: 3h
271270  script: |
272271      GITLAB_API_TOKEN=$(aws ssm get-parameter --region us-east-1 --name "ci.${ CI_PROJECT_NAME}  .serverless-e2e-gitlab-token" --with-decryption --query "Parameter.Value" --out text)
273272      URL="${ CI_API_V4_URL}  /projects/${ CI_PROJECT_ID}  /pipelines/${ CI_PIPELINE_ID}  /bridges"
274273      echo "Fetching E2E job status from: $URL"
275-       RESPONSE=$(curl -s --header "PRIVATE-TOKEN: ${ GITLAB_API_TOKEN}  " "$URL")
276-       echo "Response from GitLab API: $RESPONSE"
277-       E2E_JOB_STATUS=$(echo "$RESPONSE" | jq -r '.[] | select(.name=="e2e-test") | .pipeline.status')
278-       echo "E2E job status: $E2E_JOB_STATUS"
279-       if [ "$E2E_JOB_STATUS" == "success" ]; then
280-         echo "✅ E2E tests completed successfully"
281-         exit 0
282-       elif [ "$E2E_JOB_STATUS" == "failed" ]; then
283-         echo "❌ E2E tests failed"
284-         exit 1
285-       else
286-         echo "❓ Unknown E2E test status: $E2E_JOB_STATUS"
287-         exit 1
288-       fi
274+       while true; do
275+         RESPONSE=$(curl -s --header "PRIVATE-TOKEN: ${ GITLAB_API_TOKEN}  " "$URL")
276+         echo "Response from GitLab API: $RESPONSE"
277+         E2E_JOB_STATUS=$(echo "$RESPONSE" | jq -r '.[] | select(.name=="e2e-test") | .pipeline.status')
278+         echo "E2E job status: $E2E_JOB_STATUS"
279+         if [ "$E2E_JOB_STATUS" == "success" ]; then
280+           echo "✅ E2E tests completed successfully"
281+           exit 0
282+         elif [ "$E2E_JOB_STATUS" == "failed" ]; then
283+           echo "❌ E2E tests failed"
284+           exit 1
285+         elif [ "$E2E_JOB_STATUS" == "running" ]; then
286+           echo -n "⏳ E2E tests are still running"
287+           echo "Retrying in 1 minute..."
288+           sleep 60
289+         elif [ "$E2E_JOB_STATUS" == "canceled" ]; then
290+           echo "🚫 E2E tests were canceled"
291+           exit 1
292+         elif [ "$E2E_JOB_STATUS" == "skipped" ]; then
293+           echo "⏭️ E2E tests were skipped"
294+           exit 0
295+         else
296+           echo -n "❓ Unknown E2E test status: $E2E_JOB_STATUS"
297+           echo "Retrying in 1 minute..."
298+           sleep 60
299+         fi
300+       done
0 commit comments