fix(ci): wait for dependabot mergeability
This commit is contained in:
parent
066e916c05
commit
8611b53dfa
21
.github/workflows/dependabot-auto-merge.yml
vendored
21
.github/workflows/dependabot-auto-merge.yml
vendored
@ -121,20 +121,29 @@ jobs:
|
||||
node scripts/update-readme-summary.mjs "${baseline_args[@]}"
|
||||
|
||||
- name: Commit refreshed reports
|
||||
id: refreshed-reports
|
||||
run: |
|
||||
if ! git diff --quiet README.md reports/; then
|
||||
git add README.md reports/
|
||||
git commit -m "chore(reports): refresh dependabot compatibility reports"
|
||||
git push
|
||||
echo "pushed=true" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "pushed=false" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
- name: Merge Dependabot PR
|
||||
if: ${{ steps.refreshed-reports.outputs.pushed != 'true' }}
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||
run: gh pr merge "${PR_NUMBER}" --squash --delete-branch
|
||||
shell: bash
|
||||
run: |
|
||||
set -euo pipefail
|
||||
for attempt in {1..18}; do
|
||||
state="$(gh pr view "${PR_NUMBER}" --json mergeable,mergeStateStatus --jq '[.mergeable, .mergeStateStatus] | @tsv')"
|
||||
read -r mergeable merge_state <<< "${state}"
|
||||
if [ "${mergeable}" = "MERGEABLE" ]; then
|
||||
gh pr merge "${PR_NUMBER}" --squash --delete-branch
|
||||
exit 0
|
||||
fi
|
||||
echo "PR ${PR_NUMBER} mergeable=${mergeable} mergeStateStatus=${merge_state}; waiting for GitHub mergeability (${attempt}/18)"
|
||||
sleep 10
|
||||
done
|
||||
gh pr view "${PR_NUMBER}" --json url,mergeable,mergeStateStatus,statusCheckRollup
|
||||
exit 1
|
||||
|
||||
@ -174,9 +174,8 @@ test("dependabot auto-merge refreshes reports after fixture pin updates", async
|
||||
assert.match(workflow, /--baseline-data \.crabpot\/baseline\/main-dashboard-data\.json/);
|
||||
assert.match(workflow, /node scripts\/update-readme-summary\.mjs "\$\{baseline_args\[@\]\}"/);
|
||||
assert.match(workflow, /git add README\.md reports\//);
|
||||
assert.match(workflow, /id: refreshed-reports/);
|
||||
assert.match(workflow, /echo "pushed=true" >> "\$GITHUB_OUTPUT"/);
|
||||
assert.match(workflow, /steps\.refreshed-reports\.outputs\.pushed != 'true'/);
|
||||
assert.match(workflow, /gh pr view "\$\{PR_NUMBER\}" --json mergeable,mergeStateStatus/);
|
||||
assert.match(workflow, /waiting for GitHub mergeability/);
|
||||
assert.match(workflow, /gh pr merge "\$\{PR_NUMBER\}" --squash --delete-branch/);
|
||||
assert.doesNotMatch(workflow, /gh pr merge "\$\{PR_NUMBER\}" --squash --auto/);
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user