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 1d54ae8
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -117,3 +117,28 @@ 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 (so, -z makes it treat the input as one line)
- name: Disallow fixup commits
run: git log --pretty=format:%s origin/main..HEAD | grep -zv 'fixup!'
- name: Disallow squash commits
run: git log --pretty=format:%s origin/main..HEAD | grep -zv 'squash!'
- name: Disallow edit commits
run: git log --pretty=format:%s origin/main..HEAD | grep -zv 'edit!'
- name: Disallow drop commits
run: git log --pretty=format:%s origin/main..HEAD | grep -zv 'drop!'

0 comments on commit 1d54ae8

Please sign in to comment.