From b7aecf75983ea282878a1015ae0605a1ba010fb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastian=20Echterh=C3=B6lter?= Date: Tue, 7 Apr 2026 10:58:23 +0200 Subject: [PATCH] fix: wait for each release workflow to complete before proceeding MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gh workflow run is fire-and-forget. Record a timestamp before triggering, poll for the new run ID, then use gh run watch --exit-status to block until completion. If portal-ui-lib fails, portal-server-lib is never triggered. Signed-off-by: Bastian Echterhölter On-behalf-of: @SAP --- .github/workflows/release-openmfp.yml | 40 +++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-openmfp.yml b/.github/workflows/release-openmfp.yml index ba21189..1ee339e 100644 --- a/.github/workflows/release-openmfp.yml +++ b/.github/workflows/release-openmfp.yml @@ -23,12 +23,48 @@ jobs: portal-ui-lib portal-server-lib - name: Release portal-ui-lib - run: gh workflow run release.yml --repo openmfp/portal-ui-lib --field version="$VERSION" + run: | + BEFORE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") + gh workflow run release.yml --repo openmfp/portal-ui-lib --field version="$VERSION" + + RUN_ID="" + for i in $(seq 1 30); do + sleep 2 + RUN_ID=$(gh run list --repo openmfp/portal-ui-lib --workflow release.yml \ + --json databaseId,createdAt --jq "[.[] | select(.createdAt >= \"$BEFORE\")] | .[0].databaseId") + if [ -n "$RUN_ID" ]; then break; fi + done + + if [ -z "$RUN_ID" ]; then + echo "::error::Failed to find triggered run for portal-ui-lib" + exit 1 + fi + + echo "Watching run $RUN_ID" + gh run watch "$RUN_ID" --repo openmfp/portal-ui-lib --exit-status env: VERSION: ${{ inputs.version }} GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }} - name: Release portal-server-lib - run: gh workflow run release.yml --repo openmfp/portal-server-lib --field version="$VERSION" + run: | + BEFORE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") + gh workflow run release.yml --repo openmfp/portal-server-lib --field version="$VERSION" + + RUN_ID="" + for i in $(seq 1 30); do + sleep 2 + RUN_ID=$(gh run list --repo openmfp/portal-server-lib --workflow release.yml \ + --json databaseId,createdAt --jq "[.[] | select(.createdAt >= \"$BEFORE\")] | .[0].databaseId") + if [ -n "$RUN_ID" ]; then break; fi + done + + if [ -z "$RUN_ID" ]; then + echo "::error::Failed to find triggered run for portal-server-lib" + exit 1 + fi + + echo "Watching run $RUN_ID" + gh run watch "$RUN_ID" --repo openmfp/portal-server-lib --exit-status env: VERSION: ${{ inputs.version }} GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}