git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "SZEDER Gábor" <szeder.dev@gmail.com>
To: git@vger.kernel.org
Cc: "Lars Schneider" <larsxschneider@gmail.com>,
	"Thomas Gummerer" <t.gummerer@gmail.com>,
	"SZEDER Gábor" <szeder.dev@gmail.com>
Subject: [PATCH 2/4] travis-ci: introduce a $jobname variable for 'ci/*' scripts
Date: Tue, 12 Dec 2017 00:34:44 +0100	[thread overview]
Message-ID: <20171211233446.10596-3-szeder.dev@gmail.com> (raw)
In-Reply-To: <20171211233446.10596-1-szeder.dev@gmail.com>

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 <szeder.dev@gmail.com>
---
 .travis.yml                | 10 +++++-----
 ci/install-dependencies.sh |  6 +++---
 ci/lib-travisci.sh         |  9 +++++++--
 3 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 281f101f3..88435e11c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -39,12 +39,12 @@ env:
 
 matrix:
   include:
-    - env: GETTEXT_POISON=YesPlease
+    - env: jobname=GETTEXT_POISON GETTEXT_POSION=YesPlease
       os: linux
       compiler:
       addons:
       before_install:
-    - env: Windows
+    - env: jobname=Windows
       os: linux
       compiler:
       addons:
@@ -55,7 +55,7 @@ matrix:
           test "$TRAVIS_REPO_SLUG" != "git/git" ||
           ci/run-windows-build.sh $TRAVIS_BRANCH $(git rev-parse HEAD)
       after_failure:
-    - env: Linux32
+    - env: jobname=Linux32
       os: linux
       compiler:
       services:
@@ -63,7 +63,7 @@ matrix:
       before_install:
       before_script:
       script: ci/run-linux32-docker.sh
-    - env: Static Analysis
+    - env: jobname=StaticAnalysis
       os: linux
       compiler:
       addons:
@@ -74,7 +74,7 @@ matrix:
       before_script:
       script: ci/run-static-analysis.sh
       after_failure:
-    - env: Documentation
+    - env: jobname=Documentation
       os: linux
       compiler:
       addons:
diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index 5bd06fe90..468788566 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -8,8 +8,8 @@
 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)
+case "$jobname" in
+linux-clang|linux-gcc)
 	export GIT_TEST_HTTPD=YesPlease
 
 	mkdir --parents "$P4_PATH"
@@ -26,7 +26,7 @@ linux)
 		cp git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs .
 	popd
 	;;
-osx)
+osx-clang|osx-gcc)
 	brew update --quiet
 	# Uncomment this if you want to run perf tests:
 	# brew install gnu-time
diff --git a/ci/lib-travisci.sh b/ci/lib-travisci.sh
index a0c8ae03f..b60e93797 100755
--- a/ci/lib-travisci.sh
+++ b/ci/lib-travisci.sh
@@ -27,8 +27,13 @@ set -ex
 
 skip_branch_tip_with_tag
 
-case "${TRAVIS_OS_NAME:-linux}" in
-linux)
+if test -z "$jobname"
+then
+	jobname="$TRAVIS_OS_NAME-$CC"
+fi
+
+case "$jobname" in
+linux-clang|linux-gcc)
 	P4_PATH="$(pwd)/custom/p4"
 	GIT_LFS_PATH="$(pwd)/custom/git-lfs"
 	export PATH="$GIT_LFS_PATH:$P4_PATH:$PATH"
