@@ -4,21 +4,24 @@ WORKFLOW=${2}
44RUN_ID=${3}
55POLL_INTERVAL=${4}
66
7+ # TODO: Remove old logic when no branches are outdated
8+ NEW_LOGIC=${NEW_LOGIC:- 0}
9+
710FILTER_DATE=$( TZ=UTC date -d " -5 minutes" " +%Y-%m-%dT%H:%M" )
811MAX_ATTEMPTS=10
912ATTEMPT=1
1013
1114DOWNSTREAM_RUN_ID=invalid
1215
13- trap on_sigterm SIGTERM
16+ trap on_sigterm SIGTERM
1417
1518on_sigterm () {
1619 echo " Timeout reached"
1720 fail
1821}
1922
2023fail () {
21- if [[ " ${CHECK} " != " ${RUN_ID } " ]]; then
24+ if [[ -z " ${DOWNSTREAM_RUN_ID } " ]]; then
2225 echo " Failed to find run id in downstream"
2326 exit 1
2427 fi
@@ -32,14 +35,23 @@ get_run_ids() {
3235}
3336
3437find_connect_step_job_id () {
35- gh run view $1 --repo $REPO --json jobs \
36- | jq ' .jobs[] | select(.steps[] | .name | contains("upstream-connect")) | .databaseId'
38+ # TODO: Remove old logic when no branches are outdated
39+ if [[ ${NEW_LOGIC} -ne 1 ]]; then
40+ gh run view $1 --repo $REPO --json jobs |
41+ jq ' .jobs[] | select(.steps[] | .name | contains("upstream-connect")) | .databaseId'
42+ return
43+ fi
44+ gh run view $1 --repo $REPO --json jobs |
45+ jq --arg run_id " ${RUN_ID} " ' .jobs[] | select(.name | contains($run_id)) | .databaseId'
3746}
3847
3948while true ; do
49+ if [[ ${ATTEMPT} -gt ${MAX_ATTEMPTS} ]]; then
50+ fail
51+ fi
4052 echo " Trying to get run id from downstream. Attempt: ${ATTEMPT} "
4153 ATTEMPT=$(( ATTEMPT + 1 ))
42-
54+
4355 readarray -t RUNS < <( get_run_ids)
4456
4557 echo $RUNS
@@ -49,11 +61,13 @@ while true; do
4961 echo $job_id
5062
5163 if [[ -n $job_id ]]; then
52- if gh run view $1 --repo $REPO --log -j $job_id | grep -q ${RUN_ID} ; then
53- # Break out of for and until loop
54- DOWNSTREAM_RUN_ID=${RUN}
55- break 2
64+ # TODO: Remove old logic when no branches are outdated
65+ if [[ ${NEW_LOGIC} -ne 1 && ! $( gh run view ${RUN} --repo $REPO --log -j $job_id | grep -q ${RUN_ID} ) ]]; then
66+ continue
5667 fi
68+ # Break out of for and until loop
69+ DOWNSTREAM_RUN_ID=${RUN}
70+ break 2
5771 fi
5872 done
5973
@@ -66,14 +80,19 @@ echo "Downstream workflow: $url"
6680echo " downstream_run_id=${DOWNSTREAM_RUN_ID} " >> $GITHUB_OUTPUT
6781echo " downstream_run_url=${url} " >> $GITHUB_OUTPUT
6882
83+ ATTEMPT=1
84+
6985while true ; do
86+ echo " Trying to get run status... Attempt: ${ATTEMPT} "
7087 ATTEMPT=$(( ATTEMPT + 1 ))
7188 STATUS=$( gh run view --repo ${REPO} ${DOWNSTREAM_RUN_ID} --json status,conclusion | jq -r ' select(.status == "completed") | .conclusion' )
7289
7390 if [[ " ${STATUS} " != " " ]]; then
7491 break
7592 fi
7693
94+ echo " Job is still running. Waiting 1 minute before retrying..."
95+
7796 # Only check every minute
7897 sleep 60
7998done
@@ -83,4 +102,4 @@ if [[ "${STATUS}" != "success" ]]; then
83102 fail
84103fi
85104
86- echo " Downstream workflow succeeded!"
105+ echo " Downstream workflow succeeded!"
0 commit comments