diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d7e32954..bcb46ffe 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -243,3 +243,17 @@ jobs: - name: run check run: make itest + + ######################## + # check PR updates release notes + ######################## + release-notes-check: + name: check release notes updated + runs-on: ubuntu-latest + if: '!contains(github.event.pull_request.labels.*.name, ''no-changelog'')' + steps: + - name: git checkout + uses: actions/checkout@v3 + + - name: release notes check + run: scripts/check-release-notes.sh \ No newline at end of file diff --git a/scripts/check-release-notes.sh b/scripts/check-release-notes.sh new file mode 100755 index 00000000..a686cce1 --- /dev/null +++ b/scripts/check-release-notes.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +set -e + +# Extract the PR number which is stored in the $GITHUB_REF env variable. The +# format of the string stored in the variable is: refs/pull/:PRNUMBER/merge. +PR_NUMBER=$(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }') + +# If this is a PR being merged into the main repo, then the PR number will +# actually be "master" here, so we'll ignore this case, and assume that in +# order for it to be merged it had to pass the check in its base branch. If +# we're trying to merge this with the Merge Queue, then the PR number will be +# "gh-readonly-queue" instead. +if [[ $PR_NUMBER == "master" ]] || [[ $PR_NUMBER == "gh-readonly-queue" ]]; then + exit 0 +fi + +# Ensure that the PR number at least shows up in the release notes folder under +# one of the contained milestones. +if ! grep -r -q "lightninglabs/lightning-terminal/pull/$PR_NUMBER" doc/release-notes; then + echo "PR $PR_NUMBER didn't update release notes" + exit 1 +fi