Improve fixup commits script

This script is failing currently on
https://github.com/jesseduffield/lazygit/pull/3631 because that fork's
master branch is 300 commits behind our own, but the feature branch is
up to date.

The thing is, we don't actually need to involve the master branch. All
we care about is the feature branch's own commits, so this commit simply
fetches those commits and checks them.
This commit is contained in:
Jesse Duffield 2024-08-24 09:27:02 +10:00
parent 7679b109cb
commit addfa2f961
2 changed files with 5 additions and 20 deletions

View file

@ -225,8 +225,8 @@ jobs:
if: github.ref != 'refs/heads/master' if: github.ref != 'refs/heads/master'
steps: steps:
# See https://github.com/actions/checkout/issues/552#issuecomment-1167086216 # See https://github.com/actions/checkout/issues/552#issuecomment-1167086216
- name: "PR commits + 1" - name: "PR commits"
run: echo "PR_FETCH_DEPTH=$(( ${{ github.event.pull_request.commits }} + 1 ))" >> "${GITHUB_ENV}" run: echo "PR_FETCH_DEPTH=$(( ${{ github.event.pull_request.commits }} ))" >> "${GITHUB_ENV}"
- name: "Checkout PR branch and all PR commits" - name: "Checkout PR branch and all PR commits"
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -235,10 +235,6 @@ jobs:
ref: ${{ github.event.pull_request.head.ref }} ref: ${{ github.event.pull_request.head.ref }}
fetch-depth: ${{ env.PR_FETCH_DEPTH }} fetch-depth: ${{ env.PR_FETCH_DEPTH }}
- name: "Fetch the other branch with enough history for a common merge-base commit"
run: |
git fetch origin ${{ github.event.pull_request.base.ref }}
- name: Check for fixups - name: Check for fixups
run: | run: |
./scripts/check_for_fixups.sh ${{ github.event.pull_request.base.ref }} ./scripts/check_for_fixups.sh ${{ github.event.pull_request.base.ref }}

View file

@ -1,19 +1,8 @@
#!/bin/sh #!/bin/sh
base_ref=$1 # We will have only done a shallow clone, so the git log will consist only of
# commits on the current PR
# Determine the base commit commits=$(git log --grep='^fixup!' --grep='^squash!' --grep='^amend!' --grep='^[^\n]*WIP' --grep='^[^\n]*DROPME' --format="%h %s")
base_commit=$(git merge-base HEAD origin/"$base_ref")
# Check if base_commit is set correctly
if [ -z "$base_commit" ]; then
echo "Failed to determine base commit."
exit 1
fi
echo "Base commit: $base_commit"
# Get commits with "fixup!" in the message from base_commit to HEAD
commits=$(git log -i -E --grep '^fixup!' --grep '^squash!' --grep '^amend!' --grep '^[^\n]*WIP' --grep '^[^\n]*DROPME' --format="%h %s" "$base_commit..HEAD")
if [ -z "$commits" ]; then if [ -z "$commits" ]; then
echo "No fixup commits found." echo "No fixup commits found."