[email protected] writes:
> From: Lars Schneider <[email protected]>
>
> 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 <[email protected]>
> ---
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