From 8ad72c6f6c0fd7084a4330b9fb0addc7e872fb23 Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Patry Date: Wed, 20 Nov 2024 15:57:47 +0100 Subject: [PATCH] Add a new CI step to detect raw issue references Issue references shall now be used with the Rust GCC prefix in order to avoid mixing gccrs issues and GCC bugzilla PRs. ChangeLog: * .github/workflows/commit-format.yml: Add a new step to detect issue references in commit messages. Signed-off-by: Pierre-Emmanuel Patry --- .github/workflows/commit-format.yml | 30 +++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/.github/workflows/commit-format.yml b/.github/workflows/commit-format.yml index 62914c119d76..0f847bd2c8ac 100644 --- a/.github/workflows/commit-format.yml +++ b/.github/workflows/commit-format.yml @@ -108,3 +108,33 @@ jobs: done < <(git rev-list --reverse "$rev_list" ) exit $retval; + + check-issue-reference: + runs-on: ubuntu-latest + continue-on-error: true # We do not want to block merge if it is a legitimate GCC bugzilla reference. + name: check-issue-reference + + steps: + - uses: actions/checkout@v3 + with: + ref: ${{ github.event.pull_request.head.sha }} + fetch-depth: 0 + + - name: Check for issue number reference in commit messages + run: | + retval=0; + rev_list="origin/${{ github.event.pull_request.base.ref }}..${{ github.event.pull_request.head.sha }}" + for commit in $(git rev-list --reverse "$rev_list"); do + if [ "$(git show "$commit" | grep '#[0-9]*' | grep -v -i 'Rust GCC#[0-9]*' | wc -l)" -ne 0 ]; then + echo "$commit: KO" + retval=1 + else + echo "$commit: OK" + fi + done; + if [ "$retval" -ne 0 ]; then + echo "Some raw issue references were found (eg. #4242)." + echo "You shall rewrite the faulty commit message with this format: Rust GCC#4242" + echo "You may ignore this CI step if it represents a valid GCC bugzilla reference instead." + fi + exit $retval;