From 179ee5280144bfeb96977fe2e66d8ca796d8a343 Mon Sep 17 00:00:00 2001 From: Michael Steinert Date: Thu, 5 Jul 2018 10:27:09 -0500 Subject: [PATCH] Attempt to update CI environment --- .travis-ci/after_success.sh | 5 +++ .travis-ci/install.sh | 22 ++++++++++++ .travis-ci/script.sh | 18 ++++++++++ .travis.yml | 70 +++++++++++++++++++++++-------------- 4 files changed, 89 insertions(+), 26 deletions(-) create mode 100755 .travis-ci/after_success.sh create mode 100755 .travis-ci/install.sh create mode 100755 .travis-ci/script.sh diff --git a/.travis-ci/after_success.sh b/.travis-ci/after_success.sh new file mode 100755 index 0000000..aa13f72 --- /dev/null +++ b/.travis-ci/after_success.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +if [ x$COVERALLS == xyes ]; then + coveralls --exclude php --exclude 3rdparty +fi diff --git a/.travis-ci/install.sh b/.travis-ci/install.sh new file mode 100755 index 0000000..ba91136 --- /dev/null +++ b/.travis-ci/install.sh @@ -0,0 +1,22 @@ +#!/bin/sh + +apt-get update -qq +apt-get install -qq \ + autoconf \ + automake \ + build-essential \ + check \ + clang \ + graphviz-dev \ + libjemalloc-dev \ + libpcre3-dev \ + libtool \ + pkg-config + +if [ x$COVERALLS == xyes ]; then + pip install cpp-coveralls +fi + +if [ x$VALGRIND == xyes ]; then + apt-get install valgrind +fi diff --git a/.travis-ci/script.sh b/.travis-ci/script.sh new file mode 100755 index 0000000..3fe07d3 --- /dev/null +++ b/.travis-ci/script.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +set -ev + +./autogen.sh +./configure --enable-check $CONFIGURE_OPTION +make V=1 +make install +if [ x$VALGRIND == xyes ]; then + make check +else + make check V=1 +fi + +# XXX: tracing memory leak, disabled for some mystery reason for automake... +#if [ x$VALGRIND == xyes && x$DEBUG == xyes ]; then +# valgrind ./tests/check_* -v --trace-children=yes --show-leak-kinds=full --leak-check=full +#fi diff --git a/.travis.yml b/.travis.yml index 1cc3007..80ccbaa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,8 @@ language: c +sudo: required + +services: + - docker git: depth: 1 @@ -6,35 +10,49 @@ git: matrix: include: - compiler: gcc - env: CONFIGURE_OPTION='--enable-debug --enable-gcov --with-malloc=jemalloc' COVERALLS=yes VALGRIND=no DEBUG=yes + env: + - CONFIGURE_OPTION='--enable-debug --enable-gcov --with-malloc=jemalloc' + - COVERALLS=yes + - VALGRIND=no + - DEBUG=yes + - CC=gcc + - CXX=g++ - compiler: gcc - env: CONFIGURE_OPTION='--enable-debug --enable-gcov' COVERALLS=yes VALGRIND=yes DEBUG=yes LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/ + env: + - CONFIGURE_OPTION='--enable-debug --enable-gcov' + - COVERALLS=yes + - VALGRIND=yes + - DEBUG=yes + - CC=gcc + - CXX=g++ - compiler: clang - env: CONFIGURE_OPTION='--enable-debug --enable-gcov' COVERALLS=yes VALGRIND=yes DEBUG=yes LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/ - allow_failures: - - compiler: clang - env: ASAN_OPTIONS=symbolize=1 ASAN_SYMBOLIZER_PATH=/usr/local/clang-3.4/bin/llvm-symbolizer CFLAGS='-fsanitize=address -g -O1 -D_BSD_SOURCE=1' CXX=clang++ CXXFLAGS='-fsanitize=address -g -O1 -D_BSD_SOURCE=1' -install: -- sudo apt-get update -qq -- sudo apt-get install -qq automake pkg-config build-essential libtool automake autoconf m4 gnulib -- sudo apt-get install -qq check libpcre3 libpcre3-dev libjemalloc-dev libjemalloc1 -- sudo apt-get install -qq graphviz-dev graphviz -- if [ "x$COVERALLS" == xyes ]; then sudo pip install cpp-coveralls; fi -- if [ "x$VALGRIND" == xyes ]; then sudo apt-get install valgrind; fi + env: + - CONFIGURE_OPTION='--enable-debug --enable-gcov' + - COVERALLS=yes + - VALGRIND=yes + - DEBUG=yes + - CC=clang + - CXX=clang++ + +before_install: + - docker run -d + --name build + -v $(pwd):/travis + -e "CONFIGURE_OPTION=$CONFIGURE_OPTION" + -e "COVERALLS=$COVERALLS" + -e "VALGRIND=$VALGRIND" + -e "DEBUG=$DEBUG" + -e "CC=$CC" + -e "CXX=$CXX" + ubuntu:16.04 + tail -f /dev/null + - docker ps + +install: + - docker exec -t build bash -c "cd /travis && .travis-ci/install.sh" -before_script: - - sudo ldconfig script: - - ./autogen.sh - - ./configure --enable-check $CONFIGURE_OPTION - - make V=1 - - sudo make install - - if [ "x$VALGRIND" == xyes ]; then make check ; else make check V=1; fi - # XXX: tracing memory leak, disabled for some mystery reason for automake... - # - if [ "x$VALGRIND" == xyes && "x$DEBUG" == xyes ]; then valgrind ./tests/check_* -v --trace-children=yes --show-leak-kinds=full --leak-check=full; fi + - docker exec -t build bash -c "cd /travis && .travis-ci/script.sh" after_success: - - if [ x$COVERALLS == xyes ]; then coveralls --exclude php --exclude 3rdparty; fi - -cache: - apt: true + - docker exec -t build bash -c "cd /travis && .travis-ci/after_success.sh"