Files
scst/.github/workflows/checkpatch_pull.yml
Gleb Chesnokov 1376ad014d github: Add a GitHub action to run checkpatch upon pull request
Add a new GitHub Actions workflow, checkpatch_pull.yml, which runs
checkpatch.pl for each commit in a pull request targeting the master
branch.

This change ensures proper checkpatch validation for both push
and pull request events.
2023-04-11 11:52:35 +03:00

48 lines
1.4 KiB
YAML

name: Checkpatch upon pull
on:
pull_request:
branches:
- master
jobs:
checkpatch:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
ref: ${{github.event.pull_request.head.sha}}
fetch-depth: 0
- name: Download checkpatch.pl
run: |
curl https://raw.githubusercontent.com/torvalds/linux/master/scripts/checkpatch.pl -o checkpatch.pl
curl https://raw.githubusercontent.com/torvalds/linux/master/scripts/spelling.txt -o spelling.txt
curl https://raw.githubusercontent.com/torvalds/linux/master/scripts/const_structs.checkpatch -o const_structs.checkpatch
chmod +x checkpatch.pl
- name: Run checkpatch.pl
run: |
ignore=(
MISSING_SIGN_OFF
EMAIL_SUBJECT
UNKNOWN_COMMIT_ID
NO_AUTHOR_SIGN_OFF
FILE_PATH_CHANGES
SPDX_LICENSE_TAG
LINUX_VERSION_CODE
CONSTANT_COMPARISON
SPACING
)
ignore_str=${ignore[*]}
base_commit=${{github.event.pull_request.base.sha}}
commits=$(git log --pretty=format:"%h" $base_commit..HEAD)
for commit in $commits; do
echo "Running checkpatch.pl for commit $commit"
git format-patch -1 --stdout $commit | ./checkpatch.pl --no-tree --show-types --ignore="${ignore_str// /,}" -
echo
done