language: c sudo: false addons: apt: sources: - deadsnakes packages: - python3.5 _anchors: - &gcc49-packages apt: sources: - ubuntu-toolchain-r-test - deadsnakes packages: - python3.5 - gcc-4.9 - g++-4.9 - gobjc-4.9 - gnustep-devel matrix: include: # Linux Debug, GCC 4.9 - compiler: gcc-4.9 addons: *gcc49-packages env: CONFIGURATION: Debug GCOV: gcov-4.9 COVERAGE: "ON" # Linux Release, GCC 4.9 - compiler: gcc-4.9 addons: *gcc49-packages env: CONFIGURATION: Release # Linux RelWithDebInfo, GCC 4.9 - compiler: gcc-4.9 addons: *gcc49-packages env: CONFIGURATION: RelWithDebInfo DEPLOY: true # Linux Debug, GCC 4.6 - compiler: gcc env: CONFIGURATION=Debug TESTS=OFF # Linux Release, GCC 4.6 - compiler: gcc env: CONFIGURATION=Release TESTS=OFF # Linux RelWithDebInfo, GCC 4.6 - compiler: gcc env: CONFIGURATION=RelWithDebInfo TESTS=OFF # OSX Debug, GCC 4.9 - os: osx compiler: gcc-4.9 env: CONFIGURATION: Debug GCOV: gcov-4.9 COVERAGE: "ON" # OSX Release, GCC 4.9 - os: osx compiler: gcc-4.9 env: CONFIGURATION=Release # OSX RelWithDebInfo, GCC 4.9 - os: osx compiler: gcc-4.9 env: CONFIGURATION=RelWithDebInfo # OSX Debug, Clang - os: osx compiler: clang env: CONFIGURATION: Debug # OSX Release, Clang - os: osx compiler: clang env: CONFIGURATION: Release # OSX RelWithDebInfo, Clang - os: osx compiler: clang env: CONFIGURATION: RelWithDebInfo DEPLOY: true allow_failures: - compiler: gcc - os: osx # TODO: keep until the nanomsg patch is merged before_install: - | if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update brew install pcre fi - | if [ "$TRAVIS_OS_NAME" = "osx" ] && [ "$CC" = "clang" ]; then brew unlink cmake brew install llvm cmake fi - | if [ "${TESTS:-ON}" = "ON" ]; then if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew install python3 export PATH="$(python3 -m site --user-base)/bin:$PATH" export PYTHON_BIN="python3" else curl -L https://bootstrap.pypa.io/get-pip.py | python3.5 - --user export PYTHON_BIN="python3.5" fi pip3 install --user cram==0.6 # Patch buggy cram on OSX if [ "$TRAVIS_OS_NAME" = "osx" ]; then patch "$(python3 -m site --user-base)/lib/python/site-packages/cram.py" .cmake/cram-osx.patch fi cram --version fi - export CXX=${CC/gcc/g++}; export CXX=${CXX/clang/clang++} - $CC --version - $CXX --version script: - mkdir -p build && cd $_ - > cmake -Wno-dev -DCTESTS=${TESTS:-ON} -DCOVERALLS=${COVERAGE:-OFF} -DCMAKE_BUILD_TYPE=${CONFIGURATION} -DCMAKE_INSTALL_PREFIX=criterion-${TRAVIS_TAG} ${CMAKE_OPTS} .. - | if [ "${TESTS:-ON}" = "ON" ]; then TERM=dumb cmake --build . --target criterion_tests -- -j4 ctest else TERM=dumb cmake --build . -- -j4 fi after_success: - | if [ "$COVERAGE" = "ON" ]; then make gcov bash <(curl -s https://codecov.io/bash) fi after_failure: - | if [ "${TESTS:-ON}" = "ON" ]; then cat Testing/Temporary/LastTest.log samples/*.{out,err} ../samples/tests/*.{out,err} fi before_deploy: - make install - tar -cvjf criterion-${TRAVIS_TAG}-${TRAVIS_OS_NAME}-x86_64.tar.bz2 criterion-${TRAVIS_TAG} deploy: provider: releases skip_cleanup: true api_key: secure: d3l2Ohb2FF3tSXku1d0ASR5dntdnQ48Jyc39IEloDBxFXCselCkYruUQv6p0TA3P+Dmrz4wS7/AFlBMMsQ3XfGFVIOnITiTaGWg5fEpIf7zYsDf0zECPE0MOHMGqJMn3/SrSKdtEA4N84Q4JS7Ou+ewG65mxUDO5Ce60OoEG5JA= file: criterion-${TRAVIS_TAG}-${TRAVIS_OS_NAME}-x86_64.tar.bz2 on: repo: Snaipe/Criterion tags: true condition: $DEPLOY = true