diff options
-rw-r--r-- | .github/workflows/cmake.yml | 44 | ||||
-rw-r--r-- | .github/workflows/lintcommits.yml | 54 |
2 files changed, 55 insertions, 43 deletions
diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index b52a24378b..9bc0d674f4 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -245,50 +245,8 @@ jobs: UBSAN_OPTIONS: "halt_on_error=1" if: ${{ matrix.with-fuzzers == 'NO_FUZZ' }} - lint_commits: - runs-on: ubuntu-20.04 - if: always() && github.event_name == 'pull_request' - - steps: - - name: Get PR Commits - id: 'get-pr-commits' - uses: tim-actions/get-pr-commits@55b867b9b28954e6f5c1a0fe2f729dc926c306d0 - 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})*$' - error: 'Commit message lines are too long (maximum allowed is 72 characters)' - - - 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.*?: .+' - error: 'Missing category in commit title (if this is a fix up of a previous commit, it should be squashed)' - - - 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' - notify_irc: - needs: [build_and_test_serenity, build_and_test_lagom, lint_commits] + needs: [build_and_test_serenity, build_and_test_lagom] runs-on: ubuntu-20.04 if: always() && github.repository == 'SerenityOS/serenity' && (github.event_name == 'pull_request' || (github.event_name == 'push' && github.ref == 'refs/heads/master')) diff --git a/.github/workflows/lintcommits.yml b/.github/workflows/lintcommits.yml new file mode 100644 index 0000000000..9e00ea67ae --- /dev/null +++ b/.github/workflows/lintcommits.yml @@ -0,0 +1,54 @@ +name: Commit linter + +on: [pull_request_target] + +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})*$' + error: 'Commit message lines are too long (maximum allowed is 72 characters)' + + - 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.*?: .+' + error: 'Missing category in commit title (if this is a fix up of a previous commit, it should be squashed)' + + - 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() }} + uses: unsplash/comment-on-pr@85a56be792d927ac4bfa2f4326607d38e80e6e60 + 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." |