.travis.yml: migrate to container builds
diff mbox

Message ID 1452854709-12855-1-git-send-email-alex.bennee@linaro.org
State New
Headers show

Commit Message

Alex Bennée Jan. 15, 2016, 10:45 a.m. UTC
This moves the Travis tests from their old legacy VM
infrastructure (which only seems to run 5-6 jobs at once) to their new
container based approach.

The principle difference is there is no sudo in the containers so all
packages are installed using the apt add-on. This means one of the build
combinations can be dropped as it was only for checking the build with
additional packages.

I've disabled the user-space tracing build until the dependant packages
go through the Travis package white-listing process.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 .travis.yml | 49 +++++++++++++++++++++++++++++++++----------------
 1 file changed, 33 insertions(+), 16 deletions(-)

Comments

David Gibson Jan. 19, 2016, 6:15 a.m. UTC | #1
On Fri, Jan 15, 2016 at 10:45:09AM +0000, Alex Bennée wrote:
> This moves the Travis tests from their old legacy VM
> infrastructure (which only seems to run 5-6 jobs at once) to their new
> container based approach.
> 
> The principle difference is there is no sudo in the containers so all
> packages are installed using the apt add-on. This means one of the build
> combinations can be dropped as it was only for checking the build with
> additional packages.
> 
> I've disabled the user-space tracing build until the dependant packages
> go through the Travis package white-listing process.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

Tested-by: David Gibson <david@gibson.dropbear.id.au>

Is it safe to just drop that build combination, or should we instead
be doing something else to test the build _without_ those extra
packages?


[snip]
> @@ -86,10 +103,10 @@ matrix:
>      - env: TARGETS=i386-softmmu,x86_64-softmmu
>             EXTRA_CONFIG="--enable-trace-backends=ftrace"
>        compiler: gcc
> -    - env: TARGETS=i386-softmmu,x86_64-softmmu
> -          EXTRA_PKGS="liblttng-ust-dev liburcu-dev"
> -          EXTRA_CONFIG="--enable-trace-backends=ust"
> -      compiler: gcc
> +    # UST backend disabled until liblttng-ust-dev pkg white-listed
> +    #- env: TARGETS=i386-softmmu,x86_64-softmmu
> +    #       EXTRA_CONFIG="--enable-trace-backends=ust"
> +    #  compiler: gcc

This comment is a bit confusing to me, since the apt addon package
list already seems to include liblttng-ust-dev.

>      - env: TARGETS=i386-softmmu,x86_64-softmmu
>             EXTRA_CONFIG="--enable-modules"
>        compiler: gcc
Alex Bennée Jan. 19, 2016, 7:22 a.m. UTC | #2
David Gibson <david@gibson.dropbear.id.au> writes:

> On Fri, Jan 15, 2016 at 10:45:09AM +0000, Alex Bennée wrote:
>> This moves the Travis tests from their old legacy VM
>> infrastructure (which only seems to run 5-6 jobs at once) to their new
>> container based approach.
>>
>> The principle difference is there is no sudo in the containers so all
>> packages are installed using the apt add-on. This means one of the build
>> combinations can be dropped as it was only for checking the build with
>> additional packages.
>>
>> I've disabled the user-space tracing build until the dependant packages
>> go through the Travis package white-listing process.
>>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>
> Tested-by: David Gibson <david@gibson.dropbear.id.au>
>
> Is it safe to just drop that build combination, or should we instead
> be doing something else to test the build _without_ those extra
> packages?

Hmm, currently there doesn't seem to be a way to do this with the Travis
infrastructure as the packages are no longer part of a matrix.

>
>
> [snip]
>> @@ -86,10 +103,10 @@ matrix:
>>      - env: TARGETS=i386-softmmu,x86_64-softmmu
>>             EXTRA_CONFIG="--enable-trace-backends=ftrace"
>>        compiler: gcc
>> -    - env: TARGETS=i386-softmmu,x86_64-softmmu
>> -          EXTRA_PKGS="liblttng-ust-dev liburcu-dev"
>> -          EXTRA_CONFIG="--enable-trace-backends=ust"
>> -      compiler: gcc
>> +    # UST backend disabled until liblttng-ust-dev pkg white-listed
>> +    #- env: TARGETS=i386-softmmu,x86_64-softmmu
>> +    #       EXTRA_CONFIG="--enable-trace-backends=ust"
>> +    #  compiler: gcc
>
> This comment is a bit confusing to me, since the apt addon package
> list already seems to include liblttng-ust-dev.

It's in the list but still awaiting whitelisting by Travis:

https://github.com/travis-ci/apt-package-whitelist/issues/2258

>
>>      - env: TARGETS=i386-softmmu,x86_64-softmmu
>>             EXTRA_CONFIG="--enable-modules"
>>        compiler: gcc


--
Alex Bennée
David Gibson Jan. 20, 2016, 2:29 a.m. UTC | #3
On Tue, Jan 19, 2016 at 07:22:07AM +0000, Alex Bennée wrote:
> 
> David Gibson <david@gibson.dropbear.id.au> writes:
> 
> > On Fri, Jan 15, 2016 at 10:45:09AM +0000, Alex Bennée wrote:
> >> This moves the Travis tests from their old legacy VM
> >> infrastructure (which only seems to run 5-6 jobs at once) to their new
> >> container based approach.
> >>
> >> The principle difference is there is no sudo in the containers so all
> >> packages are installed using the apt add-on. This means one of the build
> >> combinations can be dropped as it was only for checking the build with
> >> additional packages.
> >>
> >> I've disabled the user-space tracing build until the dependant packages
> >> go through the Travis package white-listing process.
> >>
> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> >
> > Tested-by: David Gibson <david@gibson.dropbear.id.au>
> >
> > Is it safe to just drop that build combination, or should we instead
> > be doing something else to test the build _without_ those extra
> > packages?
> 
> Hmm, currently there doesn't seem to be a way to do this with the Travis
> infrastructure as the packages are no longer part of a matrix.

