name: check-whitespace # Get the repo with the commits(+1) in the series. # Process `git log --check` output to extract just the check errors. # Add a comment to the pull request with the check errors. on: pull_request: types: [opened, synchronize] jobs: check-whitespace: runs-on: ubuntu-latest steps: - name: Set commit count shell: bash run: echo "COMMIT_DEPTH=$((1+$COMMITS))" >>$GITHUB_ENV env: COMMITS: ${{ github.event.pull_request.commits }} - uses: actions/checkout@v2 with: fetch-depth: ${{ env.COMMIT_DEPTH }} - name: git log --check id: check_out run: | log= commit= while read dash etc do case "${dash}" in "---") commit="${etc}" ;; "") ;; *) if test -n "${commit}" then log="${log}\n${commit}" echo "" echo "--- ${commit}" fi commit= log="${log}\n${dash} ${etc}" echo "${dash} ${etc}" ;; esac done <<< $(git log --check --pretty=format:"---% h% s" -${{github.event.pull_request.commits}}) if test -n "${log}" then echo "::set-output name=checkout::"${log}"" exit 2 fi - name: Add Check Output as Comment uses: actions/github-script@v3 id: add-comment env: log: ${{ steps.check_out.outputs.checkout }} with: script: | await github.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: `Whitespace errors found in workflow ${{ github.workflow }}:\n\n\`\`\`\n${process.env.log.replace(/\\n/g, "\n")}\n\`\`\`` }) if: ${{ failure() }}