language: c sudo: false _anchors: - &gcc49-packages apt: sources: - ubuntu-toolchain-r-test packages: - gcc-4.9 - g++-4.9 - gobjc-4.9 - gnustep-devel matrix: include: # Style check - compiler: uncrustify language: cpp before_install: - if [[ "$TRAVIS_PULL_REQUEST" == false ]]; then exit 0; fi - | git clone https://github.com/uncrustify/uncrustify /tmp/uncrustify && pushd /tmp/uncrustify && git checkout -q 7ae7af9d3483f5f92766ec41bb3ba3efe4747494 && mkdir build && cd build && CC=gcc CXX=g++ cmake -DCMAKE_INSTALL_PREFIX=$HOME .. && make -j4 && make install && export PATH="$PATH:$HOME/bin" && popd - > export SOURCES=$(find src include test samples \( \ -type f \( \ -iname "*.c" -or \ -iname "*.h" -or \ -iname "*.cc" -or \ -iname "*.hxx" \ \) -and -not \ -iname "*.pb.*" \)) - export STYLE_OK=true script: - > for f in $SOURCES; do if ! uncrustify -q --check -c .uncrustify.cfg $f; then uncrustify -q -c .uncrustify.cfg -f $f | git --no-pager diff --no-index --color=always $f - export STYLE_OK=false fi done - $STYLE_OK after_success: - echo "Style check passed." # Linux Debug, GCC 4.9 - compiler: gcc-4.9 addons: *gcc49-packages env: CONFIGURATION: Debug GCOV: gcov-4.9 COVERAGE: "ON" # 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 RelWithDebInfo, GCC 4.6 - compiler: gcc env: - CONFIGURATION=RelWithDebInfo - TESTS=OFF # Coverity token - secure: >- n6BHG86ISeYSAVE/i7m1K+XVW0j8PrJ5JxoJwhAGBb1 hkCn9sWybGo1HzZsf7rxpkQh/5Va4i+eyOrUt7VWAuF EJN2+mEWqERkWZxiXrS3N9xi74cPFI79eDOTFnPm13e diUX8Ts+IuFy890+tsNHqkEn055l6yOVMtj1LWWtRs= # OSX Debug, GCC 4.9 - os: osx compiler: gcc-4.9 env: CONFIGURATION: Debug GCOV: gcov-4.9 COVERAGE: "ON" # 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 RelWithDebInfo, Clang - os: osx compiler: clang env: CONFIGURATION: RelWithDebInfo DEPLOY: true allow_failures: - compiler: gcc before_install: - | if [ "${TESTS:-ON}" = "ON" ]; then if [ "$TRAVIS_OS_NAME" = "osx" ]; then export PATH="$(python -m site --user-base)/bin:$PATH" fi travis_retry pip install --user cram==0.7 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 --output-on-failure -j4 --timeout=20 else TERM=dumb cmake --build . -- -j4 fi after_success: - | if [ "$COVERAGE" = "ON" ]; then make gcov bash <(curl -s https://codecov.io/bash) fi before_deploy: - make install - tar -cvjf criterion-${TRAVIS_TAG}-${TRAVIS_OS_NAME}-x86_64.tar.bz2 criterion-${TRAVIS_TAG} - cd .. - ./.cmake/git-archive-all.sh --prefix criterion-${TRAVIS_TAG} criterion-${TRAVIS_TAG}.tar && bzip2 $_ addons: coverity_scan: project: name: "Snaipe/Criterion" description: "A KISS, Cross-platform C unit testing framework" notification_email: franklinmathieu@gmail.com build_command_prepend: "cmake ." build_command: "make -j4" branch_pattern: coverity_scan 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 - criterion-${TRAVIS_TAG}.tar.bz2 on: repo: Snaipe/Criterion tags: true condition: $DEPLOY = true