Connect my checkstyle9.pl script to a action.

Connect the checkstyle9.pl script to a github action. This will provide
feedback to people submitting changes when the style is grossly wrong. And
can provide other automated feedback for the commit message in the future.
It already catches the github noreply author.

It pulls the full repo to do this. Optimizations welcome. After messing
with that for a few hours, I decided to punt and commit the slow, working
version and let someone else optimize from here.

Sponsored by:		Netflix
This commit is contained in:
Warner Losh 2024-01-06 08:20:17 -07:00
parent e179d9739b
commit dbee52c9d6

40
.github/workflows/style.yml vendored Normal file
View File

@ -0,0 +1,40 @@
name: Style Checker
# Runs my simple style(9) checker on any pushes or pull requests. It could be
# optimized by fetching the pull request head branch back to main revisions and
# running on that. That would reduce the run time from 3-4 minutes down to 30-40
# seconds. Getting the right series of clone + fetches to get that iteratively
# is proving elusive, so optimizations welcome.
on:
push:
branches: [ main, 'stable/13', 'stable/14' ]
pull_request: # maybe pull_request_target
branches: [ main ]
types: [ opened, reopened, edited ]
permissions:
contents: read
jobs:
build:
name: Style Checker
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- name: Install packages
run: |
sudo apt-get update --quiet || true
sudo apt-get -yq --no-install-suggests --no-install-recommends install perl
- name: Run checker
run: |
sha=$(git merge-base ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }})
tools/build/checkstyle9.pl ${sha}..${{ github.event.pull_request.head.sha }}