summaryrefslogtreecommitdiff
path: root/.travis.yml
diff options
context:
space:
mode:
authorCraig Earls <enderw88@gmail.com>2015-08-06 19:38:39 -0700
committerCraig Earls <enderw88@gmail.com>2015-08-06 19:38:39 -0700
commit0e82bd0d63bd0a6e9a9c77f0ef55e332b357368c (patch)
treefea3628fe67824069641f517a659cd88287ffdfc /.travis.yml
parent254d82e5eb123feaf87e3f7096a1f8389bac60b3 (diff)
parent3c2d228ddc74b75122b07a87bbd06263092a9661 (diff)
downloadfork-ledger-0e82bd0d63bd0a6e9a9c77f0ef55e332b357368c.tar.gz
fork-ledger-0e82bd0d63bd0a6e9a9c77f0ef55e332b357368c.tar.bz2
fork-ledger-0e82bd0d63bd0a6e9a9c77f0ef55e332b357368c.zip
Merge commit '3c2d228ddc74b75122b07a87bbd06263092a9661' into next
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml104
1 files changed, 88 insertions, 16 deletions
diff --git a/.travis.yml b/.travis.yml
index 9128c24e..98b0ab82 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,34 +2,106 @@
# provides GNU GCC 4.6, which does not support -std=c++11 GNU GCC 4.8 is installed
# NOTE: Please validate this file after editing it using
-# Travis WebLint http://lint.travis-ci.org/
-# or travis-yaml https://github.com/travis-ci/travis-yaml
+# Travis WebLint https://lint.travis-ci.org/
+# or travis-lint https://github.com/travis-ci/travis-lint
language: cpp
compiler:
- - clang
- gcc
+ - clang
+os:
+ - linux
+ - osx
+sudo: false
+cache:
+ apt: true
+
+env:
+ global:
+ # Boost version to use:
+ # _MIN is used when building the master branch
+ # _MAX is used when building any other branch
+ - BOOST_VERSION_MIN="1.49.0"
+ - BOOST_VERSION_MAX="1.58.0"
+ # List of required boost libraries to build
+ - BOOST_LIBS="date_time,filesystem,iostreams,python,regex,system,test"
+ # List of required Homebrew formulae to install
+ - BREWS="gmp,mpfr"
+ # Encrypted COVERITY_SCAN_TOKEN
+ - secure: "mYNxD1B8WNSvUeKzInehZ7syi2g1jH2ymeSQxoeKKD2duq3pvNWPdZdc4o9MlWQcAqcz58rhFZRIpuEWCnP0LbbJaG+MyuemMn9uAmg9Y4gFpMsBPHuTdf8pO3rDex+tkrr9puEJFgL+QV/TehxO6NDDpx7UdYvJb+4aZD/auYI="
+
+matrix:
+ exclude:
+ - os: linux
+ compiler: clang
+ # Compiling ledger on Linux with clang
+ # either crashes clang or results in a ledger binary that crashes with SIGSEGV.
+ - os: osx
+ compiler: gcc
+ # On Mac OS X building ledger with GNU GCC 4.8 fails due to
+ # undefined symbols, maybe because boost was not being built with g++-4.8.
+ # Undefined symbols for architecture x86_64:
+ # "boost::re_detail::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)", referenced from:
+ # boost::re_detail::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::perl_matcher(char const*, char const*, boost::match_results<char const*, std::allocator<boost::sub_match<char const*> > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, char const*) in main.cc.o
+ # boost::re_detail::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::perl_matcher(char const*, char const*, boost::match_results<char const*, std::allocator<boost::sub_match<char const*> > >&, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags, char const*) in global.cc.o
+ # "boost::re_detail::perl_matcher<char const*, std::allocator<boost::sub_match<char const*> >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::find()", referenced from:
+ # bool boost::regex_search<char const*, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >(char const*, char const*, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags) in main.cc.o
+ # bool boost::regex_search<char const*, char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >(char const*, char const*, boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags) in global.cc.o
+
+addons:
+ coverity_scan:
+ project:
+ name: "ledger/ledger"
+ description: "Build submitted via Travis CI"
+ build_command_prepend: "cmake . -DUSE_PYTHON=ON -DBUILD_DEBUG=ON -DCLANG_GCOV=ON"
+ build_command: "make"
+ branch_pattern: coverity
+ apt:
+ sources:
+ - ubuntu-toolchain-r-test
+ #- boost-latest
+ packages:
+ - gcc-4.8
+ - g++-4.8
+ - libgmp-dev
+ - libmpfr-dev
+ - libedit-dev
+ #- libboost1.55-dev
+ #- libboost-test1.55-dev
+ #- libboost-regex1.55-dev
+ #- libboost-python1.55-dev
+ #- libboost-system1.55-dev
+ #- libboost-date-time1.55-dev
+ #- libboost-iostreams1.55-dev
+ #- libboost-filesystem1.55-dev
+ #- libboost-serialization1.55-dev
before_install:
- # Add software package repositories with recent versions of gcc and boost
- - sudo add-apt-repository ppa:ubuntu-toolchain-r/test --yes
- - sudo add-apt-repository ppa:boost-latest/ppa --yes
- - sudo apt-get update -qq
-
-install:
- # Install GNU GCC 4.8 required by use of C++11
- - if [ "$CXX" = "g++" ]; then sudo apt-get install -qq g++-4.8 gcc-4.8; fi
- - if [ "$CXX" = "g++" ]; then export CXX="g++-4.8" CC="gcc-4.8"; fi
- # Install Ledger dependencies
- - sudo apt-get install -qq libboost1.55 libgmp-dev libmpfr-dev libeditline-dev
+ - if [ "${TRAVIS_BRANCH}" = "master" ]; then export BOOST_VERSION="${BOOST_VERSION_MIN}"; else export BOOST_VERSION="${BOOST_VERSION_MAX}"; fi
+ - if [ -n "${BOOST_VERSION}" ]; then export BOOST_ROOT="${TRAVIS_BUILD_DIR}/../boost-trunk"; export CMAKE_MODULE_PATH="${BOOST_ROOT}"; fi
+ - if [ "${CXX}" = "g++" ]; then export CXX="$(which g++-4.8)"; export CC="$(which gcc-4.8)"; fi
+ - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then export DYLD_LIBRARY_PATH="${BOOST_ROOT}/lib"; fi
+ # c++ is a symlink to clang++, but the compiler behaves differently when invoked as c++
+ - if [ "${TRAVIS_OS_NAME}" = "osx" -a "${CXX}" = "clang++" ]; then export CXX="$(which c++)"; export CC="$(which cc)"; fi
+ - tools/travis-before_install.sh
+
+install:
+ - tools/travis-install.sh
before_script:
- - ./acprep debug make --python
+ - cmake . -DUSE_PYTHON=ON -DBUILD_DEBUG=ON
+ - make
script:
- - ./acprep check --jobs $(nproc) -- --output-on-failure
+ - ctest --output-on-failure
- PYTHONPATH=. python python/demo.py
+after_script:
+ # These scripts are run for informational purposes and
+ # should be reintegrated into CTest once they reliably verify the documentation.
+ - python test/CheckTexinfo.py -l ledger -s .
+ - python test/CheckManpage.py -l ledger -s .
+
notifications:
email:
on_success: change