From patchwork Tue Sep 24 16:31:03 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Alex_Benn=C3=A9e?= X-Patchwork-Id: 277539 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id AC6C42C00AA for ; Wed, 25 Sep 2013 02:31:38 +1000 (EST) Received: from localhost ([::1]:47074 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VOVWR-0005Cf-JP for incoming@patchwork.ozlabs.org; Tue, 24 Sep 2013 12:31:35 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36172) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VOVW7-0005CS-Pl for qemu-devel@nongnu.org; Tue, 24 Sep 2013 12:31:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VOVW3-0001EJ-0U for qemu-devel@nongnu.org; Tue, 24 Sep 2013 12:31:15 -0400 Received: from static.88-198-71-155.clients.your-server.de ([88.198.71.155]:44160 helo=socrates.bennee.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VOVW2-0001EC-Q6 for qemu-devel@nongnu.org; Tue, 24 Sep 2013 12:31:10 -0400 Received: from localhost ([127.0.0.1] helo=sloy.cambridgebroadband.com) by socrates.bennee.com with esmtp (Exim 4.80) (envelope-from ) id 1VOVXa-0000c4-A6; Tue, 24 Sep 2013 18:32:46 +0200 From: alex.bennee@linaro.org To: qemu-devel@nongnu.org Date: Tue, 24 Sep 2013 17:31:03 +0100 Message-Id: <1380040263-7010-2-git-send-email-alex.bennee@linaro.org> X-Mailer: git-send-email 1.8.4 In-Reply-To: <1380040263-7010-1-git-send-email-alex.bennee@linaro.org> References: <1380040263-7010-1-git-send-email-alex.bennee@linaro.org> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: alex.bennee@linaro.org X-SA-Exim-Scanned: No (on socrates.bennee.com); SAEximRunCond expanded to false X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 88.198.71.155 Cc: stefanha@redhat.com Subject: [Qemu-devel] [PATCH] .travis.yml: basic compile and check recipes X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Alex Bennée 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) Signed-off-by: Alex Bennée Reviewed-by: Stefan Hajnoczi --- .travis.yml | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..89423ad --- /dev/null +++ b/.travis.yml @@ -0,0 +1,66 @@ +language: c +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 --enable-debug-tcg --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"