Our '.travis.yml's 'env.global' section sets a bunch of environment variables for all build jobs, though none of them actually affects all build jobs. It's convenient for us, and in most cases it works just fine, because irrelevant environment variables are simply ignored.
However, $GIT_SKIP_TESTS is an exception: it tells the test harness to skip the two test scripts that are prone to occasional failures on OSX, but as it's set for all build jobs those tests are not run in any of the build jobs that are capable to run them reliably, either. Therefore $GIT_SKIP_TESTS should only be set in the OSX build jobs, but those build jobs are included in the build matrix implicitly (i.e. by combining the matrix keys 'os' and 'compiler'), and there is no way to set an environment variable only for a subset of those implicit build jobs. (Unless we were to add new scriptlets to '.travis.yml', which is exactly the opposite direction that we took with commit 657343a60 (travis-ci: move Travis CI code into dedicated scripts, 2017-09-10)). So move setting $GIT_SKIP_TESTS to 'ci/lib-travisci.sh', where it can trivially be set only for the OSX build jobs. Furthermore, move setting all other environment variables from '.travis.yml' to 'ci/lib-travisci.sh', too, because a couple of environment variables are already set there, and this way all environment variables will be set in the same place. All the logic controlling our builds is already in the 'ci/*' scripts anyway, so there is really no good reason to keep the environment variables separately. Signed-off-by: SZEDER Gábor <szeder....@gmail.com> --- .travis.yml | 18 +----------------- ci/lib-travisci.sh | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/.travis.yml b/.travis.yml index 88435e11c..7c9aa0557 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,25 +21,9 @@ addons: - git-svn - apache2 -env: - global: - - DEVELOPER=1 - # The Linux build installs the defined dependency versions below. - # The OS X build installs the latest available versions. Keep that - # in mind when you encounter a broken OS X build! - - LINUX_P4_VERSION="16.2" - - LINUX_GIT_LFS_VERSION="1.5.2" - - DEFAULT_TEST_TARGET=prove - - GIT_PROVE_OPTS="--timer --jobs 3 --state=failed,slow,save" - - GIT_TEST_OPTS="--verbose-log" - - GIT_TEST_CLONE_2GB=YesPlease - # t9810 occasionally fails on Travis CI OS X - # t9816 occasionally fails with "TAP out of sequence errors" on Travis CI OS X - - GIT_SKIP_TESTS="t9810 t9816" - matrix: include: - - env: jobname=GETTEXT_POISON GETTEXT_POSION=YesPlease + - env: jobname=GETTEXT_POISON os: linux compiler: addons: diff --git a/ci/lib-travisci.sh b/ci/lib-travisci.sh index b60e93797..e85571298 100755 --- a/ci/lib-travisci.sh +++ b/ci/lib-travisci.sh @@ -32,10 +32,31 @@ then jobname="$TRAVIS_OS_NAME-$CC" fi +export DEVELOPER=1 +export DEFAULT_TEST_TARGET=prove +export GIT_PROVE_OPTS="--timer --jobs 3 --state=failed,slow,save" +export GIT_TEST_OPTS="--verbose-log" +export GIT_TEST_CLONE_2GB=YesPlease + case "$jobname" in linux-clang|linux-gcc) + # The Linux build installs the defined dependency versions below. + # The OS X build installs the latest available versions. Keep that + # in mind when you encounter a broken OS X build! + export LINUX_P4_VERSION="16.2" + export LINUX_GIT_LFS_VERSION="1.5.2" + P4_PATH="$(pwd)/custom/p4" GIT_LFS_PATH="$(pwd)/custom/git-lfs" export PATH="$GIT_LFS_PATH:$P4_PATH:$PATH" ;; +osx-clang|osx-gcc) + # t9810 occasionally fails on Travis CI OS X + # t9816 occasionally fails with "TAP out of sequence errors" on + # Travis CI OS X + export GIT_SKIP_TESTS="t9810 t9816" + ;; +GETTEXT_POISON) + export GETTEXT_POISON=YesPlease + ;; esac -- 2.15.1.421.gc469ca1de