@@ -84,7 +84,7 @@ validate_args() {
8484
8585lets_wait () {
8686 echo " Sleeping for ${wait_interval} seconds"
87- sleep $wait_interval
87+ sleep " $wait_interval "
8888}
8989
9090api () {
@@ -101,7 +101,11 @@ api() {
101101 echo >&2 " api failed:"
102102 echo >&2 " path: $path "
103103 echo >&2 " response: $response "
104- exit 1
104+ if [[ " $response " == * ' "Server Error"' * ]]; then
105+ echo " Server error - trying again"
106+ else
107+ exit 1
108+ fi
105109 fi
106110}
107111
@@ -148,6 +152,19 @@ trigger_workflow() {
148152 join -v2 <( echo " $OLD_RUNS " ) <( echo " $NEW_RUNS " )
149153}
150154
155+ comment_downstream_link () {
156+ if response=$( curl --fail-with-body -sSL -X POST \
157+ " ${INPUT_COMMENT_DOWNSTREAM_URL} " \
158+ -H " Authorization: Bearer ${INPUT_COMMENT_GITHUB_TOKEN} " \
159+ -H ' Accept: application/vnd.github.v3+json' \
160+ -d " {\" body\" : \" Running downstream job at $1 \" }" )
161+ then
162+ echo " $response "
163+ else
164+ echo >&2 " failed to comment to ${INPUT_COMMENT_DOWNSTREAM_URL} :"
165+ fi
166+ }
167+
151168wait_for_workflow_to_finish () {
152169 last_workflow_id=${1:? }
153170 last_workflow_url=" ${GITHUB_SERVER_URL} /${INPUT_OWNER} /${INPUT_REPO} /actions/runs/${last_workflow_id} "
@@ -159,6 +176,10 @@ wait_for_workflow_to_finish() {
159176 echo " workflow_url=${last_workflow_url} " >> $GITHUB_OUTPUT
160177 echo " "
161178
179+ if [ -n " ${INPUT_COMMENT_DOWNSTREAM_URL} " ]; then
180+ comment_downstream_link ${last_workflow_url}
181+ fi
182+
162183 conclusion=null
163184 status=
164185
@@ -172,6 +193,7 @@ wait_for_workflow_to_finish() {
172193
173194 echo " Checking conclusion [${conclusion} ]"
174195 echo " Checking status [${status} ]"
196+ echo " conclusion=${conclusion} " >> $GITHUB_OUTPUT
175197 done
176198
177199 if [[ " ${conclusion} " == " success" && " ${status} " == " completed" ]]
0 commit comments