On 24/11/15 21:38, Rob Clark wrote:
On Tue, Nov 24, 2015 at 4:10 PM, Eric Anholt <e...@anholt.net> wrote:
Rob Clark <robdcl...@gmail.com> writes:
On Tue, Nov 24, 2015 at 2:10 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote:
On Tue, Nov 24, 2015 at 2:04 PM, Eric Anholt <e...@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.
yeah, I've run tinderbox builder too, so I know the issues..
All the same, it's probably still a good idea to resurrect tinderbox
to get build coverage on different archs.. the clever thing would be
if we could also work in piglit runs as well (ie. at least for
whatever gpu(s)) the various builders have..
It may just end up being best to have both, at least as long as this
is low effort to keep going, it doesn't hurt. And the convenience for
personal git trees is a win.
BR,
-R
I don't have any experience with buildbot.
But I also run my own Jenkins CI instance for Mesa/Piglit/Apitrace/etc
plus Travis/Appveyor for Apitrace, and I also feel there's advantages
for both.
The good thing of Jenkins is that I don't need to build everything from
scracth on every machine -- I have some jobs building the drivers/test,
and then lots of slaves testing them in parallel.
The good thing of cloud services like Travis/Appveyor is that they can
easily test every branch and pull request as noted. Plus they are
public, so you don't worry about securing your own CI deployment.
BTW, I setup Mesa with Appveyor (like Travis for Windows)
https://ci.appveyor.com/project/jrfonseca/mesa
I'll try to get that going and commited too.
The nice thing about Appveyor is that it can clone the git from
anywhere, not just GitHub.
Would it be OK to have email notifications to mesa-commits?
Jose
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev