From 3cc920f22272d24865fa0cfb4f6cdcbadeafd27b Mon Sep 17 00:00:00 2001 From: Jason Naylor Date: Wed, 27 Mar 2024 11:57:04 -0700 Subject: [PATCH] This is an error. followed by another and then followed by yet another error because this line is far too long for reading --- .github/workflows/CommitMessage.yml | 43 +++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/CommitMessage.yml diff --git a/.github/workflows/CommitMessage.yml b/.github/workflows/CommitMessage.yml new file mode 100644 index 0000000000..083ee6ecb5 --- /dev/null +++ b/.github/workflows/CommitMessage.yml @@ -0,0 +1,43 @@ +name: Commit messages check +on: + pull_request: + workflow_call: + +jobs: + gitlint: + name: Check commit messages + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Install dependencies + run: | + pip install --upgrade gitlint + - name: Lint git commit messages + shell: bash + # run the linter and tee the output to a file, this will make the check fail but allow us to use the results in summary + run: gitlint --commits origin/$GITHUB_BASE_REF.. 2>&1 | tee check_results.log + - name: Propegate Error Summary + if: always() + shell: bash + # put the output of the commit message linting into the summary for the job and in an environment variable + run: | + # Change the commit part of the log into a markdown link to the commit + sed -i "s/commit \([0-9a-f]\{7,40\}\)/[commit \1](https:\/\/github.com\/${{ github.repository }}\/commits\/\1)/g" check_results.log + cat check_results.log >> "$GITHUB_STEP_SUMMARY" + echo "check_results<<###LINT_DELIMITER###" >> "$GITHUB_ENV" + echo "$(cat check_results.log)" >> "$GITHUB_ENV" + echo "###LINT_DELIMITER###" >> "$GITHUB_ENV" + # add a comment on the PR if the commit message linting failed + - name: Comment on PR + if: failure() + uses: marocchino/sticky-pull-request-comment@v2 + with: + header: Commit Comment + message: | + ``` + ⚠️ Commit Message Format Issues ⚠️ + ${{ env.check_results }} + ``` \ No newline at end of file