Skip to content

Commit

Permalink
chore(ci): lint for bang commits (fixup, squash, drop, edit)
Browse files Browse the repository at this point in the history
This makes sure we don't accidentally merge commits which should be squashed up
or rebased first.
  • Loading branch information
Restioson committed Oct 28, 2024
1 parent a9d95a4 commit 05dfeec
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,3 +117,24 @@ jobs:
with:
name: django-logs
path: app/debug.log
lint-commits:
runs-on: ubuntu-latest
if: github.event.ref != 'refs/heads/main'

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get all commits on current main
run: git fetch origin main
- name: Log all commits we will analyse
run: git log --pretty=format:%s origin/main..HEAD

# - We use -v here, which inverts the match, because we want to output an exit status of 1 when a match _is_
# found (usually 0 is for a match)
# - We use a -z here, which makes \0 be the line separator, because if feeding multiline text into grep, it will
# exit with a status of 0 regardless of whether there is a match (
- name: Disallow bang commits
run: |
git log --pretty=format:%s origin/main..HEAD | grep "fixup!|squash!|drop!|edit!"
if [ $? -eq 0 ]; then echo "Found bang commit (or error) - rebase required before merge"; exit 1; fi

0 comments on commit 05dfeec

Please sign in to comment.