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@xxxxxxxxx/ Signed-off-by: SZEDER Gábor <szeder.dev@xxxxxxxxx> --- This patch should go on top of 'ss/travis-ci-force-vm-mode'. I'm not sure about the last paragraph, because: - It talks about presumed benefits for a currently still work-in-progress patch series of an other contributor, and I'm not really sure that that's a good thing. Perhaps I should have rather put it below the '---'. - I'm confused about the name of this Azure thing. The cover letter mentions "Azure Pipelines", the file is called 'azure-pipelines.yml', but the relevant patch I link to talks about "Azure DevOps" in the commit message. Anyway, keep that last paragraph or drop it as you see fit. .travis.yml | 21 --------------------- ci/install-dependencies.sh | 35 +++++++++++++++++++++++++++++------ 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8d2499739e..a5a82d6832 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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: diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh index 75a9fd2475..06c3546e1e 100755 --- a/ci/install-dependencies.sh +++ b/ci/install-dependencies.sh @@ -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 -- 2.19.1.838.g101e68a972