
Linux build jobs on Travis CI skip the P4 and Git LFS tests since commit 657343a60 (travis-ci: move Travis CI code into dedicated scripts, 2017-09-10), claiming there are no P4 or Git LFS installed. The reason is that P4 and Git LFS binaries are not installed to a directory in the default $PATH, but their directories are prepended to $PATH. This worked just fine before said commit, because $PATH was set in a scriptlet embedded in our '.travis.yml', thus its new value was visible during the rest of the build job. However, after these embedded scriptlets were moved into dedicated scripts executed in separate shell processes, any variable set in one of those scripts is only visible in that single script but not in any of the others. In this case, 'ci/install-dependencies.sh' downloads P4 and Git LFS and modifies $PATH, but to no effect, because 'ci/run-tests.sh' only sees Travis CI's default $PATH. Move adjusting $PATH to 'ci/lib-travisci.sh', which is sourced in all other 'ci/' scripts, so all those scripts will see the updated $PATH value. Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
37 lines
1.1 KiB
Bash
Executable File
37 lines
1.1 KiB
Bash
Executable File
# 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.
|
|
#
|
|
# Travis gives a tagname e.g. v2.14.0 in $TRAVIS_BRANCH when
|
|
# the build is triggered by a push to a tag. Let's see if
|
|
# $TRAVIS_BRANCH is exactly at a tag, and if so, if it is
|
|
# different from $TRAVIS_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 "$TRAVIS_BRANCH" 2>/dev/null) &&
|
|
test "$TAG" != "$TRAVIS_BRANCH"
|
|
then
|
|
echo "Tip of $TRAVIS_BRANCH is exactly at $TAG"
|
|
exit 0
|
|
fi
|
|
}
|
|
|
|
# Set 'exit on error' for all CI scripts to let the caller know that
|
|
# something went wrong
|
|
set -e
|
|
|
|
skip_branch_tip_with_tag
|
|
|
|
case "${TRAVIS_OS_NAME:-linux}" in
|
|
linux)
|
|
P4_PATH="$(pwd)/custom/p4"
|
|
GIT_LFS_PATH="$(pwd)/custom/git-lfs"
|
|
export PATH="$GIT_LFS_PATH:$P4_PATH:$PATH"
|
|
;;
|
|
esac
|