mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-25 09:00:22 +00:00
350fb0e3db
This was missing 2 of the recently added checks. Also added a reminder in the CI linter to update the Meta (commit hook) version.
64 lines
2.7 KiB
YAML
64 lines
2.7 KiB
YAML
name: Commit linter
|
|
|
|
on: [pull_request_target]
|
|
|
|
# Make sure to update Meta/lint-commit.sh to match this script when adding new checks!
|
|
|
|
jobs:
|
|
lint_commits:
|
|
runs-on: ubuntu-20.04
|
|
if: always() && github.repository == 'SerenityOS/serenity'
|
|
|
|
steps:
|
|
- name: Get PR Commits
|
|
id: 'get-pr-commits'
|
|
uses: IdanHo/get-pr-commits@d94b66d146a31ef91e54a2597dee4fb523157232
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Check linebreaks
|
|
if: ${{ success() || failure() }}
|
|
uses: tim-actions/commit-message-checker-with-regex@v0.3.1
|
|
with:
|
|
commits: ${{ steps.get-pr-commits.outputs.commits }}
|
|
pattern: '^[^\r]*$'
|
|
error: 'Commit message contains CRLF line breaks (only unix-style LF linebreaks are allowed)'
|
|
|
|
- name: Check Line Length
|
|
uses: tim-actions/commit-message-checker-with-regex@v0.3.1
|
|
with:
|
|
commits: ${{ steps.get-pr-commits.outputs.commits }}
|
|
pattern: '^.{0,72}(?:\n(?:(.{0,72})|(.*?([a-z]+:\/\/)?(([a-zA-Z0-9_]|-)+\.)+[a-z]{2,}(:\d+)?([a-zA-Z_0-9@:%\+.~\?&/=]|-)+).*?))*$'
|
|
error: 'Commit message lines are too long (maximum allowed is 72 characters, except for URLs)'
|
|
|
|
- name: Check subsystem
|
|
if: ${{ success() || failure() }}
|
|
uses: tim-actions/commit-message-checker-with-regex@v0.3.1
|
|
with:
|
|
commits: ${{ steps.get-pr-commits.outputs.commits }}
|
|
pattern: '^\S.*?\S: .+'
|
|
error: 'Missing category in commit title (if this is a fix up of a previous commit, it should be squashed)'
|
|
|
|
- name: Check first word of title for capitalization
|
|
if: ${{ success() || failure() }}
|
|
uses: tim-actions/commit-message-checker-with-regex@v0.3.1
|
|
with:
|
|
commits: ${{ steps.get-pr-commits.outputs.commits }}
|
|
pattern: '^\S.*?: [A-Z0-9]'
|
|
error: 'First word of commit after the subsystem is not capitalized'
|
|
|
|
- name: Check title
|
|
if: ${{ success() || failure() }}
|
|
uses: tim-actions/commit-message-checker-with-regex@v0.3.1
|
|
with:
|
|
commits: ${{ steps.get-pr-commits.outputs.commits }}
|
|
pattern: '^.+[^.\n](\n.*)*$'
|
|
error: 'Commit title ends in a period'
|
|
|
|
- name: Comment on PR
|
|
if: ${{ failure() && !github.event.pull_request.draft }}
|
|
uses: IdanHo/comment-on-pr@5f51df338210754f519f721f8320d8f72525a4d0
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.BUGGIEBOT }}
|
|
with:
|
|
msg: "One or more of the commits in this PR do not match the [code submission policy](https://github.com/SerenityOS/serenity/blob/master/CONTRIBUTING.md#code-submission-policy), please check the `lint_commits` CI job for more details."
|