|
59 | 59 | done |
60 | 60 | echo "Timed out waiting for ${PACKAGE}==${VERSION}." && exit 1 |
61 | 61 |
|
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 | | -
|
83 | 62 | - name: Merge and wait for ${{ inputs.package }} feedstock PR |
84 | 63 | run: | |
85 | 64 | REPO="${{ inputs.feedstock }}" |
|
92 | 71 | PR=$(gh pr list --repo "$REPO" --state open \ |
93 | 72 | --search "$SEARCH" --json number -q '.[0].number') |
94 | 73 | 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 |
96 | 89 | fi |
97 | 90 | sleep ${{ inputs.poll_interval }} |
98 | 91 | done |
|
0 commit comments