Re: [PATCH 1/1] ci: split the `linux-gcc` job into two jobs
- From
SZEDER Gábor <szeder.dev@gmail.com>
- Date
- Jun 13, 2019, 15:33 UTC
- Message-ID
- <20190613153354.GC31952@szeder.dev>
- In-Reply-To
- <ac102169ec6f47b8be1fe69b4798de385f102af8.1560430430.git.gitgitgadget@gmail.com>
On Thu, Jun 13, 2019 at 05:53:51AM -0700, Johannes Schindelin via GitGitGadget wrote:
Show 6 quoted lines
> From: Johannes Schindelin <johannes.schindelin@gmx.de> > > This job was abused to not only run the test suite in a regular way but > also with all kinds of `GIT_TEST_*` options set to non-default values. > > Let's split this into two
Why...?
Show 51 quoted lines
> with the `linux-gcc` job running the default > test suite, and the newly-introduced `linux-gcc-extra` job running the > test suite in the "special" ways. > > Technically, we would have to build Git only once, but it would not be > obvious how to teach Travis to transport build artifacts, so we keep it > simple and just build Git in both jobs. > > Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> > --- > .travis.yml | 4 ++++ > azure-pipelines.yml | 39 ++++++++++++++++++++++++++++++++++++++ > ci/install-dependencies.sh | 4 ++-- > ci/lib.sh | 4 ++-- > ci/run-build-and-tests.sh | 5 ++--- > 5 files changed, 49 insertions(+), 7 deletions(-) > > diff --git a/.travis.yml b/.travis.yml > index ffb1bc46f2..a6444ee3ab 100644 > --- a/.travis.yml > +++ b/.travis.yml > @@ -16,6 +16,10 @@ compiler: > > matrix: > include: > + - env: jobname=linux-gcc-extra > + os: linux > + compiler: gcc > + addons: > - env: jobname=GIT_TEST_GETTEXT_POISON > os: linux > compiler: > diff --git a/azure-pipelines.yml b/azure-pipelines.yml > index c329b7218b..4080aa3c45 100644 > --- a/azure-pipelines.yml > +++ b/azure-pipelines.yml > @@ -206,6 +206,45 @@ jobs: > PathtoPublish: t/failed-test-artifacts > ArtifactName: failed-test-artifacts > > +- job: linux_gcc_extra > + displayName: linux-gcc-extra > + condition: succeeded() > + pool: Hosted Ubuntu 1604 > + steps: > + - bash: | > + test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1 > + > + sudo add-apt-repository ppa:ubuntu-toolchain-r/test && > + sudo apt-get update && > + sudo apt-get -y install git gcc make libssl-dev libcurl4-openssl-dev libexpat-dev tcl tk gettext git-email zlib1g-dev apache2 language-pack-is git-svn gcc-8 || exit 1
This installs packages that will be installed by 'ci/install-dependencies.sh' anyway.
Show 91 quoted lines
> +
> + export jobname=linux-gcc-extra &&
> +
> + ci/install-dependencies.sh || exit 1
> + ci/run-build-and-tests.sh || {
> + ci/print-test-failures.sh
> + exit 1
> + }
> +
> + test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || exit 1
> + displayName: 'ci/run-build-and-tests.sh'
> + env:
> + GITFILESHAREPWD: $(gitfileshare.pwd)
> + - task: PublishTestResults@2
> + displayName: 'Publish Test Results **/TEST-*.xml'
> + inputs:
> + mergeTestResults: true
> + testRunTitle: 'linux-gcc-extra'
> + platform: Linux
> + publishRunAttachments: false
> + condition: succeededOrFailed()
> + - task: PublishBuildArtifacts@1
> + displayName: 'Publish trash directories of failed tests'
> + condition: failed()
> + inputs:
> + PathtoPublish: t/failed-test-artifacts
> + ArtifactName: failed-test-artifacts
> +
> - job: osx_clang
> displayName: osx-clang
> condition: succeeded()
> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
> index 7f6acdd803..c25bdcdf66 100755
> --- a/ci/install-dependencies.sh
> +++ b/ci/install-dependencies.sh
> @@ -9,12 +9,12 @@ P4WHENCE=http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION
> LFSWHENCE=https://github.com/github/git-lfs/releases/download/v$LINUX_GIT_LFS_VERSION
>
> case "$jobname" in
> -linux-clang|linux-gcc)
> +linux-clang|linux-gcc|linux-gcc-extra)
> sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
> sudo apt-get -q update
> sudo apt-get -q -y install language-pack-is libsvn-perl apache2
> case "$jobname" in
> - linux-gcc)
> + linux-gcc|linux-gcc-extra)
> sudo apt-get -q -y install gcc-8
> ;;
> esac
> diff --git a/ci/lib.sh b/ci/lib.sh
> index 288a5b3884..b16a1454f1 100755
> --- a/ci/lib.sh
> +++ b/ci/lib.sh
> @@ -154,8 +154,8 @@ export DEFAULT_TEST_TARGET=prove
> export GIT_TEST_CLONE_2GB=YesPlease
>
> case "$jobname" in
> -linux-clang|linux-gcc)
> - if [ "$jobname" = linux-gcc ]
> +linux-clang|linux-gcc|linux-gcc-extra)
> + if [ "$jobname" = linux-gcc -o "$jobname" = linux-gcc-extra ]
> then
> export CC=gcc-8
> fi
> diff --git a/ci/run-build-and-tests.sh b/ci/run-build-and-tests.sh
> index cdd2913440..b252ff859d 100755
> --- a/ci/run-build-and-tests.sh
> +++ b/ci/run-build-and-tests.sh
> @@ -11,8 +11,7 @@ windows*) cmd //c mklink //j t\\.prove "$(cygpath -aw "$cache_dir/.prove")";;
> esac
>
> make
> -make test
> -if test "$jobname" = "linux-gcc"
> +if test "$jobname" = "linux-gcc-extra"
> then
> export GIT_TEST_SPLIT_INDEX=yes
> export GIT_TEST_FULL_IN_PACK_ARRAY=true
> @@ -20,8 +19,8 @@ then
> export GIT_TEST_OE_DELTA_SIZE=5
> export GIT_TEST_COMMIT_GRAPH=1
> export GIT_TEST_MULTI_PACK_INDEX=1
> - make test
> fi
> +make test
>
> check_unignored_build_artifacts
>
> --
> gitgitgadget