On Thu, Jun 13, 2019 at 05:53:51AM -0700, Johannes Schindelin via GitGitGadget wrote: > From: Johannes Schindelin <johannes.schindelin@xxxxxx> > > 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...? > 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@xxxxxx> > --- > .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. > + > + 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