diff mbox series

[1/1] ci: run `hdr-check` as part of the `Static Analysis` job

Message ID 4b3b58ca6ddff476acff6735129049588c0a1f13.1569928584.git.gitgitgadget@gmail.com (mailing list archive)
State New, archived
Headers show
Series Include hdr-check in the CI builds | expand

Commit Message

Johannes Schindelin via GitGitGadget Oct. 1, 2019, 11:16 a.m. UTC
From: Johannes Schindelin <johannes.schindelin@gmx.de>

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 azure-pipelines.yml        | 2 +-
 ci/install-dependencies.sh | 3 ++-
 ci/run-static-analysis.sh  | 3 +++
 3 files changed, 6 insertions(+), 2 deletions(-)

Comments

Denton Liu Oct. 1, 2019, 4:42 p.m. UTC | #1
Hi Johannes,

Sorry for not replying or rolling this in earlier, I was waiting for my
series to hit master before doing this change but I guess it doesn't
really hurt to do it any earlier.

On Tue, Oct 01, 2019 at 04:16:26AM -0700, Johannes Schindelin via GitGitGadget wrote:
> From: Johannes Schindelin <johannes.schindelin@gmx.de>
> 
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
>  azure-pipelines.yml        | 2 +-
>  ci/install-dependencies.sh | 3 ++-
>  ci/run-static-analysis.sh  | 3 +++
>  3 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/azure-pipelines.yml b/azure-pipelines.yml
> index c329b7218b..15831f6006 100644
> --- a/azure-pipelines.yml
> +++ b/azure-pipelines.yml
> @@ -354,7 +354,7 @@ jobs:
>         test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
>  
>         sudo apt-get update &&
> -       sudo apt-get install -y coccinelle &&
> +       sudo apt-get install -y coccinelle  coccinelle libcurl4-openssl-dev libssl-dev libexpat-dev gettext &&

Seems like you accidentally included coccinelle twice.

Anyway, thanks for picking up where I left off.

-Denton

>  
>         export jobname=StaticAnalysis &&
>  
> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
> index 8cc72503cb..8ce9ce276e 100755
> --- a/ci/install-dependencies.sh
> +++ b/ci/install-dependencies.sh
> @@ -49,7 +49,8 @@ osx-clang|osx-gcc)
>  	;;
>  StaticAnalysis)
>  	sudo apt-get -q update
> -	sudo apt-get -q -y install coccinelle
> +	sudo apt-get -q -y install coccinelle libcurl4-openssl-dev libssl-dev \
> +		libexpat-dev gettext
>  	;;
>  Documentation)
>  	sudo apt-get -q update
> diff --git a/ci/run-static-analysis.sh b/ci/run-static-analysis.sh
> index a19aa7ebbc..65bcebda41 100755
> --- a/ci/run-static-analysis.sh
> +++ b/ci/run-static-analysis.sh
> @@ -26,4 +26,7 @@ then
>  	exit 1
>  fi
>  
> +make hdr-check ||
> +exit 1
> +
>  save_good_tree
> -- 
> gitgitgadget
Johannes Schindelin Oct. 1, 2019, 6:45 p.m. UTC | #2
Hi Denton,

On Tue, 1 Oct 2019, Denton Liu wrote:

> Sorry for not replying or rolling this in earlier, I was waiting for
> my series to hit master before doing this change but I guess it
> doesn't really hurt to do it any earlier.

No worries, thank you for working on this!

I wonder whether it would make sense to add a `hdr-check` to at least
one macOS and on Windows job, too, so that we get some confidence in the
non-Linux contributions. But that I _will_ leave to others ;-)

> On Tue, Oct 01, 2019 at 04:16:26AM -0700, Johannes Schindelin via GitGitGadget wrote:
> > From: Johannes Schindelin <johannes.schindelin@gmx.de>
> >
> > Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> > ---
> >  azure-pipelines.yml        | 2 +-
> >  ci/install-dependencies.sh | 3 ++-
> >  ci/run-static-analysis.sh  | 3 +++
> >  3 files changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/azure-pipelines.yml b/azure-pipelines.yml
> > index c329b7218b..15831f6006 100644
> > --- a/azure-pipelines.yml
> > +++ b/azure-pipelines.yml
> > @@ -354,7 +354,7 @@ jobs:
> >         test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
> >
> >         sudo apt-get update &&
> > -       sudo apt-get install -y coccinelle &&
> > +       sudo apt-get install -y coccinelle  coccinelle libcurl4-openssl-dev libssl-dev libexpat-dev gettext &&
>
> Seems like you accidentally included coccinelle twice.

Good point (copy-edit fail!). I force-pushed a fixed version, and will
probably send out a new version tomorrow or Friday.

