From c93d5e006e4eae4b7ae286825d4889b5e9ffee3a Mon Sep 17 00:00:00 2001 From: Matheus Marchini Date: Wed, 18 Mar 2020 11:00:02 -0700 Subject: [PATCH] build: use Actions to validate commit message Actions interface has a better integration with GitHub, and with Annotations and Problem Matcher we can display all failed checks in a single place, so that users don't have to go through the logs to figure out what's wrong. Since the job on Travis was allowed to fail and is not as easy to read, remove it from our Matrix. The Action will check every commit in the Pull Request, skipping commits with "fixup" or "squash". PR-URL: https://github.com/nodejs/node/pull/32417 Reviewed-By: Colin Ihrig Reviewed-By: Anna Henningsen Reviewed-By: Rich Trott Reviewed-By: Michael Dawson --- .../commit-lint-problem-matcher.json | 13 ++++++++++++ .github/workflows/commit-lint.yml | 21 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 .github/workflows/commit-lint-problem-matcher.json create mode 100644 .github/workflows/commit-lint.yml diff --git a/.github/workflows/commit-lint-problem-matcher.json b/.github/workflows/commit-lint-problem-matcher.json new file mode 100644 index 00000000000000..72dd13b9e0929d --- /dev/null +++ b/.github/workflows/commit-lint-problem-matcher.json @@ -0,0 +1,13 @@ +{ + "problemMatcher": [ + { + "owner": "core-validate-commit", + "pattern": [ + { + "regexp": "^not ok \\d+ (.*)$", + "message": 1 + } + ] + } + ] +} diff --git a/.github/workflows/commit-lint.yml b/.github/workflows/commit-lint.yml new file mode 100644 index 00000000000000..6673f2942da89f --- /dev/null +++ b/.github/workflows/commit-lint.yml @@ -0,0 +1,21 @@ +name: "Commit messages adheres to guidelines at https://goo.gl/p2fr5Q" + +on: [pull_request] + +jobs: + lint-commit-message: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ github.event.pull_request.head.sha }} + # Last 100 commits should be enough for a PR + fetch-depth: 100 + - name: Use Node.js 12 + uses: actions/setup-node@v1 + with: + node-version: 12.x + - name: Validate commit messages + run: | + echo "::add-matcher::.github/workflows/commit-lint-problem-matcher.json" + git log --oneline ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }} | grep -v -e fixup -e squash | awk '{ print $1 }' | xargs npx -q core-validate-commit --no-validate-metadata --tap