Git Mailing List Archive mirror
 help / color / mirror / Atom feed
From: "Đoàn Trần Công Danh" <congdanhqx@gmail.com>
To: "Chris. Webster via GitGitGadget" <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, "Chris. Webster" <chris@webstech.net>
Subject: Re: [PATCH v2 1/3] ci (check-whitespace): suggest fixes for errors
Date: Tue, 20 Dec 2022 14:34:19 +0700	[thread overview]
Message-ID: <Y6Fle8gzVU5si3T/@danh.dev> (raw)
In-Reply-To: <a2b5f3e87d6ef62d8005cff5568ad3afc4af3771.1671496548.git.gitgitgadget@gmail.com>

On 2022-12-20 00:35:45+0000, "Chris. Webster via GitGitGadget" <gitgitgadget@gmail.com> wrote:
> From: "Chris. Webster" <chris@webstech.net>
> 
> 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@webstech.net>
> ---

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

  reply	other threads:[~2022-12-20  7:34 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-16  8:31 [PATCH 0/2] Make check-whitespace failures more helpful Chris. Webster via GitGitGadget
2022-12-16  8:31 ` [PATCH 1/2] Make `check-whitespace` " Chris. Webster via GitGitGadget
2022-12-16 10:06   ` Junio C Hamano
2022-12-20  0:30     ` Chris Webster
2022-12-20  1:36       ` Junio C Hamano
2022-12-20  5:50         ` Chris Webster
2022-12-16  8:32 ` [PATCH 2/2] Improve check-whitespace output Chris. Webster via GitGitGadget
2022-12-16 10:13   ` Junio C Hamano
2022-12-20  0:33     ` Chris Webster
2022-12-20  0:35 ` [PATCH v2 0/3] Make check-whitespace failures more helpful Chris. Webster via GitGitGadget
2022-12-20  0:35   ` [PATCH v2 1/3] ci (check-whitespace): suggest fixes for errors Chris. Webster via GitGitGadget
2022-12-20  7:34     ` Đoàn Trần Công Danh [this message]
2022-12-20 19:55       ` Chris Webster
2022-12-21  1:53         ` Đoàn Trần Công Danh
2022-12-21  6:08           ` Chris Webster
2022-12-21 13:46             ` Đoàn Trần Công Danh
2022-12-20  0:35   ` [PATCH v2 2/3] ci (check-whitespace): add links to job output Chris. Webster via GitGitGadget
2022-12-20  0:35   ` [PATCH v2 3/3] ci (check-whitespace): move to actions/checkout@v3 Chris. Webster via GitGitGadget

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y6Fle8gzVU5si3T/@danh.dev \
    --to=congdanhqx@gmail.com \
    --cc=chris@webstech.net \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).