From 602280988812f10f0bba25f9dc86299b3e5bd950 Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Wed, 10 Dec 2025 23:41:13 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=B7(ci)=20add=20CI=20check=20for=20CHA?= =?UTF-8?q?NGELOG=20updates=20in=20pull=20requests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implement automated CI validation ensuring pull request authors update CHANGELOG with their changes, preventing undocumented changes from merging and maintaining accurate release documentation for users and maintainers. --- .github/workflows/meet.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/workflows/meet.yml b/.github/workflows/meet.yml index 8c243eb9..d0e7eec1 100644 --- a/.github/workflows/meet.yml +++ b/.github/workflows/meet.yml @@ -34,6 +34,32 @@ jobs: if: always() run: ~/.local/bin/gitlint --commits origin/${{ github.event.pull_request.base.ref }}..HEAD + check-changelog: + runs-on: ubuntu-latest + if: | + contains(github.event.pull_request.labels.*.name, 'noChangeLog') == false && + github.event_name == 'pull_request' + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 50 + - name: Check that the CHANGELOG has been modified in the current branch + run: git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.event.after }} | grep 'CHANGELOG.md' + + lint-changelog: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Check CHANGELOG max line length + run: | + max_line_length=$(cat CHANGELOG.md | grep -Ev "^\[.*\]: https://github.com" | wc -L) + if [ $max_line_length -ge 80 ]; then + echo "ERROR: CHANGELOG has lines longer than 80 characters." + exit 1 + fi + build-mails: runs-on: ubuntu-latest defaults: