Skip to content

Commit bf427a9

Browse files
szedergitster
authored andcommitted
travis-ci: introduce a $jobname variable for 'ci/*' scripts
A couple of 'ci/*' scripts are shared between different build jobs: 'ci/lib-travisci.sh', being a common library, is sourced from almost every script, while 'ci/install-dependencies.sh', 'ci/run-build.sh' and 'ci/run-tests.sh' are shared between the "regular" GCC and Clang Linux and OSX build jobs, and the latter two scripts are used in the GETTEXT_POISON Linux build job as well. Our builds could benefit from these shared scripts being able to easily tell which build job they are taking part in. Now, it's already quite easy to tell apart Linux vs OSX and GCC vs Clang build jobs, but it gets trickier with all the additional Linux-based build jobs included explicitly in the build matrix. Unfortunately, Travis CI doesn't provide much help in this regard. The closest we've got is the $TRAVIS_JOB_NUMBER variable, the value of which is two dot-separated integers, where the second integer indicates a particular build job. While it would be possible to use that second number to identify the build job in our shared scripts, it doesn't seem like a good idea to rely on that: - Though the build job numbering sequence seems to be stable so far, Travis CI's documentation doesn't explicitly states that it is indeed stable and will remain so in the future. And even if it were stable, - if we were to remove or insert a build job in the middle, then the job numbers of all subsequent build jobs would change accordingly. So roll our own means of simple build job identification and introduce the $jobname environment variable in our builds, setting it in the environments of the explicitly included jobs in '.travis.yml', while constructing one in 'ci/lib-travisci.sh' as the combination of the OS and compiler name for the GCC and Clang Linux and OSX build jobs. Use $jobname instead of $TRAVIS_OS_NAME in scripts taking different actions based on the OS and build job (when installing P4 and Git LFS dependencies and including them in $PATH). The following two patches will also rely on $jobname. Signed-off-by: SZEDER Gábor <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent c215495 commit bf427a9

File tree

3 files changed

+15
-10
lines changed

3 files changed

+15
-10
lines changed

.travis.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ env:
3939

4040
matrix:
4141
include:
42-
- env: GETTEXT_POISON=YesPlease
42+
- env: jobname=GETTEXT_POISON GETTEXT_POSION=YesPlease
4343
os: linux
4444
compiler:
4545
addons:
4646
before_install:
47-
- env: Windows
47+
- env: jobname=Windows
4848
os: linux
4949
compiler:
5050
addons:
@@ -55,15 +55,15 @@ matrix:
5555
test "$TRAVIS_REPO_SLUG" != "git/git" ||
5656
ci/run-windows-build.sh $TRAVIS_BRANCH $(git rev-parse HEAD)
5757
after_failure:
58-
- env: Linux32
58+
- env: jobname=Linux32
5959
os: linux
6060
compiler:
6161
services:
6262
- docker
6363
before_install:
6464
before_script:
6565
script: ci/run-linux32-docker.sh
66-
- env: Static Analysis
66+
- env: jobname=StaticAnalysis
6767
os: linux
6868
compiler:
6969
addons:
@@ -74,7 +74,7 @@ matrix:
7474
before_script:
7575
script: ci/run-static-analysis.sh
7676
after_failure:
77-
- env: Documentation
77+
- env: jobname=Documentation
7878
os: linux
7979
compiler:
8080
addons:

ci/install-dependencies.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
P4WHENCE=http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION
99
LFSWHENCE=https://github.com/github/git-lfs/releases/download/v$LINUX_GIT_LFS_VERSION
1010

11-
case "${TRAVIS_OS_NAME:-linux}" in
12-
linux)
11+
case "$jobname" in
12+
linux-clang|linux-gcc)
1313
export GIT_TEST_HTTPD=YesPlease
1414

1515
mkdir --parents "$P4_PATH"
@@ -26,7 +26,7 @@ linux)
2626
cp git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs .
2727
popd
2828
;;
29-
osx)
29+
osx-clang|osx-gcc)
3030
brew update --quiet
3131
# Uncomment this if you want to run perf tests:
3232
# brew install gnu-time

ci/lib-travisci.sh

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,13 @@ set -e
2727

2828
skip_branch_tip_with_tag
2929

30-
case "${TRAVIS_OS_NAME:-linux}" in
31-
linux)
30+
if test -z "$jobname"
31+
then
32+
jobname="$TRAVIS_OS_NAME-$CC"
33+
fi
34+
35+
case "$jobname" in
36+
linux-clang|linux-gcc)
3237
P4_PATH="$(pwd)/custom/p4"
3338
GIT_LFS_PATH="$(pwd)/custom/git-lfs"
3439
export PATH="$GIT_LFS_PATH:$P4_PATH:$PATH"

0 commit comments

Comments
 (0)