[Mesa-dev] [PATCH] travis: Initial import of travis instructions.

Eric Anholt eric at anholt.net
Tue Nov 24 13:10:53 PST 2015


Rob Clark <robdclark at gmail.com> writes:

> On Tue, Nov 24, 2015 at 2:10 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>> On Tue, Nov 24, 2015 at 2:04 PM, Eric Anholt <eric at anholt.net> wrote:
>>> This just builds/installs our dependencies, and runs "make check".  I'm
>>> interested in integrating more tests into it, but this seems like a pretty
>>> easy first start.
>>>
>>> If your personal branches of Mesa are on github, you can enable it on your
>>> account and the repository (see
>>> https://docs.travis-ci.com/user/for-beginners), then any pushes you do
>>> will get their HEAD commit tested, and any pull requests to your tree will
>>> get their merge commits tested.
>>> ---
>>>
>>> I'd really like to have *some* sort of publicly available CI for
>>> people hacking on Mesa.  We've all seen how many times make check has
>>> been broken, so this was an easy start.  Travis doesn't seem optimal,
>>> since it doesn't test each commit, but I think it's better than
>>> nothing, and the cost is this little file and bumping the versions of
>>> dependencies to download when we update configure.ac requirements.
>>>
>>>  .travis.yml | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>>  1 file changed, 92 insertions(+)
>>>  create mode 100644 .travis.yml
>>>
>>> diff --git a/.travis.yml b/.travis.yml
>>> new file mode 100644
>>> index 0000000..31cd5c2
>>> --- /dev/null
>>> +++ b/.travis.yml
>>> @@ -0,0 +1,92 @@
>>> +language: c
>>> +
>>> +sudo: false
>>> +
>>> +cache:
>>> +  directories:
>>> +    - $HOME/.ccache
>>> +
>>> +addons:
>>> +  apt:
>>> +    packages:
>>> +      - libdrm-dev
>>> +      - libudev-dev
>>> +      - x11proto-xf86vidmode-dev
>>> +      - libexpat1-dev
>>> +      - libxcb-dri2-0-dev
>>> +      - libx11-xcb-dev
>>> +      - llvm-3.4-dev
>>> +
>>> +env:
>>> +  global:
>>> +    - XORG_RELEASES=http://xorg.freedesktop.org/releases/individual
>>> +    - XCB_RELEASES=http://xcb.freedesktop.org/dist
>>> +    - XORGMACROS_VERSION=util-macros-1.19.0
>>> +    - GLPROTO_VERSION=glproto-1.4.17
>>> +    - DRI2PROTO_VERSION=dri2proto-2.8
>>> +    - DRI3PROTO_VERSION=dri3proto-1.0
>>> +    - PRESENTPROTO_VERSION=presentproto-1.0
>>> +    - LIBPCIACCESS_VERSION=libpciaccess-0.13.4
>>> +    - LIBDRM_VERSION=libdrm-2.4.65
>>> +    - XCBPROTO_VERSION=xcb-proto-1.11
>>> +    - LIBXCB_VERSION=libxcb-1.11
>>> +    - LIBXSHMFENCE_VERSION=libxshmfence-1.2
>>> +    - PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig
>>> +
>>> +install:
>>> +  - export PATH="/usr/lib/ccache:$PATH"
>>> +  - pip install --user mako
>>> +
>>> +  # Install dependencies where we require specific versions (or where
>>> +  # disallowed by Travis CI's package whitelisting).
>>> +
>>> +  - wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
>>> +  - tar -jxvf $XORGMACROS_VERSION.tar.bz2
>>> +  - (cd $XORGMACROS_VERSION && ./configure --prefix=$HOME/prefix && make install)
>>> +
>>> +  - wget $XORG_RELEASES/proto/$GLPROTO_VERSION.tar.bz2
>>> +  - tar -jxvf $GLPROTO_VERSION.tar.bz2
>>> +  - (cd $GLPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
>>> +
>>> +  - wget $XORG_RELEASES/proto/$DRI2PROTO_VERSION.tar.bz2
>>> +  - tar -jxvf $DRI2PROTO_VERSION.tar.bz2
>>> +  - (cd $DRI2PROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
>>> +
>>> +  - wget $XORG_RELEASES/proto/$DRI3PROTO_VERSION.tar.bz2
>>> +  - tar -jxvf $DRI3PROTO_VERSION.tar.bz2
>>> +  - (cd $DRI3PROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
>>> +
>>> +  - wget $XORG_RELEASES/proto/$PRESENTPROTO_VERSION.tar.bz2
>>> +  - tar -jxvf $PRESENTPROTO_VERSION.tar.bz2
>>> +  - (cd $PRESENTPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
>>> +
>>> +  - wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
>>> +  - tar -jxvf $XCBPROTO_VERSION.tar.bz2
>>> +  - (cd $XCBPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
>>> +
>>> +  - wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
>>> +  - tar -jxvf $LIBXCB_VERSION.tar.bz2
>>> +  - (cd $LIBXCB_VERSION && ./configure --prefix=$HOME/prefix && make install)
>>> +
>>> +  - wget $XORG_RELEASES/lib/$LIBPCIACCESS_VERSION.tar.bz2
>>> +  - tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2
>>> +  - (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
>>> +
>>> +  - wget http://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
>>> +  - tar -jxvf $LIBDRM_VERSION.tar.bz2
>>> +  - (cd $LIBDRM_VERSION && ./configure --prefix=$HOME/prefix && make install)
>>> +
>>> +  - wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
>>> +  - tar -jxvf $LIBXSHMFENCE_VERSION.tar.bz2
>>> +  - (cd $LIBXSHMFENCE_VERSION && ./configure --prefix=$HOME/prefix && make install)
>>> +
>>> +# Disabled LLVM (and therefore r300 and r600) because the build fails
>>> +# with "undefined reference to `clock_gettime'" and "undefined
>>> +# reference to `setupterm'" in llvmpipe.
>>> +script:
>>> +  - ./autogen.sh --enable-debug
>>> +    --disable-gallium-llvm
>>> +    --with-egl-platforms=x11,drm
>>> +    --with-dri-drivers=i915,i965,radeon,r200,swrast,nouveau
>>> +    --with-gallium-drivers=svga,swrast,vc4,virgl
>>
>> Any reason not to add freedreno and nouveau in here?
>>
>> Too bad these packages don't all have "latest" symlinks...
>
> hmm, I was going to say that tinderbox can figure out how to just
> build latest (plus we at one point had builders for several different
> arch's for xserver and mesa, etc..)
>
> but then I noticed that http://tinderbox.x.org/ is in kind of dire shape.. :-(

I've run tinderbox servers before.  It's a bunch of work, and then
nobody looks at it anyway, including me.  It also only tests your pushes
once they've hit master, which to me misses the whole point.

The github integration means that people doing things on github see CI
state in their interfaces (well, in pull requests.  If you just want
current state, you have to go to the travis-ci.org dashboard).  It also
sends me emails when my branch pushes fail.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20151124/6e4559c9/attachment.sig>


More information about the mesa-dev mailing list