

























@@ -123,21 +123,29 @@ jobs:
123123 local workflow="$1"
124124 shift
125125126- local before_json run_id status conclusion url
126+ local before_json dispatch_output run_id status conclusion url
127127 before_json="$(gh run list --workflow "$workflow" --event workflow_dispatch --limit 100 --json databaseId --jq '[.[].databaseId]')"
128128129- gh workflow run "$workflow" --ref "$CHILD_WORKFLOW_REF" "$@"
129+ dispatch_output="$(gh workflow run "$workflow" --ref "$CHILD_WORKFLOW_REF" "$@" 2>&1)"
130+ printf '%s\n' "$dispatch_output"
131+ run_id="$(
132+ printf '%s\n' "$dispatch_output" |
133+ sed -nE 's#.*actions/runs/([0-9]+).*#\1#p' |
134+ tail -n 1
135+ )"
130136131- for _ in $(seq 1 60); do
132- run_id="$(
133- BEFORE_IDS="$before_json" gh run list --workflow "$workflow" --event workflow_dispatch --limit 50 --json databaseId,createdAt \
134- --jq 'map(select(.databaseId as $id | (env.BEFORE_IDS | fromjson | index($id) | not))) | sort_by(.createdAt) | reverse | .[0].databaseId // empty'
135- )"
136- if [[ -n "$run_id" ]]; then
137- break
138- fi
139- sleep 5
140- done
137+ if [[ -z "$run_id" ]]; then
138+ for _ in $(seq 1 60); do
139+ run_id="$(
140+ BEFORE_IDS="$before_json" gh run list --workflow "$workflow" --event workflow_dispatch --limit 50 --json databaseId,createdAt \
141+ --jq 'map(select(.databaseId as $id | (env.BEFORE_IDS | fromjson | index($id) | not))) | sort_by(.createdAt) | reverse | .[0].databaseId // empty'
142+ )"
143+ if [[ -n "$run_id" ]]; then
144+ break
145+ fi
146+ sleep 5
147+ done
148+ fi
141149142150 if [[ -z "${run_id:-}" ]]; then
143151 echo "Could not find dispatched run for ${workflow}." >&2
@@ -200,21 +208,29 @@ jobs:
200208 local workflow="$1"
201209 shift
202210203- local before_json run_id status conclusion url
211+ local before_json dispatch_output run_id status conclusion url
204212 before_json="$(gh run list --workflow "$workflow" --event workflow_dispatch --limit 100 --json databaseId --jq '[.[].databaseId]')"
205213206- gh workflow run "$workflow" --ref "$CHILD_WORKFLOW_REF" "$@"
214+ dispatch_output="$(gh workflow run "$workflow" --ref "$CHILD_WORKFLOW_REF" "$@" 2>&1)"
215+ printf '%s\n' "$dispatch_output"
216+ run_id="$(
217+ printf '%s\n' "$dispatch_output" |
218+ sed -nE 's#.*actions/runs/([0-9]+).*#\1#p' |
219+ tail -n 1
220+ )"
207221208- for _ in $(seq 1 60); do
209- run_id="$(
210- BEFORE_IDS="$before_json" gh run list --workflow "$workflow" --event workflow_dispatch --limit 50 --json databaseId,createdAt \
211- --jq 'map(select(.databaseId as $id | (env.BEFORE_IDS | fromjson | index($id) | not))) | sort_by(.createdAt) | reverse | .[0].databaseId // empty'
212- )"
213- if [[ -n "$run_id" ]]; then
214- break
215- fi
216- sleep 5
217- done
222+ if [[ -z "$run_id" ]]; then
223+ for _ in $(seq 1 60); do
224+ run_id="$(
225+ BEFORE_IDS="$before_json" gh run list --workflow "$workflow" --event workflow_dispatch --limit 50 --json databaseId,createdAt \
226+ --jq 'map(select(.databaseId as $id | (env.BEFORE_IDS | fromjson | index($id) | not))) | sort_by(.createdAt) | reverse | .[0].databaseId // empty'
227+ )"
228+ if [[ -n "$run_id" ]]; then
229+ break
230+ fi
231+ sleep 5
232+ done
233+ fi
218234219235 if [[ -z "${run_id:-}" ]]; then
220236 echo "Could not find dispatched run for ${workflow}." >&2
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。