Web lists-archives.com

Re: [PATCH v1 1/2] travis-ci: move Travis CI code into dedicated scripts




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