Skip to content
Snippets Groups Projects
Commit 20d7eb6f authored by René Milk's avatar René Milk
Browse files

Merge pull request #80 from wwu-numerik/travis

Enable testing on travis-ci.org
parents c0b91b6b 57d45ca7
No related branches found
No related tags found
No related merge requests found
"travis" : {
"branch" : "$ENV{TRAVIS_BRANCH}",
"build_number" : "$ENV{TRAVIS_BUILD_NUMBER}",
"commit" : "$ENV{TRAVIS_COMMIT}",
"commit_range" : "$ENV{TRAVIS_COMMIT_RANGE}",
"job_number" : "$ENV{TRAVIS_JOB_NUMBER}",
"pull_request" : "$ENV{TRAVIS_PULL_REQUEST}",
"repo_slug" : "$ENV{TRAVIS_REPO_SLUG}"
}
string(SUBSTRING "$ENV{TRAVIS_COMMIT}" 0 7 COMMIT_ID)
set(CTEST_SITE "travis")
set(CTEST_BUILD_NAME "$ENV{TRAVIS_BUILD_NUMBER}-${COMMIT_ID}-$ENV{TRAVIS_OS_NAME}-$ENV{CXX}")
set(CTEST_SOURCE_DIRECTORY "$ENV{TRAVIS_BUILD_DIR}")
set(CTEST_BINARY_DIRECTORY "$ENV{DUNE_BUILD_DIR}/dune-stuff")
configure_file(${CTEST_SOURCE_DIRECTORY}/.travis.cfg.in ${CTEST_BINARY_DIRECTORY}/travis.cfg)
set(CTEST_NOTES_FILES ${CTEST_BINARY_DIRECTORY}/travis.cfg)
find_program(GCOV gcov-4.9)
set(CTEST_COVERAGE_COMMAND ${GCOV})
set(COVERAGE_EXTRA_FLAGS "-l -p")
set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
set(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_BUILD_TYPE}")
set(CTEST_CONFIGURATION_TYPE "Debug")
ctest_start(Continuous)
ctest_configure()
ctest_build()
ctest_test()
if($ENV{CXX} MATCHES "g\\+\\+")
ctest_coverage()
endif()
ctest_submit()
sudo: false
language: cpp
compiler:
- gcc
- clang
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- boost-latest
- george-edison55-precise-backports
- llvm-toolchain-precise-3.7
packages:
- gcc-4.9
- g++-4.9
- gcc-5
- g++-5
- clang-3.7
- clang-format-3.7
- clang-modernize-3.7
- cmake
- cmake-data
- doxygen
- texlive-base
- python-virtualenv
- libboost1.55-all-dev
- python-pip
- libtbb-dev
- ccache
- libparmetis-dev
- libsuitesparse-dev
- lcov
- curl
before_install:
- cmake --version
- export PATH=/usr/lib/ccache:$PATH
- if [ "$CXX" = "g++" ]; then export CXX="g++-4.9" CC="/usr/bin/gcc-4.9"; fi
- if [ "$CXX" = "clang++" ]; then export CXX="clang++-3.7" CC="clang-3.7"; fi
- cd $HOME
- test -d src || git clone --branch=travis http://users.dune-project.org/repositories/projects/dune-stuff-demos.git src
- cd $HOME/src
- git submodule update --init --recursive
- cp config.opts/travis $HOME/travis.opts && export DCONTROL_ARG="--builddir=${DUNE_BUILD_DIR} --opts=${HOME}/travis.opts"
- echo removing modules ${MODULES_TO_DELETE}
# ensures dune-stuff from travis own checkout is used
- rm -rf ${MODULES_TO_DELETE} dune-stuff
# install Eigen
- mkdir -p ${DUNE_BUILD_DIR}/eigen/build
- wget -qO- http://bitbucket.org/eigen/eigen/get/3.2.4.tar.gz | tar xz -C ${DUNE_BUILD_DIR}/eigen --strip-components=1
- cd ${DUNE_BUILD_DIR}/eigen/build
- cmake .. -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}
- make install
# workarounds for dune-testtools issue
- cd $HOME/src
- ./dune-common/bin/dunecontrol ${DCONTROL_ARG} --module=dune-python configure
- ${DUNE_BUILD_DIR}/dune-python/python2-env/bin/pip install -U pip
- ${DUNE_BUILD_DIR}/dune-python/python3-env/bin/pip install -U pip
- ${DUNE_BUILD_DIR}/dune-python/python2-env/bin/pip install -U distribute six
- ${DUNE_BUILD_DIR}/dune-python/python3-env/bin/pip install -U distribute six
# command to install dependencies
install:
- cd $HOME/src
- pip install --user cpp-coveralls
- ./dune-common/bin/dunecontrol ${DCONTROL_ARG} all
- ./dune-common/bin/dunecontrol ${DCONTROL_ARG} make install > /dev/null
- rm -rf ${DUNE_BUILD_DIR} $HOME/src
# # command to run tests
script:
- cd ${TRAVIS_BUILD_DIR}
- ~/dune/bin/dunecontrol ${DCONTROL_ARG} --only=dune-stuff configure
- ~/dune/bin/dunecontrol ${DCONTROL_ARG} --only=dune-stuff bexec make
- ~/dune/bin/dunecontrol ${DCONTROL_ARG} --only=dune-stuff bexec make test_binaries
- ~/dune/bin/dunecontrol ${DCONTROL_ARG} --only=dune-stuff bexec make test
- ~/dune/bin/dunecontrol ${DCONTROL_ARG} --only=dune-stuff bexec make headercheck -k
# reset for ctest
- ~/dune/bin/dunecontrol ${DCONTROL_ARG} --only=dune-stuff bexec make clean
- export CTEST_ARG="--output-on-failure -S ${TRAVIS_BUILD_DIR}/.travis.ctest"
# ctest errors on coverage gathering, this should NOT fail our entire build
- ~/dune/bin/dunecontrol ${DCONTROL_ARG} --only=dune-stuff bexec ctest ${CTEST_ARG} || echo "CTest Failed"
notifications:
email:
on_success: change
on_failure: change
webhooks:
- https://buildtimetrend.herokuapp.com/travis
#after_success:
#- coveralls
branches:
except:
- gh-pages
cache:
directories:
- $HOME/dune
- $HOME/.ccache
os:
- linux
#- osx
matrix:
allow_failures:
- os: osx
env:
global:
- DUNE_BUILD_DIR=${HOME}/dune_build/ INSTALL_DIR=$HOME/dune
#matrix:
- MODULES_TO_DELETE="dune-fem dune-pdelab dune-typetree dune-grid dune-istl"
- MODULES_TO_DELETE="dune-fem dune-pdelab dune-typetree"
- USE_ALL_MODULES_IN_SUPER_REPO
set(CTEST_PROJECT_NAME "DUNE-Stuff")
set(CTEST_NIGHTLY_START_TIME "00:00:00 CET")
set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "my.cdash.org")
set(CTEST_DROP_LOCATION "/submit.php?project=DUNE-Stuff")
set(CTEST_DROP_SITE_CDASH TRUE)
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
# Copyright holders: Rene Milk, Felix Schindler # Copyright holders: Rene Milk, Felix Schindler
# License: BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause) # License: BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause)
[![Build Status](https://travis-ci.org/wwu-numerik/dune-stuff.svg?branch=travis)](https://travis-ci.org/wwu-numerik/dune-stuff)
dune-stuff is a DUNE (http://www.dune-project.org) module which provides a wide dune-stuff is a DUNE (http://www.dune-project.org) module which provides a wide
collection of ... stuff! This includes (but is not limited to) a logger, a collection of ... stuff! This includes (but is not limited to) a logger, a
profiler, string conversion, LA container and solver, ... profiler, string conversion, LA container and solver, ...
......
...@@ -111,7 +111,9 @@ ENDMACRO( SET_CONFIGHEADER_VARS ) ...@@ -111,7 +111,9 @@ ENDMACRO( SET_CONFIGHEADER_VARS )
set( DUNE_TEST_TIMEOUT 180 CACHE STRING "per-test timeout in seconds") set( DUNE_TEST_TIMEOUT 180 CACHE STRING "per-test timeout in seconds")
include(CTest)
macro(BEGIN_TESTCASES) macro(BEGIN_TESTCASES)
# https://cmake.org/cmake/help/v3.0/module/FindGTest.html
include_directories(SYSTEM ${DUNE_STUFF_TEST_DIR}/gtest ) include_directories(SYSTEM ${DUNE_STUFF_TEST_DIR}/gtest )
add_library(gtest_dune_stuff STATIC ${DUNE_STUFF_TEST_DIR}/gtest/gtest-all.cc) add_library(gtest_dune_stuff STATIC ${DUNE_STUFF_TEST_DIR}/gtest/gtest-all.cc)
target_link_libraries(gtest_dune_stuff pthread) target_link_libraries(gtest_dune_stuff pthread)
...@@ -121,7 +123,8 @@ macro(BEGIN_TESTCASES) ...@@ -121,7 +123,8 @@ macro(BEGIN_TESTCASES)
get_filename_component(testname ${source} NAME_WE) get_filename_component(testname ${source} NAME_WE)
add_executable( test_${testname} ${source} ${COMMON_HEADER} ) add_executable( test_${testname} ${source} ${COMMON_HEADER} )
target_link_libraries( test_${testname} ${ARGN} ${COMMON_LIBS} ${GRID_LIBS} gtest_dune_stuff ) target_link_libraries( test_${testname} ${ARGN} ${COMMON_LIBS} ${GRID_LIBS} gtest_dune_stuff )
add_test( test_${testname} ${CMAKE_CURRENT_BINARY_DIR}/test_${testname} ) add_test( NAME test_${testname} COMMAND ${CMAKE_CURRENT_BINARY_DIR}/test_${testname}
--gtest_output=xml:${CMAKE_CURRENT_BINARY_DIR}/test_${testname}.xml )
# currently property seems to have no effect # currently property seems to have no effect
set_tests_properties(test_${testname} PROPERTIES TIMEOUT ${DUNE_TEST_TIMEOUT}) set_tests_properties(test_${testname} PROPERTIES TIMEOUT ${DUNE_TEST_TIMEOUT})
list(APPEND testnames test_${testname} ) list(APPEND testnames test_${testname} )
......
...@@ -34,3 +34,4 @@ if (LATEX_FOUND) ...@@ -34,3 +34,4 @@ if (LATEX_FOUND)
endif() endif()
END_TESTCASES() END_TESTCASES()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment