diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index 56541e8a..72a72ac6 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -143,3 +143,32 @@ jobs: echo "CURRENT =${CURRENT}" echo "EXPECTED=${EXPECTED}" test "${CURRENT}" = "${EXPECTED}" + + changelog: + + name: Changelog + runs-on: ubuntu-latest + timeout-minutes: 5 + + if: >- + github.event_name == 'pull_request' && + !contains(github.event.head_commit.message, 'nochangelog') && + !contains(github.event.head_commit.message, 'no-changelog') && + !contains(github.event.head_commit.message, 'no changelog') && + !contains(github.event.pull_request.labels.*.name, 'no-changelog') + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Check for CHANGELOG entry + env: + TARGET: ${{ github.event.pull_request.base.ref }} + run: | + FILES_CHANGED=$(git diff --name-only origin/$TARGET...HEAD | grep -E 'CHANGELOG\.md' -c) + if [ "$FILES_CHANGED" != "1" ]; then + echo "CHANGELOG.md was not updated"; + exit 1; + fi;