Skip to content

Commit 3a5e762

Browse files
committed
Update wait for PR test run before merge
1 parent 2cc908d commit 3a5e762

File tree

1 file changed

+15
-22
lines changed

1 file changed

+15
-22
lines changed

.github/workflows/_conda-forge-package-release.yml

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -59,27 +59,6 @@ jobs:
5959
done
6060
echo "Timed out waiting for ${PACKAGE}==${VERSION}." && exit 1
6161
62-
- name: Rerun failed checks on ${{ inputs.package }} feedstock PR
63-
run: |
64-
REPO="${{ inputs.feedstock }}"
65-
SEARCH="${{ inputs.pr_search }}"
66-
STATE=$(gh pr list --repo "$REPO" --state all \
67-
--search "$SEARCH" --json state -q '.[0].state // "NOT_FOUND"')
68-
echo "PR state: ${STATE}"
69-
if [ "$STATE" = "MERGED" ]; then
70-
echo "Already merged, skipping rerun."; exit 0
71-
fi
72-
PR=$(gh pr list --repo "$REPO" --state open \
73-
--search "$SEARCH" --json number -q '.[0].number')
74-
[ -z "$PR" ] && echo "No open PR found." && exit 1
75-
echo "PR #${PR}"
76-
BRANCH=$(gh pr view "$PR" --repo "$REPO" --json headRefName -q .headRefName)
77-
RUN_ID=$(gh run list --repo "$REPO" --branch "$BRANCH" \
78-
--json databaseId,conclusion -q \
79-
'[.[] | select(.conclusion=="failure")][0].databaseId')
80-
[ -n "$RUN_ID" ] && gh run rerun "$RUN_ID" --repo "$REPO" --failed \
81-
|| echo "No failed runs."
82-
8362
- name: Merge and wait for ${{ inputs.package }} feedstock PR
8463
run: |
8564
REPO="${{ inputs.feedstock }}"
@@ -92,7 +71,21 @@ jobs:
9271
PR=$(gh pr list --repo "$REPO" --state open \
9372
--search "$SEARCH" --json number -q '.[0].number')
9473
if [ -n "$PR" ]; then
95-
gh pr merge "$PR" --repo "$REPO" --merge --auto 2>/dev/null || true
74+
CI_STATUS=$(gh pr view "$PR" --repo "$REPO" \
75+
--json statusCheckRollup -q \
76+
'[.statusCheckRollup[].conclusion] | if length == 0 then "pending" elif all(. == "SUCCESS") then "success" else "failure" end')
77+
echo "CI status: ${CI_STATUS}"
78+
if [ "$CI_STATUS" = "success" ]; then
79+
echo "CI passed, merging PR #${PR}..."
80+
gh pr merge "$PR" --repo "$REPO" --merge 2>/dev/null || true
81+
elif [ "$CI_STATUS" = "failure" ]; then
82+
echo "CI failed, retriggering..."
83+
BRANCH=$(gh pr view "$PR" --repo "$REPO" --json headRefName -q .headRefName)
84+
RUN_ID=$(gh run list --repo "$REPO" --branch "$BRANCH" \
85+
--json databaseId,conclusion -q \
86+
'[.[] | select(.conclusion=="failure")][0].databaseId')
87+
[ -n "$RUN_ID" ] && gh run rerun "$RUN_ID" --repo "$REPO" --failed || true
88+
fi
9689
fi
9790
sleep ${{ inputs.poll_interval }}
9891
done

0 commit comments

Comments
 (0)