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

Arun Raghavan arun at accosted.net
Thu Apr 16 01:55:34 PDT 2015


On 16 April 2015 at 14:23, Tanu Kaskinen <tanu.kaskinen at linux.intel.com> wrote:
> 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?

I made a fork on Github and tried changes by pushing them to my fork.

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

I'm not a huge fan of this since we'd have to remember to update the
file each time deps change. Using the Ubuntu packaging deps seems more
pragmatic.

-- Arun


More information about the pulseaudio-discuss mailing list