summaryrefslogtreecommitdiffstats
path: root/.travis.yml
diff options
context:
space:
mode:
authorRuediger Meier2014-06-02 00:58:01 +0200
committerRuediger Meier2014-06-06 16:18:44 +0200
commitdd68764c592dfc9992e1be333b2ce4bbd00eecb5 (patch)
tree6ee8789fb39ce1960f90dd94458885142dd84a0e /.travis.yml
parentlibsmartcols: add debug messages (diff)
downloadkernel-qcow2-util-linux-dd68764c592dfc9992e1be333b2ce4bbd00eecb5.tar.gz
kernel-qcow2-util-linux-dd68764c592dfc9992e1be333b2ce4bbd00eecb5.tar.xz
kernel-qcow2-util-linux-dd68764c592dfc9992e1be333b2ce4bbd00eecb5.zip
travis-ci: refactor and add .travis-functions.sh
Travis yaml syntax, where we can only use shell one-liners, is awful and ugly. We add a real shell script and source it from .travis.yml. This commit squashes a lot changes because we don't want to pollute history with this meta CI stuff. Highlights of this commit: - enable make distcheck - cleanup configure options (enable all progs, with python and docs) - shorter config.log dump - out-of-tree build supported - workaround broken libtool on travis host - now it's easy to add temporary debugging stuff - testing locally is possible now What are we testing now: - gcc and clang compiler - configure mostly with --enable-all-programs, --with-python and --enable-gtk-doc - make check with and without root permissions - make distcheck - make install (with and without --prefix as well as DESTDIR=...) - usually we always build in-tree but distcheck does out-of-tree What do we want/expect at all: - This travis setup is intended to always work without fixing or updating this build script all the time. Thats why we only use a few configure flags. - We want to avoid predictable failures on travis host to not make developers tired of this machinery. Any tested feature which is known to be (sometimes) broken should be fixed or skipped as soon as possible. - If this works like wanted then in future almost any point in master commit history should at least survive the build and common tests on this reference host/arch. Moreover we will have a comparable, deterministic build log history. This could make bisecting real bugs easier. - It's not our goal to test any kind of config flags, host setup and arch combination. This would be done better by external build scripts which do not live within the project itself. - Of course this machinery can be also used to reproduce bugs with more exotic config and host setup by pushing a debug branch with modified travis script to github. Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml34
1 files changed, 8 insertions, 26 deletions
diff --git a/.travis.yml b/.travis.yml
index a4dde3ad2..a1a15e48e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,44 +10,26 @@ compiler:
env:
- MAKE_CHECK="nonroot"
- MAKE_CHECK="root"
+ - MAKE_CHECK="dist"
install:
# install some packages from Ubuntu's default sources
- sudo apt-get -qq update
- sudo apt-get install -qq
bc
+ dnsutils
+ libcap-ng-dev
libpam-dev
libudev-dev
gtk-doc-tools
+ ntp
before_script:
- - ./autogen.sh
+ - source ./.travis-functions.sh
+ - travis_before_script
script:
- - export MAKE="make -j4"
- # make distcheck still does not work on travis
- - (./configure
- --disable-use-tty-group
- --enable-chfn-chsh
- --enable-line
- --enable-mesg
- --enable-newgrp
- --enable-reset
- --enable-tunelp
- --enable-vipw
- --enable-write
- ; err=$?; cat config.log; exit $err)
- && $MAKE
- && if [ "$MAKE_CHECK" = "nonroot" ]; then
- $MAKE check
- && $MAKE install DESTDIR=/tmp/dest
- && $MAKE dist;
- elif [ "$MAKE_CHECK" = "root" ]; then
- $MAKE check TS_COMMAND="true"
- && sudo -E $MAKE check TS_OPTS='--parallel=1';
- fi
+ - travis_script
after_script:
- - test -d tests/diff
- && echo "cat test diffs:"
- && find tests/diff -type f | xargs -r cat
+ - travis_after_script