@@ -279,13 +279,13 @@ e2e-status:
279279 image: registry.ddbuild.io /images/mirror/alpine:latest
280280 tags: [" arch:amd64" ]
281281 needs:
282- - e2e-test
283282 {{- range (ds " runtimes" ).runtimes }}
284283 {{- if eq .arch " amd64" }}
285284 - " publish-layer-sandbox ({{ .name }}-{{ .arch }}): [{{ $e2e_region }}]"
286285 {{- end }}
287286 {{- end }}
288287 script:
288+ - apt-get install -y curl
289289 - echo " Python layer ARNs used in E2E tests:"
290290 {{- range (ds " runtimes" ).runtimes }}
291291 {{- if eq .arch " amd64" }}
@@ -295,11 +295,36 @@ e2e-status:
295295 {{- end }}
296296 - |
297297 # TODO: link to the test results
298- # make this job start running at same time as e2e-test job
299298 # do not wait around for the scheduled job to complete
300- if [ " ${CI_JOB_STATUS}" = " failed" ]; then
301- echo " ❌ E2E tests failed"
302- exit 1
303- else
304- echo " ✅ E2E tests completed successfully"
305- fi
299+ echo " 🔄 Waiting for E2E tests to complete..."
300+ # Poll for e2e-test job completion
301+ while true; do
302+ # Get the e2e-test job status
303+ E2E_JOB_STATUS= $ (curl -s --header " PRIVATE-TOKEN: ${CI_JOB_TOKEN}" \
304+ " ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/pipelines/${CI_PIPELINE_ID}/jobs" | \
305+ jq -r '. [] | select(.name == " e2e-test" ) | .status ')
306+ echo " E2E job status: $E2E_JOB_STATUS"
307+ case " $E2E_JOB_STATUS" in
308+ " success" )
309+ echo " ✅ E2E tests completed successfully"
310+ exit 0
311+ ;;
312+ " failed" )
313+ echo " ❌ E2E tests failed"
314+ echo " 💡 Look for pipelines triggered around $(date -u +" %Y-%m-%d %H:%M:%S UTC" )"
315+ exit 1
316+ ;;
317+ " canceled" )
318+ echo " ⚠️ E2E tests were canceled"
319+ exit 1
320+ ;;
321+ " running" | " pending" | " created" )
322+ echo " ⏳ E2E tests still running..."
323+ sleep 30
324+ ;;
325+ *)
326+ echo " ❓ Unknown E2E test status: $E2E_JOB_STATUS"
327+ sleep 30
328+ ;;
329+ esac
330+ done
0 commit comments