On 2022-12-20 00:35:45+0000, "Chris. Webster via GitGitGadget" <gitgitgadget@xxxxxxxxx> wrote: > From: "Chris. Webster" <chris@xxxxxxxxxxxx> > > Make the errors more visible by adding them to the job summary and > display the git commands that will usually fix the problem. > > Signed-off-by: Chris. Webster <chris@xxxxxxxxxxxx> > --- I think this change is getting too long to be embeded in a yaml file. I think it's better to move the shell code into its own script, so we can have better code highlight in editor and a proper shebang (/bin/bash). > .github/workflows/check-whitespace.yml | 37 +++++++++++++++++++------- > 1 file changed, 28 insertions(+), 9 deletions(-) > > diff --git a/.github/workflows/check-whitespace.yml b/.github/workflows/check-whitespace.yml > index ad3466ad16e..a0871489b24 100644 > --- a/.github/workflows/check-whitespace.yml > +++ b/.github/workflows/check-whitespace.yml > @@ -20,31 +20,50 @@ jobs: > - name: git log --check > id: check_out > run: | > - log= > + problems=() > commit= > - while read dash etc > + commitText= > + lastcommit= > + while read dash sha etc > do > case "${dash}" in > "---") > - commit="${etc}" > + if test -z "${commit}" > + then > + lastcommit=${sha} > + fi > + commit="${sha}" > + commitText="${sha} ${etc}" > ;; > "") > ;; > *) > if test -n "${commit}" > then > - log="${log}\n${commit}" > + problems+=("" "--- ${commitText}") > echo "" > - echo "--- ${commit}" > + echo "--- ${commitText}" > + commit= > fi > - commit= > - log="${log}\n${dash} ${etc}" > - echo "${dash} ${etc}" > + problems+=("${dash} ${sha} ${etc}") > + echo "${problems[-1]}" > ;; > esac > done <<< $(git log --check --pretty=format:"---% h% s" ${{github.event.pull_request.base.sha}}..) > > - if test -n "${log}" > + if test ${#problems[*]} -gt 0 > then > + if test -z "${commit}" > + then > + lastcommit=${{github.event.pull_request.base.sha}} > + fi > + echo "A whitespace issue was found in one or more of the commits." >$GITHUB_STEP_SUMMARY > + echo "" >>$GITHUB_STEP_SUMMARY > + echo "Run \`git rebase --whitespace=fix ${lastcommit}\` and \`git push --force\` to correct the problem." >>$GITHUB_STEP_SUMMARY When move this block into its own script, we can use single quote string here, too. > + for i in "${problems[@]}" > + do > + echo "${i}" >>$GITHUB_STEP_SUMMARY > + done > + > exit 2 > fi > -- > gitgitgadget > -- Danh