Ok, but would it work to explicitly disable use of the packages in
some of the builds?

> > [snip]
> >> @@ -86,10 +103,10 @@ matrix:
> >>      - env: TARGETS=i386-softmmu,x86_64-softmmu
> >>             EXTRA_CONFIG="--enable-trace-backends=ftrace"
> >>        compiler: gcc
> >> -    - env: TARGETS=i386-softmmu,x86_64-softmmu
> >> -          EXTRA_PKGS="liblttng-ust-dev liburcu-dev"
> >> -          EXTRA_CONFIG="--enable-trace-backends=ust"
> >> -      compiler: gcc
> >> +    # UST backend disabled until liblttng-ust-dev pkg white-listed
> >> +    #- env: TARGETS=i386-softmmu,x86_64-softmmu
> >> +    #       EXTRA_CONFIG="--enable-trace-backends=ust"
> >> +    #  compiler: gcc
> >
> > This comment is a bit confusing to me, since the apt addon package
> > list already seems to include liblttng-ust-dev.
> 
> It's in the list but still awaiting whitelisting by Travis:
> 
> https://github.com/travis-ci/apt-package-whitelist/issues/2258

Ah, ok.  I'm kind of surprised that Travis passes a build requesting a
non-whitelisted package.

Do we want to wait until that's approved before merging?  I don't have
a strong opinion either way.

Patch
diff mbox

diff --git a/.travis.yml b/.travis.yml
index 6ca0260..2fef5dc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,9 +1,37 @@ 
+sudo: false
 language: c
 python:
   - "2.4"
 compiler:
   - gcc
   - clang
+addons:
+  apt:
+    packages:
+      - libaio-dev
+      - libattr1-dev
+      - libbrlapi-dev
+      - libcap-ng-dev
+      - libgnutls-dev
+      - libgtk-3-dev
+      - libiscsi-dev
+      - liblttng-ust-dev
+      - libncurses5-dev
+      - libnss3-dev
+      - libpixman-1-dev
+      - libpng12-dev
+      - librados-dev
+      - libsdl1.2-dev
+      - libseccomp-dev
+      - libspice-protocol-dev
+      - libspice-server-dev
+      - libssh2-1-dev
+      - liburcu-dev
+      - libusb-1.0-0-dev
+      - libvte-2.90-dev
+      - sparse
+      - uuid-dev
+
 notifications:
   irc:
     channels:
@@ -14,11 +42,6 @@  env:
   global:
     - TEST_CMD=""
     - EXTRA_CONFIG=""
-    # Development packages, EXTRA_PKGS saved for additional builds
-    - CORE_PKGS="libusb-1.0-0-dev libiscsi-dev librados-dev libncurses5-dev"
-    - NET_PKGS="libseccomp-dev libgnutls-dev libssh2-1-dev  libspice-server-dev libspice-protocol-dev libnss3-dev"
-    - GUI_PKGS="libgtk-3-dev libvte-2.90-dev libsdl1.2-dev libpng12-dev libpixman-1-dev"
-    - EXTRA_PKGS=""
   matrix:
     # Group major targets together with their linux-user counterparts
     - TARGETS=alpha-softmmu,alpha-linux-user
@@ -43,8 +66,6 @@  git:
 before_install:
   - wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
   - git submodule update --init --recursive
-  - sudo apt-get update -qq
-  - sudo apt-get install -qq ${CORE_PKGS} ${NET_PKGS} ${GUI_PKGS} ${EXTRA_PKGS}
 before_script:
   - ./configure --target-list=${TARGETS} --enable-debug-tcg ${EXTRA_CONFIG}
 script:
@@ -64,16 +85,12 @@  matrix:
     - env: TARGETS=i386-softmmu,x86_64-softmmu
            EXTRA_CONFIG="--enable-debug --enable-tcg-interpreter"
       compiler: gcc
-    # All the extra -dev packages
-    - env: TARGETS=i386-softmmu,x86_64-softmmu
-           EXTRA_PKGS="libaio-dev libcap-ng-dev libattr1-dev libbrlapi-dev uuid-dev libusb-1.0.0-dev"
-      compiler: gcc
     # Currently configure doesn't force --disable-pie
     - env: TARGETS=i386-softmmu,x86_64-softmmu
            EXTRA_CONFIG="--enable-gprof --enable-gcov --disable-pie"
       compiler: gcc
+    # Sparse
     - env: TARGETS=i386-softmmu,x86_64-softmmu
-           EXTRA_PKGS="sparse"
            EXTRA_CONFIG="--enable-sparse"
       compiler: gcc
     # All the trace backends (apart from dtrace)
@@ -86,10 +103,10 @@  matrix:
     - env: TARGETS=i386-softmmu,x86_64-softmmu
            EXTRA_CONFIG="--enable-trace-backends=ftrace"
       compiler: gcc
-    - env: TARGETS=i386-softmmu,x86_64-softmmu
-          EXTRA_PKGS="liblttng-ust-dev liburcu-dev"
-          EXTRA_CONFIG="--enable-trace-backends=ust"
-      compiler: gcc
+    # UST backend disabled until liblttng-ust-dev pkg white-listed
+    #- env: TARGETS=i386-softmmu,x86_64-softmmu
+    #       EXTRA_CONFIG="--enable-trace-backends=ust"
+    #  compiler: gcc
     - env: TARGETS=i386-softmmu,x86_64-softmmu
            EXTRA_CONFIG="--enable-modules"
       compiler: gcc