You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
1.9 KiB
71 lines
1.9 KiB
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() }}
|
|
|