-- 
2.15.1.421.gc469ca1de


  parent reply	other threads:[~2017-12-11 23:35 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-01 11:55 [PATCH] travis-ci: fix running P4 and Git LFS tests in Linux build jobs SZEDER Gábor
2017-12-11 23:34 ` [PATCH 0/4] travis-ci: clean up setting environment variables SZEDER Gábor
2017-12-11 23:34   ` [PATCH 1/4] travis-ci: use 'set -x' in 'ci/*' scripts for extra tracing output SZEDER Gábor
2017-12-12 18:00     ` Lars Schneider
2017-12-12 18:43       ` SZEDER Gábor
2017-12-13 23:10         ` Lars Schneider
2017-12-14 23:51           ` SZEDER Gábor
2017-12-15 12:10             ` Johannes Schindelin
2017-12-15 13:06               ` SZEDER Gábor
2017-12-15 15:32                 ` Johannes Schindelin
2017-12-11 23:34   ` SZEDER Gábor [this message]
2017-12-11 23:34   ` [PATCH 3/4] travis-ci: move setting environment variables to 'ci/lib-travisci.sh' SZEDER Gábor
2017-12-11 23:34   ` [PATCH 4/4] travis-ci: set GIT_TEST_HTTPD in 'ci/lib-travisci.sh' SZEDER Gábor
2017-12-16 12:54   ` [PATCH v2 0/8] Travis CI cleanups SZEDER Gábor
2017-12-16 12:54     ` [PATCH v2 1/8] travis-ci: use 'set -x' in select 'ci/*' scripts for extra tracing SZEDER Gábor
2017-12-16 12:55       ` [PATCH v2 2/8] travis-ci: introduce a $jobname variable for 'ci/*' scripts SZEDER Gábor
2017-12-16 12:57       ` [PATCH v2 3/8] travis-ci: move setting environment variables to 'ci/lib-travisci.sh' SZEDER Gábor
2017-12-16 12:57       ` [PATCH v2 4/8] travis-ci: set GIT_TEST_HTTPD in 'ci/lib-travisci.sh' SZEDER Gábor
2017-12-16 12:57       ` [PATCH v2 5/8] travis-ci: don't install default addon packages for the 32 bit Linux build SZEDER Gábor
2017-12-16 12:57       ` [PATCH v2 6/8] travis-ci: don't install 'language-pack-is' package SZEDER Gábor
2017-12-18 21:33         ` Lars Schneider
2017-12-18 22:04           ` SZEDER Gábor
2017-12-18 22:17             ` Lars Schneider
2017-12-18 22:34               ` Junio C Hamano
2017-12-19 12:22             ` SZEDER Gábor
2017-12-16 12:58       ` [PATCH v2 7/8] travis-ci: save prove state for the 32 bit Linux build SZEDER Gábor
2017-12-16 12:58       ` [PATCH v2 8/8] travis-ci: only print test failures if there are test results available SZEDER Gábor
2017-12-16 18:32         ` Eric Sunshine
2017-12-16 22:48           ` [PATCH v2 8/8] travis-ci: only print test failures if there are SZEDER Gábor
2017-12-17  0:02             ` Eric Sunshine
2017-12-16 16:43       ` [PATCH v2 1/8] travis-ci: use 'set -x' in select 'ci/*' scripts for extra tracing Johannes Schindelin
2017-12-18 21:53       ` Lars Schneider
2017-12-18 21:46     ` [PATCH v2 0/8] Travis CI cleanups Lars Schneider
2017-12-27 16:35     ` [PATCH v3 0/4] Rest of the Travis CI fixes SZEDER Gábor
2017-12-27 16:36       ` [PATCH v3 1/4] travis-ci: fine tune the use of 'set -x' in 'ci/*' scripts SZEDER Gábor
2017-12-27 18:35         ` Lars Schneider
2017-12-27 16:36       ` [PATCH v3 2/4] travis-ci: don't install default addon packages for the 32 bit Linux build SZEDER Gábor
2017-12-27 18:41         ` Lars Schneider
2017-12-27 16:36       ` [PATCH v3 3/4] travis-ci: save prove state " SZEDER Gábor
2017-12-27 18:46         ` Lars Schneider
2017-12-27 21:42           ` SZEDER Gábor
2017-12-28 11:17             ` Lars Schneider
2017-12-27 16:36       ` [PATCH v3 4/4] travis-ci: only print test failures if there are test results available SZEDER Gábor
2017-12-27 18:52         ` Lars Schneider

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171211233446.10596-3-szeder.dev@gmail.com \
    --to=szeder.dev@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=larsxschneider@gmail.com \
    --cc=t.gummerer@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).