Thanks,
Dscho

>
> Anyway, thanks for picking up where I left off.
>
> -Denton
>
> >
> >         export jobname=StaticAnalysis &&
> >
> > diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
> > index 8cc72503cb..8ce9ce276e 100755
> > --- a/ci/install-dependencies.sh
> > +++ b/ci/install-dependencies.sh
> > @@ -49,7 +49,8 @@ osx-clang|osx-gcc)
> >  	;;
> >  StaticAnalysis)
> >  	sudo apt-get -q update
> > -	sudo apt-get -q -y install coccinelle
> > +	sudo apt-get -q -y install coccinelle libcurl4-openssl-dev libssl-dev \
> > +		libexpat-dev gettext
> >  	;;
> >  Documentation)
> >  	sudo apt-get -q update
> > diff --git a/ci/run-static-analysis.sh b/ci/run-static-analysis.sh
> > index a19aa7ebbc..65bcebda41 100755
> > --- a/ci/run-static-analysis.sh
> > +++ b/ci/run-static-analysis.sh
> > @@ -26,4 +26,7 @@ then
> >  	exit 1
> >  fi
> >
> > +make hdr-check ||
> > +exit 1
> > +
> >  save_good_tree
> > --
> > gitgitgadget
>
Junio C Hamano Oct. 2, 2019, 6:11 a.m. UTC | #3
"Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
writes:

> -       sudo apt-get install -y coccinelle &&
> +       sudo apt-get install -y coccinelle  coccinelle libcurl4-openssl-dev libssl-dev libexpat-dev gettext &&

I think "s/coccinelle  //" is necessary here (assuming that "apt-get install"
is the same Debian thing I know about).

Will do so locally, so no need to resend, but "Yeah, that was a
typo" or "no stupid, what I wrote is right" would be a nice
response to see, especially if I have to undo the local fix.

Thanks.


> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
> index 8cc72503cb..8ce9ce276e 100755
> --- a/ci/install-dependencies.sh
> +++ b/ci/install-dependencies.sh
> @@ -49,7 +49,8 @@ osx-clang|osx-gcc)
>  	;;
>  StaticAnalysis)
>  	sudo apt-get -q update
> -	sudo apt-get -q -y install coccinelle
> +	sudo apt-get -q -y install coccinelle libcurl4-openssl-dev libssl-dev \
> +		libexpat-dev gettext
>  	;;
>  Documentation)
>  	sudo apt-get -q update
> diff --git a/ci/run-static-analysis.sh b/ci/run-static-analysis.sh
> index a19aa7ebbc..65bcebda41 100755
> --- a/ci/run-static-analysis.sh
> +++ b/ci/run-static-analysis.sh
> @@ -26,4 +26,7 @@ then
>  	exit 1
>  fi
>  
> +make hdr-check ||
> +exit 1
> +
>  save_good_tree
Johannes Schindelin Oct. 2, 2019, 9:17 a.m. UTC | #4
Hi Junio,

On Wed, 2 Oct 2019, Junio C Hamano wrote:

> "Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
> writes:
>
> > -       sudo apt-get install -y coccinelle &&
> > +       sudo apt-get install -y coccinelle  coccinelle libcurl4-openssl-dev libssl-dev libexpat-dev gettext &&
>
> I think "s/coccinelle  //" is necessary here (assuming that "apt-get install"
> is the same Debian thing I know about).
>
> Will do so locally, so no need to resend, but "Yeah, that was a
> typo" or "no stupid, what I wrote is right" would be a nice
> response to see, especially if I have to undo the local fix.

Yes, this was a copy-edit fail on my part.

Thanks,
Dscho

>
> Thanks.
>
>
> > diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
> > index 8cc72503cb..8ce9ce276e 100755
> > --- a/ci/install-dependencies.sh
> > +++ b/ci/install-dependencies.sh
> > @@ -49,7 +49,8 @@ osx-clang|osx-gcc)
> >  	;;
> >  StaticAnalysis)
> >  	sudo apt-get -q update
> > -	sudo apt-get -q -y install coccinelle
> > +	sudo apt-get -q -y install coccinelle libcurl4-openssl-dev libssl-dev \
> > +		libexpat-dev gettext
> >  	;;
> >  Documentation)
> >  	sudo apt-get -q update
> > diff --git a/ci/run-static-analysis.sh b/ci/run-static-analysis.sh
> > index a19aa7ebbc..65bcebda41 100755
> > --- a/ci/run-static-analysis.sh
> > +++ b/ci/run-static-analysis.sh
> > @@ -26,4 +26,7 @@ then
> >  	exit 1
> >  fi
> >
> > +make hdr-check ||
> > +exit 1
> > +
> >  save_good_tree
>
SZEDER Gábor Oct. 7, 2019, 6:51 p.m. UTC | #5
On Tue, Oct 01, 2019 at 04:16:26AM -0700, Johannes Schindelin via GitGitGadget wrote:
> From: Johannes Schindelin <johannes.schindelin@gmx.de>

