travis-ci: install packages in 'ci/install-dependencies.sh'
authorSZEDER Gábor <szeder.dev@gmail.com>
Thu, 1 Nov 2018 11:47:14 +0000 (12:47 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 2 Nov 2018 02:28:19 +0000 (11:28 +0900)
Ever since we started using Travis CI, we specified the list of
packages to install in '.travis.yml' via the APT addon. While running
our builds on Travis CI's container-based infrastructure we didn't
have another choice, because that environment didn't support 'sudo',
and thus we didn't have permission to install packages ourselves. With
the switch to the VM-based infrastructure in the previous patch we do
get a working 'sudo', so we can install packages by running 'sudo
apt-get -y install ...' as well.

Let's make use of this and install necessary packages in
'ci/install-dependencies.sh', so all the dependencies (i.e. both
packages and "non-packages" (P4 and Git-LFS)) are handled in the same
file. Install gcc-8 only in the 'linux-gcc' build job; so far it has
been unnecessarily installed in the 'linux-clang' build job as well.
Print the versions of P4 and Git-LFS conditionally, i.e. only when
they have been installed; with this change even the static analysis
and documentation build jobs start using 'ci/install-dependencies.sh'
to install packages, and neither of these two build jobs depend on and
thus install those.

This change will presumably be beneficial for the upcoming Azure
Pipelines integration [1]: preliminary versions of that patch series
run a couple of 'apt-get' commands to install the necessary packages
before running 'ci/install-dependencies.sh', but with this patch it
will be sufficient to run only 'ci/install-dependencies.sh'.

[1] https://public-inbox.org/git/1a22efe849d6da79f2c639c62a1483361a130238.1539598316.git.gitgitgadget@gmail.com/

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
.travis.yml
ci/install-dependencies.sh
index 8d2499739eb4bbeb17065aef3fc8af54c9302d0b..a5a82d6832563d48d8e7895e9a9656cea43b97b2 100644 (file)
@@ -12,16 +12,6 @@ compiler:
   - clang
   - gcc
 
-addons:
-  apt:
-    sources:
-    - ubuntu-toolchain-r-test
-    packages:
-    - language-pack-is
-    - git-svn
-    - apache2
-    - gcc-8
-
 matrix:
   include:
     - env: jobname=GETTEXT_POISON
@@ -50,22 +40,11 @@ matrix:
     - env: jobname=StaticAnalysis
       os: linux
       compiler:
-      addons:
-        apt:
-          packages:
-          - coccinelle
-      before_install:
       script: ci/run-static-analysis.sh
       after_failure:
     - env: jobname=Documentation
       os: linux
       compiler:
-      addons:
-        apt:
-          packages:
-          - asciidoc
-          - xmlto
-      before_install:
       script: ci/test-documentation.sh
       after_failure:
 
index 75a9fd2475168fce9e229ce44db2808227700e17..06c3546e1ed4e1a78cea4d7a1801145066a895d8 100755 (executable)
@@ -10,6 +10,15 @@ LFSWHENCE=https://github.com/github/git-lfs/releases/download/v$LINUX_GIT_LFS_VE
 
 case "$jobname" in
 linux-clang|linux-gcc)
+       sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
+       sudo apt-get -q update
+       sudo apt-get -q -y install language-pack-is git-svn apache2
+       case "$jobname" in
+       linux-gcc)
+               sudo apt-get -q -y install gcc-8
+               ;;
+       esac
+
        mkdir --parents "$P4_PATH"
        pushd "$P4_PATH"
                wget --quiet "$P4WHENCE/bin.linux26x86_64/p4d"
@@ -32,11 +41,25 @@ osx-clang|osx-gcc)
        brew link --force gettext
        brew install caskroom/cask/perforce
        ;;
+StaticAnalysis)
+       sudo apt-get -q update
+       sudo apt-get -q -y install coccinelle
+       ;;
+Documentation)
+       sudo apt-get -q update
+       sudo apt-get -q -y install asciidoc xmlto
+       ;;
 esac
 
-echo "$(tput setaf 6)Perforce Server Version$(tput sgr0)"
-p4d -V | grep Rev.
-echo "$(tput setaf 6)Perforce Client Version$(tput sgr0)"
-p4 -V | grep Rev.
-echo "$(tput setaf 6)Git-LFS Version$(tput sgr0)"
-git-lfs version
+if type p4d >/dev/null && type p4 >/dev/null
+then
+       echo "$(tput setaf 6)Perforce Server Version$(tput sgr0)"
+       p4d -V | grep Rev.
+       echo "$(tput setaf 6)Perforce Client Version$(tput sgr0)"
+       p4 -V | grep Rev.
+fi
+if type git-lfs >/dev/null
+then
+       echo "$(tput setaf 6)Git-LFS Version$(tput sgr0)"
+       git-lfs version
+fi