From c08c6838ba17c7f05fcfec03c0de60f8df2aac72 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Tue, 23 May 2023 09:21:22 -0600 Subject: [PATCH] ci: Add basic pull request checker We check style with my hacky style checker and also make sure the email address of the author doesn't have noreply in it. Right now the style checking is only the last 10 commits, which may include other people's work. Sponsored by: Netflix --- .github/workflows/prereq.yml | 34 ++++++++++++++++++++++++++++++++++ tools/build/check-email.sh | 11 +++++++++++ 2 files changed, 45 insertions(+) create mode 100644 .github/workflows/prereq.yml create mode 100755 tools/build/check-email.sh diff --git a/.github/workflows/prereq.yml b/.github/workflows/prereq.yml new file mode 100644 index 00000000000000..52dee9fc12d462 --- /dev/null +++ b/.github/workflows/prereq.yml @@ -0,0 +1,34 @@ +--- +name: Quick Checker + +on: + push: + branches: [ 'ci-*' ] + pull_request: + branches: [ 'main' ] + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + strategy: + fail-fast: false + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 500 + - name: Pull pain + run: git fetch --no-tags --no-recurse-submodules --depth=500 origin main + - name: Environment + run: | + echo $GITHUB_REF_NAME + git rev-list -1 $GITHUB_REF_NAME + git rev-list -1 origin/main + - name: Recent enough main? + run: git merge-base origin/main $GITHUB_REF_NAME + - name: Check Email + run: sh ./tools/build/check-email.sh origin/main..$GITHUB_REF_NAME + - name: Check Style + run: ./tools/build/checkstyle9.pl -color=always origin/main..$GITHUB_REF_NAME diff --git a/tools/build/check-email.sh b/tools/build/check-email.sh new file mode 100755 index 00000000000000..d7b80dd8836ef7 --- /dev/null +++ b/tools/build/check-email.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +# Quick check to make sure all emails in the branch are good +# Anything with noreply in the address + +bad=$(git log --pretty="%ae" "$@" | grep noreply) || exit 1 +if [ -n "${bad}" ] ; then + echo "Found the following bad email addresses: ${bad}" + exit 1 +fi +exit 0