Good idea, now that 'make hdr-check' runs clean this will help to keep
it that way.

I think adding it to the static analysis job makes sense, as opposed
to the additional VM startup, git clone, and dependency installation
overhead of a dedicated job.  However, this way we won't run 'make
hdr-check' if Coccinelle were to find something undesired, but I think
that's acceptable.

> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
>  azure-pipelines.yml        | 2 +-
>  ci/install-dependencies.sh | 3 ++-
>  ci/run-static-analysis.sh  | 3 +++
>  3 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/azure-pipelines.yml b/azure-pipelines.yml
> index c329b7218b..15831f6006 100644
> --- a/azure-pipelines.yml
> +++ b/azure-pipelines.yml
> @@ -354,7 +354,7 @@ jobs:
>         test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
>  
>         sudo apt-get update &&
> -       sudo apt-get install -y coccinelle &&
> +       sudo apt-get install -y coccinelle  coccinelle libcurl4-openssl-dev libssl-dev libexpat-dev gettext &&

These are the same additional packages that the hunk below adds to
'ci/install-dependencies.sh'.

So... why not just run 'ci/install-dependencies.sh' in the first place?

(On a related note, I noticed that the regular Linux and OSX jobs on
Azure Pipelines do run 'ci/install-dependencies.sh', but even in those
jobs 'azure-pipelines.yml' runs its own 'apt-get update && install'
anyway.)

>         export jobname=StaticAnalysis &&
>  
> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
> index 8cc72503cb..8ce9ce276e 100755
> --- a/ci/install-dependencies.sh
> +++ b/ci/install-dependencies.sh
> @@ -49,7 +49,8 @@ osx-clang|osx-gcc)
>  	;;
>  StaticAnalysis)
>  	sudo apt-get -q update
> -	sudo apt-get -q -y install coccinelle
> +	sudo apt-get -q -y install coccinelle libcurl4-openssl-dev libssl-dev \
> +		libexpat-dev gettext
>  	;;
>  Documentation)
>  	sudo apt-get -q update
> diff --git a/ci/run-static-analysis.sh b/ci/run-static-analysis.sh
> index a19aa7ebbc..65bcebda41 100755
> --- a/ci/run-static-analysis.sh
> +++ b/ci/run-static-analysis.sh
> @@ -26,4 +26,7 @@ then
>  	exit 1
>  fi
>  
> +make hdr-check ||
> +exit 1

This '|| exit 1' is unnecessary: our CI scripts are run with 'set -e',
so the non-zero exit code from a failing 'make hdr-check' alone would
fail the build.

(Yeah, there is an other 'exit 1' in the patch context above, but
that's a whole different ballpark and we do need that one.  Unlike
'make hdr-check', 'make coccicheck' (or even COccinelle itself for
that matter) doesn't exit with error when it found something to
transform, and it doesn't print those transformations either.
Consequently, we had to take a few extra steps to fail the build if it
found something, and that 'exit 1' is part of that.  More details in
0860a7641b (travis-ci: fail if Coccinelle static analysis found
something to transform, 2018-07-23).)


> +
>  save_good_tree
> -- 
> gitgitgadget
diff mbox series

Patch

diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index c329b7218b..15831f6006 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -354,7 +354,7 @@  jobs:
        test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1
 
        sudo apt-get update &&
-       sudo apt-get install -y coccinelle &&
+       sudo apt-get install -y coccinelle  coccinelle libcurl4-openssl-dev libssl-dev libexpat-dev gettext &&
 
        export jobname=StaticAnalysis &&
 
diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index 8cc72503cb..8ce9ce276e 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -49,7 +49,8 @@  osx-clang|osx-gcc)
 	;;
 StaticAnalysis)
 	sudo apt-get -q update
-	sudo apt-get -q -y install coccinelle
+	sudo apt-get -q -y install coccinelle libcurl4-openssl-dev libssl-dev \
+		libexpat-dev gettext
 	;;
 Documentation)
 	sudo apt-get -q update
diff --git a/ci/run-static-analysis.sh b/ci/run-static-analysis.sh
index a19aa7ebbc..65bcebda41 100755
--- a/ci/run-static-analysis.sh
+++ b/ci/run-static-analysis.sh
@@ -26,4 +26,7 @@  then
 	exit 1
 fi
 
+make hdr-check ||
+exit 1
+
 save_good_tree