Skip to content

New Error Code Framework #2366

New Error Code Framework

New Error Code Framework #2366

Workflow file for this run

name: GNU Commit Format Checker
on:
pull_request:
branches:
- master
- gcc-patch-dev
merge_group:
jobs:
check-commit-changelogs:
runs-on: ubuntu-latest
name: check-changelogs
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: Install Deps
run: |
sudo apt-get update;
sudo apt-get install -y \
python3 \
python3-git
- name: GCC check PR Commits
run: |
if ${{ github.event_name == 'pull_request' }}; then
python3 contrib/gcc-changelog/git_check_commit.py origin/${{ github.event.pull_request.base.ref }}..${{ github.event.pull_request.head.sha }}
fi
check-commit-prefixes:
runs-on: ubuntu-latest
name: check-gccrs-prefix
if: ${{ github.base_ref == 'gcc-patch-dev' }} # master commits don't need the gccrs prefix
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: Check for `gccrs` prefix
run: |
retval=0
for commit in $(git rev-list origin/${{ github.event.pull_request.base.ref }}..${{ github.event.pull_request.head.sha }});
do
echo -n "Checking gccrs prefix for $commit: " >> results
if [[ $(git log -1 --format="%s" $commit) = gccrs:* ]]; then
echo "OK" >> results
else
retval=1
echo "KO" >> results
fi
done
exit $retval
check-commit-signoff:
runs-on: ubuntu-latest
name: check-commit-signoff
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: Check for DCO Sign-Off line/possible FSF Copyright Assignment
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
echo -n "Checking for DCO Sign-Off for commit $commit... ";
if [[ $(git log "$commit" -1 --format="%B" | tail -n 2) = Signed-off-by:* ]]; then
echo "OK";
continue;
fi
author=$(git log -1 --format=%an "$commit");
if [[ "$(( $(git log --author="$author"|wc -l) - $(git log --author="$author" --grep='Signed-off-by'|wc -l )))" -ne 0 ]]; then
echo "OK"
echo "$author probably has FSF Copyright Assignment. Check manually that the lack of DCO Sign-Off is allowed."
else
echo "KO"
retval=1;
fi
done;
## check no Signed-off-by in the middle.
while read -r f; do
echo -n "$f : "
if awk 'BEGIN { in_footer = 0; error = 0;}
{ DEFAULT = 1; }
/^Signed-off-by/ { in_footer = 1; DEFAULT = 0;}
/^Co-authored-by/ { in_footer = 1; DEFAULT = 0;}
/^Reviewed-by/ { in_footer = 1; DEFAULT = 0;}
/^\s*$/ { DEFAULT = 0; }
DEFAULT { if (in_footer == 1) { printf $0 " appears after some Signed-off-by/Co-authored-by line "; error = 1; exit (1);} }';
then
echo OK
else
echo KO
retval=1
fi < <(git log "$f" -1 --format="%B")
done < <(git rev-list --reverse "$rev_list" )
exit $retval;