[pulseaudio-discuss] [PATCH] Add a .travis.yml for Travis CI

Tanu Kaskinen tanu.kaskinen at linux.intel.com
Thu Apr 16 01:53:01 PDT 2015


On Wed, 2015-04-15 at 12:43 -0300, Felipe Sateler wrote:
> On 15 April 2015 at 12:16, Tanu Kaskinen <tanu.kaskinen at linux.intel.com> wrote:
> > On Tue, 2015-04-14 at 20:32 -0300, Felipe Sateler wrote:
> >> From: Arun Raghavan <arun at accosted.net>
> >>
> >> Currently uses Ubuntu's build dependencies, and runs make check and
> >> check-daemon.
> >>
> >> Based on Arun Raghavan's travis file. Added trusty repositories to get
> >> newer libs.
> >
> > If there are failures, where are they reported?
> 
> It can be configured via the travis.yml file. See for example the
> csound file, which also includes coverity integration (I planned to
> add that as a follow up patch)[1]. I can re-post this patch pointing
> notifications to this list.

That sounds good.

> By default travis sends a mail whenever the build breaks, and when the
> build is fixed after a break. It sends the mail to the commit author,
> if the author has write access to the github repository (to prevent
> github forks from mailing the upstream authors). More information at
> [2].
> 
> [1] https://github.com/csound/csound/blob/develop/.travis.yml
> [2] http://docs.travis-ci.com/user/notifications/
> 
> >
> >> ---
> >>  .travis.yml | 21 +++++++++++++++++++++
> >>  1 file changed, 21 insertions(+)
> >>  create mode 100644 .travis.yml
> >>
> >>
> >> For this to be run automatically someone that controls the pulseaudio
> >> name in github must link the repository to travis.
> >>
> >> diff --git a/.travis.yml b/.travis.yml
> >> new file mode 100644
> >> index 0000000..a869372
> >> --- /dev/null
> >> +++ b/.travis.yml
> >> @@ -0,0 +1,21 @@
> >> +language: c
> >> +
> >> +compiler:
> >> +  - gcc
> >> + #- clang
> >> +
> >> +before_install:
> >> +  - sudo sh -c 'echo "deb http://archive.ubuntu.com/ubuntu/ trusty main universe\ndeb-src http://archive.ubuntu.com/ubuntu/ trusty main universe" >> /etc/apt/sources.list'
> >> +  - sudo apt-get -qq update
> >> +install:
> >> +  - sudo apt-get -qq build-dep pulseaudio
> >> +  - sudo apt-get -qq install libcap-dev libjson-c-dev autopoint git-core autoconf automake gcc dh-autoreconf check intltool
> >
> > Why is the second command needed? Shouldn't "apt-get build-dep" already
> > get everything needed (well, except git)?
> 
> The edit-try loop is fairly slow since you have to wait for the travis
> build to happen, which is why I didn't attempt to prune the list.

Can you give a short overview of the edit-try loop? After this is patch
is applied, and Travis does automatic builds, how do contributors test
their changes before submitting a patch, if they want to change this
file?

> But some reasons for installing packages explicitly:
> 
> 1. Not in build-dep (git-core, check)
> 2. Version upgrade after adding the trusty repositories. The build
> failed if I didn't upgrade the autotools before building (not sure
> why).

So "apt-get build-dep" doesn't automatically upgrade all dependencies if
they're already installed? And you didn't want to do a full system
upgrade from 12.04 to 14.04.

> 3. Me being lazy. dh-autoreconf is not used but I know it brings in
> all the required deps for running autotools (we use that in the debian
> package).
> 
> Some pruning may be possible, but perhaps it is better to scrap the
> build-dep and be explicit on what is depended upon.

Having an explicit list of the build dependencies seems like the best
way forward.

-- 
Tanu



More information about the pulseaudio-discuss mailing list