From: Claudio André <claudioandre.br@xxxxxxxxx> It is possible to test libvirt using other distros in Travis via Docker; including (but not limited to) Fedora and Ubuntu. --- https://travis-ci.org/claudioandre/libvirt/builds/237995646 .travis.yml | 19 ++++++------- tests/travis-ci.sh | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+), 10 deletions(-) create mode 100755 tests/travis-ci.sh diff --git a/.travis.yml b/.travis.yml index 5a3e765..e4d4888 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,6 @@ sudo: false language: c dist: precise -compiler: - - gcc cache: ccache addons: apt: @@ -62,15 +60,14 @@ git: before_install: - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update && brew install gnutls libgcrypt yajl gettext rpcgen ; fi -# the custom PATH is just to pick up OS-X homebrew & its harmless on Linux -before_script: - - PATH="/usr/local/opt/gettext/bin:/usr/local/opt/rpcgen/bin:$PATH" ./autogen.sh script: - - VIR_TEST_DEBUG=1 make -j3 && make -j3 syntax-check && make -j3 check + - tests/travis-ci.sh # Environments here are run in addition to the main environment defined above matrix: include: + - compiler: gcc + dist: precise - compiler: clang dist: precise - compiler: clang @@ -79,10 +76,12 @@ matrix: dist: trusty - compiler: clang os: osx - script: - # many unit tests fail & so does syntax-check, so skip for now - # one day we must fix it though.... - - make -j3 + - services: docker + env: IMAGE=ubuntu:17.04 CC=gcc + dist: trusty + - services: docker + env: IMAGE=ubuntu:17.04 CC=clang + dist: trusty after_failure: - echo '============================================================================' diff --git a/tests/travis-ci.sh b/tests/travis-ci.sh new file mode 100755 index 0000000..e63d509 --- /dev/null +++ b/tests/travis-ci.sh @@ -0,0 +1,80 @@ +#!/bin/bash -e + +function do_Install_Dependencies(){ + echo + echo '-- Installing Dependencies --' + + if [[ $DISTRO = "ubuntu:17.04" ]]; then + apt-get update -qq + apt-get -y -qq install \ + build-essential git clang autoconf libtool libcmpicppimpl0 gettext \ + xsltproc autopoint libxml2-dev libncurses5-dev libreadline-dev \ + zlib1g-dev libgnutls28-dev libgcrypt11-dev libavahi-client-dev libsasl2-dev \ + libxen-dev lvm2 libgcrypt11-dev libparted0-dev libdevmapper-dev uuid-dev \ + libudev-dev libpciaccess-dev libcap-ng-dev libnl-3-dev libnl-route-3-dev \ + libyajl-dev libpcap0.8-dev libnuma-dev libnetcf-dev libaudit-dev \ + libxml2-utils libapparmor-dev dnsmasq-base librbd-dev w3c-markup-validator kmod > /dev/null + else + echo "Please, change 'tests/travis-ci.sh' to add the needed dependencies for $DISTRO." + exit 1 + fi +} + + +function do_Show_Info(){ + echo + echo '-- Environment --' + echo "Running on Docker: $DISTRO" + id + uname -a + + if [[ -n $CC ]]; then + echo + echo '-- Compiler in use --' + "$CC" --version + fi + + echo -en 'travis_fold:start:printenv\r' + echo '-- Environment Variables --' + printenv + echo -en 'travis_fold:end:printenv\r' +} + + +# ----------- Build and Test libvirt ----------- + +if [[ -n $IMAGE ]]; then + # Run docker using the selected image; then build and test + docker run --privileged --cap-add=ALL -v /lib/modules:/lib/modules \ + -v "$(pwd)":/cwd -e CC=$CC -e DISTRO=$IMAGE "$IMAGE" sh -e -c " \ + cd /cwd; \ + tests/travis-ci.sh" + exit $? +fi + +if [[ -n $DISTRO ]]; then + do_Install_Dependencies + do_Show_Info +fi + +# Build and test +if [[ "$TRAVIS_OS_NAME" = "osx" ]]; then + echo -en 'travis_fold:start:autogen\r' + echo '-- Running ./autogen.sh --' + # The custom PATH is just to pick up OS-X homebrew + PATH="/usr/local/opt/gettext/bin:/usr/local/opt/rpcgen/bin:$PATH" ./autogen.sh + echo -en 'travis_fold:end:autogen\r' + + # many unit tests fail & so does syntax-check, so skip for now + # one day we must fix it though.... + make -j3 +else + echo -en 'travis_fold:start:autogen\r' + echo '-- Running ./autogen.sh --' + ./autogen.sh + echo -en 'travis_fold:end:autogen\r' + + VIR_TEST_DEBUG=1 make -j3 && make -j3 syntax-check && make -j3 check +fi + +exit $? -- 2.11.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list