From: alex.bennee@linaro.org
To: qemu-devel@nongnu.org
Cc: qemu-trivial@nongnu.org, stefanha@redhat.com
Subject: [Qemu-devel] [PATCH v6] .travis.yml: basic compile and check recipes
Date: Wed, 6 Nov 2013 10:43:37 +0000 [thread overview]
Message-ID: <1383734617-10516-2-git-send-email-alex.bennee@linaro.org> (raw)
In-Reply-To: <1383734617-10516-1-git-send-email-alex.bennee@linaro.org>
From: Alex Bennée <alex@bennee.com>
This adds a build matrix definition for travis-ci.org continuous
integration service. It is usable on any public repository hosted on
GitHub. Once you have created an account signed into Travis you can
enable it on selected projects via travis-ci.org/profile. Alternatively
you can configure the service hooks on GitHub via the repository
Settings tab,then Service Hooks and selecting Travis.
Once setup Travis will automatically test every push as well as any pull
requests submitted to that repository.
The build matrix is currently split by target architecture (see TARGETS
environment variable) because a full build of QEMU can take some time.
This way you get quick feedback for any obvious errors. The additional
environment variables exist to allow additional builds to tweak the
environment. These are:
EXTRA_CONFIG - extra terms passed to configure
EXTRA_PKGS - extra dev packages to install
TEST_CMD - default "make check", can be overridden
I've confined the additional stuff to x86/x86_64 for convenience.
As Travis supports clang the main builds are done twice (once for gcc
and once for clang). However clang is disabled for the debug/trace
builds for the purposes of brevity.
Other wrinkles:
* The lttng user-space tracing back-end is disabled
(it is currently horribly broken)
* The ftrace back-end doesn't run "make check"
(it requires a mounted debugfs to work)
* There are two debug enabled build (with and without TCG interpreter)
Signed-off-by: Alex Bennée <alex@bennee.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
---
.travis.yml | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 71 insertions(+)
create mode 100644 .travis.yml
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..6e60d84
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,71 @@
+language: c
+python:
+ - "2.4"
+compiler:
+ - gcc
+ - clang
+env:
+ global:
+ - TEST_CMD="make check"
+ - 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:
+ - TARGETS=alpha-softmmu,alpha-linux-user
+ - TARGETS=arm-softmmu,arm-linux-user
+ - TARGETS=cris-softmmu
+ - TARGETS=i386-softmmu,x86_64-softmmu
+ - TARGETS=lm32-softmmu
+ - TARGETS=m68k-softmmu
+ - TARGETS=microblaze-softmmu,microblazeel-softmmu
+ - TARGETS=mips-softmmu,mips64-softmmu,mips64el-softmmu,mipsel-softmmu
+ - TARGETS=moxie-softmmu
+ - TARGETS=or32-softmmu,
+ - TARGETS=ppc-softmmu,ppc64-softmmu,ppcemb-softmmu
+ - TARGETS=s390x-softmmu
+ - TARGETS=sh4-softmmu,sh4eb-softmmu
+ - TARGETS=sparc-softmmu,sparc64-softmmu
+ - TARGETS=unicore32-softmmu
+ - TARGETS=xtensa-softmmu,xtensaeb-softmmu
+before_install:
+ - git submodule update --init --recursive
+ - sudo apt-get update -qq
+ - sudo apt-get install -qq ${CORE_PKGS} ${NET_PKGS} ${GUI_PKGS} ${EXTRA_PKGS}
+script: "./configure --target-list=${TARGETS} ${EXTRA_CONFIG} && make && ${TEST_CMD}"
+matrix:
+ # We manually include a number of additional build for non-standard bits
+ include:
+ # Debug related options
+ - env: TARGETS=i386-softmmu,x86_64-softmmu
+ EXTRA_CONFIG="--enable-debug"
+ compiler: gcc
+ - env: TARGETS=i386-softmmu,x86_64-softmmu
+ EXTRA_CONFIG="--enable-debug --enable-tcg-interpreter"
+ 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
+ - env: TARGETS=i386-softmmu,x86_64-softmmu
+ EXTRA_PKGS="sparse"
+ EXTRA_CONFIG="--enable-sparse"
+ compiler: gcc
+ # All the trace backends (apart from dtrace)
+ - env: TARGETS=i386-softmmu,x86_64-softmmu
+ EXTRA_CONFIG="--enable-trace-backend=stderr"
+ compiler: gcc
+ - env: TARGETS=i386-softmmu,x86_64-softmmu
+ EXTRA_CONFIG="--enable-trace-backend=simple"
+ compiler: gcc
+ - env: TARGETS=i386-softmmu,x86_64-softmmu
+ EXTRA_CONFIG="--enable-trace-backend=ftrace"
+ TEST_CMD=""
+ compiler: gcc
+ # This disabled make check for the ftrace backend which needs more setting up
+ # Currently broken on 12.04 due to mis-packaged liburcu and changed API, will be pulled.
+ #- env: TARGETS=i386-softmmu,x86_64-softmmu
+ # EXTRA_PKGS="liblttng-ust-dev liburcu-dev"
+ # EXTRA_CONFIG="--enable-trace-backend=ust"
--
1.8.4.2
next prev parent reply other threads:[~2013-11-06 10:43 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-06 10:43 [Qemu-devel] [PATCH v6] Add .travis.yml metadata for CI alex.bennee
2013-11-06 10:43 ` alex.bennee [this message]
2013-11-06 12:37 ` [Qemu-devel] [Qemu-trivial] [PATCH v6] .travis.yml: basic compile and check recipes Michael Tokarev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1383734617-10516-2-git-send-email-alex.bennee@linaro.org \
--to=alex.bennee@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).