ci: rename the library of common functions
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Sun, 27 Jan 2019 23:26:50 +0000 (15:26 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 28 Jan 2019 18:34:28 +0000 (10:34 -0800)
The name is hard-coded to reflect that we use Travis CI for continuous
testing.

In the next commits, we will extend this to be able use Azure DevOps,
too.

So let's adjust the name to make it more generic.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
ci/install-dependencies.sh
ci/lib-travisci.sh [deleted file]
ci/lib.sh [new file with mode: 0755]
ci/print-test-failures.sh
ci/run-build-and-tests.sh
ci/run-linux32-docker.sh
ci/run-static-analysis.sh
ci/run-windows-build.sh
ci/test-documentation.sh
index 06c3546e1ed4e1a78cea4d7a1801145066a895d8..fe6514415277c2433229a9af55a1d90c66490880 100755 (executable)
@@ -3,7 +3,7 @@
 # Install dependencies required to build and test Git on Linux and macOS
 #
 
-. ${0%/*}/lib-travisci.sh
+. ${0%/*}/lib.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
diff --git a/ci/lib-travisci.sh b/ci/lib-travisci.sh
deleted file mode 100755 (executable)
index 9c6ddeb..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-# Library of functions shared by all CI scripts
-
-skip_branch_tip_with_tag () {
-       # Sometimes, a branch is pushed at the same time the tag that points
-       # at the same commit as the tip of the branch is pushed, and building
-       # both at the same time is a waste.
-       #
-       # When the build is triggered by a push to a tag, $CI_BRANCH will
-       # have that tagname, e.g. v2.14.0.  Let's see if $CI_BRANCH is
-       # exactly at a tag, and if so, if it is different from $CI_BRANCH.
-       # That way, we can tell if we are building the tip of a branch that
-       # is tagged and we can skip the build because we won't be skipping a
-       # build of a tag.
-
-       if TAG=$(git describe --exact-match "$CI_BRANCH" 2>/dev/null) &&
-               test "$TAG" != "$CI_BRANCH"
-       then
-               echo "$(tput setaf 2)Tip of $CI_BRANCH is exactly at $TAG$(tput sgr0)"
-               exit 0
-       fi
-}
-
-# Save some info about the current commit's tree, so we can skip the build
-# job if we encounter the same tree again and can provide a useful info
-# message.
-save_good_tree () {
-       echo "$(git rev-parse $TRAVIS_COMMIT^{tree}) $TRAVIS_COMMIT $TRAVIS_JOB_NUMBER $TRAVIS_JOB_ID" >>"$good_trees_file"
-       # limit the file size
-       tail -1000 "$good_trees_file" >"$good_trees_file".tmp
-       mv "$good_trees_file".tmp "$good_trees_file"
-}
-
-# Skip the build job if the same tree has already been built and tested
-# successfully before (e.g. because the branch got rebased, changing only
-# the commit messages).
-skip_good_tree () {
-       if ! good_tree_info="$(grep "^$(git rev-parse $TRAVIS_COMMIT^{tree}) " "$good_trees_file")"
-       then
-               # Haven't seen this tree yet, or no cached good trees file yet.
-               # Continue the build job.
-               return
-       fi
-
-       echo "$good_tree_info" | {
-               read tree prev_good_commit prev_good_job_number prev_good_job_id
-
-               if test "$TRAVIS_JOB_ID" = "$prev_good_job_id"
-               then
-                       cat <<-EOF
-                       $(tput setaf 2)Skipping build job for commit $TRAVIS_COMMIT.$(tput sgr0)
-                       This commit has already been built and tested successfully by this build job.
-                       To force a re-build delete the branch's cache and then hit 'Restart job'.
-                       EOF
-               else
-                       cat <<-EOF
-                       $(tput setaf 2)Skipping build job for commit $TRAVIS_COMMIT.$(tput sgr0)
-                       This commit's tree has already been built and tested successfully in build job $prev_good_job_number for commit $prev_good_commit.
-                       The log of that build job is available at https://travis-ci.org/$TRAVIS_REPO_SLUG/jobs/$prev_good_job_id
-                       To force a re-build delete the branch's cache and then hit 'Restart job'.
-                       EOF
-               fi
-       }
-
-       exit 0
-}
-
-check_unignored_build_artifacts ()
-{
-       ! git ls-files --other --exclude-standard --error-unmatch \
-               -- ':/*' 2>/dev/null ||
-       {
-               echo "$(tput setaf 1)error: found unignored build artifacts$(tput sgr0)"
-               false
-       }
-}
-
-# Set 'exit on error' for all CI scripts to let the caller know that
-# something went wrong.
-# Set tracing executed commands, primarily setting environment variables
-# and installing dependencies.
-set -ex
-
-# When building a PR, TRAVIS_BRANCH refers to the *target* branch. Not what we
-# want here. We want the source branch instead.
-CI_BRANCH="${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH}"
-
-cache_dir="$HOME/travis-cache"
-good_trees_file="$cache_dir/good-trees"
-
-mkdir -p "$cache_dir"
-
-skip_branch_tip_with_tag
-skip_good_tree
-
-if test -z "$jobname"
-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 -x --immediate"
-export GIT_TEST_CLONE_2GB=YesPlease
-if [ "$jobname" = linux-gcc ]; then
-       export CC=gcc-8
-fi
-
-case "$jobname" in
-linux-clang|linux-gcc)
-       export GIT_TEST_HTTPD=YesPlease
-
-       # 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="$HOME/custom/p4"
-       GIT_LFS_PATH="$HOME/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"
-       ;;
-GIT_TEST_GETTEXT_POISON)
-       export GIT_TEST_GETTEXT_POISON=YesPlease
-       ;;
-esac
diff --git a/ci/lib.sh b/ci/lib.sh
new file mode 100755 (executable)
index 0000000..9c6ddeb
--- /dev/null
+++ b/ci/lib.sh
@@ -0,0 +1,132 @@
+# Library of functions shared by all CI scripts
+
+skip_branch_tip_with_tag () {
+       # Sometimes, a branch is pushed at the same time the tag that points
+       # at the same commit as the tip of the branch is pushed, and building
+       # both at the same time is a waste.
+       #
+       # When the build is triggered by a push to a tag, $CI_BRANCH will
+       # have that tagname, e.g. v2.14.0.  Let's see if $CI_BRANCH is
+       # exactly at a tag, and if so, if it is different from $CI_BRANCH.
+       # That way, we can tell if we are building the tip of a branch that
+       # is tagged and we can skip the build because we won't be skipping a
+       # build of a tag.
+
+       if TAG=$(git describe --exact-match "$CI_BRANCH" 2>/dev/null) &&
+               test "$TAG" != "$CI_BRANCH"
+       then
+               echo "$(tput setaf 2)Tip of $CI_BRANCH is exactly at $TAG$(tput sgr0)"
+               exit 0
+       fi
+}
+
+# Save some info about the current commit's tree, so we can skip the build
+# job if we encounter the same tree again and can provide a useful info
+# message.
+save_good_tree () {
+       echo "$(git rev-parse $TRAVIS_COMMIT^{tree}) $TRAVIS_COMMIT $TRAVIS_JOB_NUMBER $TRAVIS_JOB_ID" >>"$good_trees_file"
+       # limit the file size
+       tail -1000 "$good_trees_file" >"$good_trees_file".tmp
+       mv "$good_trees_file".tmp "$good_trees_file"
+}
+
+# Skip the build job if the same tree has already been built and tested
+# successfully before (e.g. because the branch got rebased, changing only
+# the commit messages).
+skip_good_tree () {
+       if ! good_tree_info="$(grep "^$(git rev-parse $TRAVIS_COMMIT^{tree}) " "$good_trees_file")"
+       then
+               # Haven't seen this tree yet, or no cached good trees file yet.
+               # Continue the build job.
+               return
+       fi
+
+       echo "$good_tree_info" | {
+               read tree prev_good_commit prev_good_job_number prev_good_job_id
+
+               if test "$TRAVIS_JOB_ID" = "$prev_good_job_id"
+               then
+                       cat <<-EOF
+                       $(tput setaf 2)Skipping build job for commit $TRAVIS_COMMIT.$(tput sgr0)
+                       This commit has already been built and tested successfully by this build job.
+                       To force a re-build delete the branch's cache and then hit 'Restart job'.
+                       EOF
+               else
+                       cat <<-EOF
+                       $(tput setaf 2)Skipping build job for commit $TRAVIS_COMMIT.$(tput sgr0)
+                       This commit's tree has already been built and tested successfully in build job $prev_good_job_number for commit $prev_good_commit.
+                       The log of that build job is available at https://travis-ci.org/$TRAVIS_REPO_SLUG/jobs/$prev_good_job_id
+                       To force a re-build delete the branch's cache and then hit 'Restart job'.
+                       EOF
+               fi
+       }
+
+       exit 0
+}
+
+check_unignored_build_artifacts ()
+{
+       ! git ls-files --other --exclude-standard --error-unmatch \
+               -- ':/*' 2>/dev/null ||
+       {
+               echo "$(tput setaf 1)error: found unignored build artifacts$(tput sgr0)"
+               false
+       }
+}
+
+# Set 'exit on error' for all CI scripts to let the caller know that
+# something went wrong.
+# Set tracing executed commands, primarily setting environment variables
+# and installing dependencies.
+set -ex
+
+# When building a PR, TRAVIS_BRANCH refers to the *target* branch. Not what we
+# want here. We want the source branch instead.
+CI_BRANCH="${TRAVIS_PULL_REQUEST_BRANCH:-$TRAVIS_BRANCH}"
+
+cache_dir="$HOME/travis-cache"
+good_trees_file="$cache_dir/good-trees"
+
+mkdir -p "$cache_dir"
+
+skip_branch_tip_with_tag
+skip_good_tree
+
+if test -z "$jobname"
+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 -x --immediate"
+export GIT_TEST_CLONE_2GB=YesPlease
+if [ "$jobname" = linux-gcc ]; then
+       export CC=gcc-8
+fi
+
+case "$jobname" in
+linux-clang|linux-gcc)
+       export GIT_TEST_HTTPD=YesPlease
+
+       # 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="$HOME/custom/p4"
+       GIT_LFS_PATH="$HOME/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"
+       ;;
+GIT_TEST_GETTEXT_POISON)
+       export GIT_TEST_GETTEXT_POISON=YesPlease
+       ;;
+esac
index d55460a21287018aafe8a4133dc5238e50496a36..7aef39a2fd249f26f0bb43b7495659478cb04356 100755 (executable)
@@ -3,7 +3,7 @@
 # Print output of failing tests
 #
 
-. ${0%/*}/lib-travisci.sh
+. ${0%/*}/lib.sh
 
 # Tracing executed commands would produce too much noise in the loop below.
 set +x
index cda170d5c27bab7c511d6fe70fc9852b21cc0180..db342bb6a82bc91766a8cbf0782d412288233ee5 100755 (executable)
@@ -3,7 +3,7 @@
 # Build and test Git
 #
 
-. ${0%/*}/lib-travisci.sh
+. ${0%/*}/lib.sh
 
 ln -s "$cache_dir/.prove" t/.prove
 
index 21637903ce0790b1689907f64cca302b32285028..751acfcf8a8c5c894f40e7fe2e96b8a395f2eab4 100755 (executable)
@@ -3,7 +3,7 @@
 # Download and run Docker image to build and test 32-bit Git
 #
 
-. ${0%/*}/lib-travisci.sh
+. ${0%/*}/lib.sh
 
 docker pull daald/ubuntu32:xenial
 
index 5688f261d0813d4b2b55baeb5e404fcfef80b5d7..dc189c7456b3b02585e4d89cde4bd314d194bc90 100755 (executable)
@@ -3,7 +3,7 @@
 # Perform various static code analysis checks
 #
 
-. ${0%/*}/lib-travisci.sh
+. ${0%/*}/lib.sh
 
 make --jobs=2 coccicheck
 
index d99a180e528084a43dff3f640ad3036f4f9dbf07..a73a4eca0aa6053913aa81846453a3257af31595 100755 (executable)
@@ -6,7 +6,7 @@
 # supported) and a commit hash.
 #
 
-. ${0%/*}/lib-travisci.sh
+. ${0%/*}/lib.sh
 
 test $# -ne 2 && echo "Unexpected number of parameters" && exit 1
 test -z "$GFW_CI_TOKEN" && echo "GFW_CI_TOKEN not defined" && exit
index a20de9ca127f82ba916534dfb12f3932595dda05..d3cdbac73f8b3dc179d003cb9f79049540f70f20 100755 (executable)
@@ -3,7 +3,7 @@
 # Perform sanity checks on documentation and build it.
 #
 
-. ${0%/*}/lib-travisci.sh
+. ${0%/*}/lib.sh
 
 gem install asciidoctor