larsxschneider@xxxxxxxxx writes: > From: Lars Schneider <larsxschneider@xxxxxxxxx> > > Most of the Travis CI commands are in the '.travis.yml'. The yml format > does not support functions and therefore code duplication is necessary > to run commands across all builds. > > To fix this, add a library for common CI functions. Move all Travis CI > code into dedicated scripts and make them call the library first. > > Signed-off-by: Lars Schneider <larsxschneider@xxxxxxxxx> > --- Thanks. I _think_ you ended up not having to use shell function to avoid code duplication ;-) but I find the script part of the result much easier to understand. Two things I noticed: - run-windows-build.sh did not use to run with "set -e" but now it does because it includes lib-travisci.sh; if (I didn't check with fine toothed comb) the original were not "set -e" clean, we may see unwanted errors in run-windows-build.sh, but that is sometihng we can fix going forward. - it seems that the test output section lost ": <- click here..."; I do not know if there is a negative consequence of this change. Indentation of some scripts were a bit too deep and I found it hard to read them, so the following is what I did (but did not commit) while reading them through. Thanks. ci/install-dependencies.sh | 51 ++++++++++++++++++++++++---------------------- ci/print-test-failures.sh | 18 ++++++++-------- 2 files changed, 36 insertions(+), 33 deletions(-) diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh index 067e6eb702..a29246af35 100755 --- a/ci/install-dependencies.sh +++ b/ci/install-dependencies.sh @@ -5,33 +5,36 @@ . ${0%/*}/lib-travisci.sh +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 "${TRAVIS_OS_NAME:-linux}" in - linux) - export GIT_TEST_HTTPD=YesPlease +linux) + export GIT_TEST_HTTPD=YesPlease - mkdir --parents custom/p4 - pushd custom/p4 - wget --quiet http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION/bin.linux26x86_64/p4d - wget --quiet http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION/bin.linux26x86_64/p4 - chmod u+x p4d - chmod u+x p4 - export PATH="$(pwd):$PATH" - popd - mkdir --parents custom/git-lfs - pushd custom/git-lfs - wget --quiet https://github.com/github/git-lfs/releases/download/v$LINUX_GIT_LFS_VERSION/git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz - tar --extract --gunzip --file "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" - cp git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs . - export PATH="$(pwd):$PATH" - popd + mkdir --parents custom/p4 + pushd custom/p4 + wget --quiet "$P4WHENCE/bin.linux26x86_64/p4d" + wget --quiet "$P4WHENCE/bin.linux26x86_64/p4" + chmod u+x p4d + chmod u+x p4 + export PATH="$(pwd):$PATH" + popd + mkdir --parents custom/git-lfs + pushd custom/git-lfs + wget --quiet "$LFSWHENCE/git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" + tar --extract --gunzip --file "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz" + cp git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs . + export PATH="$(pwd):$PATH" + popd ;; - osx) - brew update --quiet - # Uncomment this if you want to run perf tests: - # brew install gnu-time - brew install git-lfs gettext - brew link --force gettext - brew install caskroom/cask/perforce +osx) + brew update --quiet + # Uncomment this if you want to run perf tests: + # brew install gnu-time + brew install git-lfs gettext + brew link --force gettext + brew install caskroom/cask/perforce ;; esac diff --git a/ci/print-test-failures.sh b/ci/print-test-failures.sh index 8583e61839..8c8973cbf3 100755 --- a/ci/print-test-failures.sh +++ b/ci/print-test-failures.sh @@ -6,13 +6,13 @@ . ${0%/*}/lib-travisci.sh for TEST_EXIT in t/test-results/*.exit - do - if [ "$(cat "$TEST_EXIT")" != "0" ] - then - TEST_OUT="${TEST_EXIT%exit}out" - echo "------------------------------------------------------------------------" - echo "$(tput setaf 1)${TEST_OUT}...$(tput sgr0)" - echo "------------------------------------------------------------------------" - cat "${TEST_OUT}" - fi +do + if [ "$(cat "$TEST_EXIT")" != "0" ] + then + TEST_OUT="${TEST_EXIT%exit}out" + echo "------------------------------------------------------------------------" + echo "$(tput setaf 1)${TEST_OUT}...$(tput sgr0)" + echo "------------------------------------------------------------------------" + cat "${TEST_OUT}" + fi done