CI: fix crash when no diff

This commit is contained in:
2026-07-21 00:46:12 +02:00
parent 20ad4bb594
commit fb5cd58254
+43 -28
View File
@@ -49,20 +49,30 @@ jobs:
exit 1 exit 1
;; ;;
esac esac
- name: Check for changes
run: |
git fetch origin main "${{ steps.branch.outputs.source }}"
HAS_CHANGES=true
if git diff --quiet \
"origin/main...origin/${{ steps.branch.outputs.source }}"; then
HAS_CHANGES=false
fi
- name: Check for existing PR - name: Check for existing PR
id: existing id: existing
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: | run: |
PR_NUMBER=$(gh pr list \ if $HAS_CHANGES; then
--base main \ PR_NUMBER=$(gh pr list \
--head "${{ steps.branch.outputs.source }}" \ --base main \
--state open \ --head "${{ steps.branch.outputs.source }}" \
--json number \ --state open \
--jq '.[0].number // empty') --json number \
--jq '.[0].number // empty')
echo "number=$PR_NUMBER" >> "$GITHUB_OUTPUT" echo "number=$PR_NUMBER" >> "$GITHUB_OUTPUT"
fi
- name: Create PR - name: Create PR
id: create id: create
@@ -70,28 +80,31 @@ jobs:
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: | run: |
gh pr create \ if $HAS_CHANGES; then
--base main \ gh pr create \
--head "${{ steps.branch.outputs.source }}" \ --base main \
--title "Weekly sync: ${{ steps.branch.outputs.source }} → main" \ --head "${{ steps.branch.outputs.source }}" \
--body "This pull request was created automatically by GitHub Actions." --title "Weekly sync: ${{ steps.branch.outputs.source }} → main" \
--body "This pull request was created automatically by GitHub Actions."
PR_NUMBER=$(gh pr list \ PR_NUMBER=$(gh pr list \
--base main \ --base main \
--head "${{ steps.branch.outputs.source }}" \ --head "${{ steps.branch.outputs.source }}" \
--state open \ --state open \
--json number \ --json number \
--jq '.[0].number') --jq '.[0].number')
echo "number=$PR_NUMBER" >> "$GITHUB_OUTPUT"
echo "number=$PR_NUMBER" >> "$GITHUB_OUTPUT"
fi
- name: Determine PR number - name: Determine PR number
id: pr id: pr
run: | run: |
if [ -n "${{ steps.existing.outputs.number }}" ]; then if $HAS_CHANGES; then
echo "number=${{ steps.existing.outputs.number }}" >> "$GITHUB_OUTPUT" if [ -n "${{ steps.existing.outputs.number }}" ]; then
else echo "number=${{ steps.existing.outputs.number }}" >> "$GITHUB_OUTPUT"
echo "number=${{ steps.create.outputs.number }}" >> "$GITHUB_OUTPUT" else
echo "number=${{ steps.create.outputs.number }}" >> "$GITHUB_OUTPUT"
fi
fi fi
- name: Enable auto-merge - name: Enable auto-merge
@@ -99,7 +112,9 @@ jobs:
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: | run: |
gh pr merge \ if $HAS_CHANGES; then
"${{ steps.pr.outputs.number }}" \ gh pr merge \
--auto \ "${{ steps.pr.outputs.number }}" \
--merge --auto \
--merge
fi