From 367ad2f6c9a1f73449bd3f77be248da409cf4096 Mon Sep 17 00:00:00 2001 From: cyqsimon <28627918+cyqsimon@users.noreply.github.com> Date: Fri, 3 Nov 2023 11:07:19 +0800 Subject: [PATCH 1/3] Added changelog item check Fetch the base branch and diff correctly - See: https://github.com/actions/checkout/issues/160 Improve organisation Add some echo for easier debugging Fix bad variable syntax Clarify the double-print in the success case --- .../workflows/require-changelog-for-PRs.yml | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/require-changelog-for-PRs.yml diff --git a/.github/workflows/require-changelog-for-PRs.yml b/.github/workflows/require-changelog-for-PRs.yml new file mode 100644 index 0000000000..0c1c3b6439 --- /dev/null +++ b/.github/workflows/require-changelog-for-PRs.yml @@ -0,0 +1,24 @@ +name: Changelog + +on: + pull_request: + +jobs: + check-changelog: + name: Check for changelog entry + runs-on: ubuntu-latest + env: + PR_SUBMITTER: ${{ github.actor }} + PR_NUMBER: ${{ github.event.number }} + PR_BASE: ${{ github.base_ref }} + steps: + - uses: actions/checkout@v4 + - name: Fetch PR base + run: git fetch --no-tags --prune --depth=1 origin + - name: Search for added line in changelog + run: | + ADDED=$(git diff -U0 "origin/${PR_BASE}" HEAD -- CHANGELOG.md | grep -P '^\+[^\+].+$') + echo "Added lines in CHANGELOG.md:" + echo "$ADDED" + echo "Grepping for PR info:" + grep "#${PR_NUMBER}\\b.*@${PR_SUBMITTER}\\b" <<< "$ADDED" From 9444dbf1575eb52c0fdde326102d4f2fce3dd945 Mon Sep 17 00:00:00 2001 From: cyqsimon <28627918+cyqsimon@users.noreply.github.com> Date: Fri, 3 Nov 2023 11:32:21 +0800 Subject: [PATCH 2/3] Write to changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d63e98a9de..d12cb8fe72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - Upgrade to Rust 2021 edition #2748 (@cyqsimon) - Refactor and cleanup build script #2756 (@cyqsimon) +- Checks changelog has been written to for PRs in CI #2766 (@cyqsimon) ## Syntaxes From b54c88e1365bd1c521302fb6c1e8b730d27d753c Mon Sep 17 00:00:00 2001 From: cyqsimon <28627918+cyqsimon@users.noreply.github.com> Date: Fri, 3 Nov 2023 13:52:13 +0800 Subject: [PATCH 3/3] Don't block dependabot PRs --- .github/workflows/require-changelog-for-PRs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/require-changelog-for-PRs.yml b/.github/workflows/require-changelog-for-PRs.yml index 0c1c3b6439..518fa9d5a1 100644 --- a/.github/workflows/require-changelog-for-PRs.yml +++ b/.github/workflows/require-changelog-for-PRs.yml @@ -7,6 +7,8 @@ jobs: check-changelog: name: Check for changelog entry runs-on: ubuntu-latest + # dependabot PRs are automerged if CI passes; we shouldn't block these + if: github.actor != 'dependabot[bot]' env: PR_SUBMITTER: ${{ github.actor }} PR_NUMBER: ${{ github.event.number }}