@@ -40,19 +40,63 @@ jobs:
4040 GH_TOKEN : ${{ secrets.MASTERPOINT_TEAM_PAT }}
4141 PR_NUMBER : ${{ steps.trunk-upgrade.outputs.pull-request-number }}
4242 run : |
43- echo "Waiting for required status checks to pass on PR #$PR_NUMBER..."
43+ echo "Waiting for status checks to pass on PR #$PR_NUMBER..."
44+
45+ # Wait a bit for checks to start
46+ echo "Waiting 30 seconds for checks to initialize..."
47+ sleep 30
48+
49+ # Try to get all checks first to see if any exist
50+ ALL_CHECKS_JSON=$(gh pr checks "$PR_NUMBER" --json state,bucket || echo "[]")
51+ echo "All checks: $ALL_CHECKS_JSON"
52+
53+ # Get required checks
54+ REQUIRED_CHECKS_JSON=$(gh pr checks "$PR_NUMBER" --required --json state,bucket || echo "[]")
55+ echo "Required checks: $REQUIRED_CHECKS_JSON"
56+
57+ # Check if we have any required checks
58+ REQUIRED_CHECKS_COUNT=$(echo "$REQUIRED_CHECKS_JSON" | jq '. | length')
59+ ALL_CHECKS_COUNT=$(echo "$ALL_CHECKS_JSON" | jq '. | length')
60+
61+ if [ "$REQUIRED_CHECKS_COUNT" -eq 0 ] && [ "$ALL_CHECKS_COUNT" -eq 0 ]; then
62+ echo "No status checks found. This might be expected if no checks are configured."
63+ echo "Proceeding with auto-approval and merge..."
64+
65+ # Auto-approve the PR
66+ gh pr review "$PR_NUMBER" --approve --body "Auto-approved by trunk upgrade workflow (no status checks configured)"
67+
68+ # Merge the PR
69+ gh pr merge "$PR_NUMBER" --squash --delete-branch --admin
70+ exit 0
71+ fi
72+
73+ # If we have required checks, wait for them. Otherwise, wait for all checks.
74+ if [ "$REQUIRED_CHECKS_COUNT" -gt 0 ]; then
75+ echo "Waiting for $REQUIRED_CHECKS_COUNT required status checks..."
76+ CHECKS_TO_MONITOR="required"
77+ else
78+ echo "No required checks configured. Waiting for all $ALL_CHECKS_COUNT status checks..."
79+ CHECKS_TO_MONITOR="all"
80+ fi
81+
82+ # Wait for checks to complete
4483 while true; do
45- CHECKS_JSON=$(gh pr checks "$PR_NUMBER" --required --json state,bucket)
84+ if [ "$CHECKS_TO_MONITOR" = "required" ]; then
85+ CHECKS_JSON=$(gh pr checks "$PR_NUMBER" --required --json state,bucket)
86+ else
87+ CHECKS_JSON=$(gh pr checks "$PR_NUMBER" --json state,bucket)
88+ fi
89+
4690 echo "Current checks status: $CHECKS_JSON"
4791
4892 if echo "$CHECKS_JSON" | jq -e '.[] | select(.bucket=="fail")' > /dev/null; then
49- echo "One or more required checks have failed. Exiting..."
93+ echo "One or more checks have failed. Exiting..."
5094 exit 1
5195 fi
5296
5397 FAILED_OR_PENDING_CHECKS=$(echo "$CHECKS_JSON" | jq '[.[] | select(.state!="SUCCESS" or .bucket!="pass")] | length')
5498 if [ "$FAILED_OR_PENDING_CHECKS" -eq 0 ]; then
55- echo "All required checks passed. Auto-approving and merging PR https://github.com/${{ github.repository }}/pull/$PR_NUMBER..."
99+ echo "All checks passed. Auto-approving and merging PR https://github.com/${{ github.repository }}/pull/$PR_NUMBER..."
56100
57101 # Auto-approve the PR
58102 gh pr review "$PR_NUMBER" --approve --body "Auto-approved by trunk upgrade workflow"
61105 gh pr merge "$PR_NUMBER" --squash --delete-branch --admin
62106 break
63107 else
64- echo "Some required checks are still running or pending. Retrying in 30s..."
108+ echo "Some checks are still running or pending. Retrying in 30s..."
65109 sleep 30
66110 fi
67111 done
0 commit comments