From 7b89d682858edf5b65f416e9b05e899fb1aa2b5a Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Sat, 16 Jul 2022 07:25:24 +0200 Subject: [PATCH] Add check for pull requests (GitHub action) Signed-off-by: Stefan Weil --- .github/workflows/pr_check.yml | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/workflows/pr_check.yml diff --git a/.github/workflows/pr_check.yml b/.github/workflows/pr_check.yml new file mode 100644 index 0000000000..88288910ce --- /dev/null +++ b/.github/workflows/pr_check.yml @@ -0,0 +1,36 @@ +# Check pull requests. + +name: Check pull request + +# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows +on: + # Trigger workflow on pull request. + pull_request: + # branches: [ ci ] + +jobs: + check_pull_request: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Fetching base and head commit (pull_request) + # Source for this step: https://github.com/JensDll/should-run + if: github.event_name == 'pull_request' + run: | + git fetch --no-tags --prune --no-recurse-submodules --depth=$((${{ github.event.pull_request.commits }} + 1)) origin ${{ github.event.pull_request.head.sha }} + git fetch --no-tags --prune --no-recurse-submodules --depth=10 origin ${{ github.event.pull_request.base.sha }} + git checkout --progress --force ${{ github.event.pull_request.head.sha }} + + while [[ -n $(git rev-list shallow ^${{ github.event.pull_request.base.sha }}) ]] + do + git fetch --no-tags --prune --no-recurse-submodules --deepen=10 origin ${{ github.event.pull_request.base.sha }} + done + + base=$(git rev-list ${{ github.event.pull_request.head.sha }} ^${{ github.event.pull_request.base.sha }} | tail --lines 1 | xargs -I {} git rev-parse {}~1) + + echo "BASE=$base" >> $GITHUB_ENV + echo "HEAD=${{ github.event.pull_request.head.sha }}" >> $GITHUB_ENV + - name: Check for whitespace issues. + run: git log --check ${{ env.BASE }}...${{ env.HEAD }} | grep "^[^:+]*:[0-9]*:" && false || true + # TODO: Add more checks here (codespell, ...).