| 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() }} |