All of lore.kernel.org
 help / color / mirror / Atom feed
From: "SZEDER Gábor" <szeder.dev@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Johannes Schindelin" <johannes.schindelin@gmx.de>,
	"Lars Schneider" <larsxschneider@gmail.com>,
	"Sebastian Staudt" <koraktor@gmail.com>,
	git@vger.kernel.org, "SZEDER Gábor" <szeder.dev@gmail.com>
Subject: [PATCH] travis-ci: install packages in 'ci/install-dependencies.sh'
Date: Thu,  1 Nov 2018 12:47:14 +0100	[thread overview]
Message-ID: <20181101114714.14710-1-szeder.dev@gmail.com> (raw)
In-Reply-To: <20181026013949.GN30222@szeder.dev>

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>
---

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


  reply	other threads:[~2018-11-01 11:47 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-25 17:41 [PATCH] travis-ci: no longer use containers Sebastian Staudt
2018-10-26  0:09 ` Junio C Hamano
2018-10-26  1:39   ` SZEDER Gábor
2018-11-01 11:47     ` SZEDER Gábor [this message]
2018-11-02  2:25       ` [PATCH] travis-ci: install packages in 'ci/install-dependencies.sh' Junio C Hamano
2018-11-08 21:51         ` SZEDER Gábor
2018-11-09  2:59           ` Junio C Hamano
2018-11-09 12:08             ` Johannes Schindelin
2018-10-26  5:06   ` [PATCH] travis-ci: no longer use containers Sebastian Staudt

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

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

  git send-email \
    --in-reply-to=20181101114714.14710-1-szeder.dev@gmail.com \
    --to=szeder.dev@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=johannes.schindelin@gmx.de \
    --cc=koraktor@gmail.com \
    --cc=larsxschneider@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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.