diff --git a/.github/workflows/commit-validation-pr.yml b/.github/workflows/commit-validation-pr.yml new file mode 100644 index 000000000000..80311326cc18 --- /dev/null +++ b/.github/workflows/commit-validation-pr.yml @@ -0,0 +1,25 @@ +name: commit-validation-pr +on: [pull_request] + +permissions: + contents: read + +jobs: + check-commit-msg-length: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Check commit message length + run: | + git log ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }} | ( + longlines=0 + while IFS='' read -r line; do + if [ "${#line}" -gt 78 ]; then + echo "Overlong line: ${line}" >&2 + longlines=$(( longlines + 1 )) + fi + done + [ "${longlines}" -eq 0 ] + ) diff --git a/.github/workflows/commit-validation.yml b/.github/workflows/commit-validation.yml index 252e7bfdd865..46402f8630bd 100644 --- a/.github/workflows/commit-validation.yml +++ b/.github/workflows/commit-validation.yml @@ -1,5 +1,5 @@ name: commit-validation -on: [ push, pull_request ] +on: [ push ] permissions: contents: read @@ -16,8 +16,7 @@ jobs: result-encoding: json script: | var longlines = 0; - const pr = ${{ toJSON(github.event.pull_request) }}; - const commits = (pr && pr.commits) || ${{ toJSON(github.event.commits) }}; + const commits = ${{ toJSON(github.event.commits) }}; for (const commit of commits) { for (const line of commit.message.split('\n')) { if (line.length > 78) {