From 40eed14acd5cb82fdb17b7bbdf9b340b7ddb984c Mon Sep 17 00:00:00 2001 From: Erik Zenker Date: Sat, 21 Oct 2017 09:28:30 +0200 Subject: [PATCH 1/8] Make travis ci spack based --- .travis.yml | 107 ++++--------------------------------------------- CMakeLists.txt | 19 +++++---- 2 files changed, 20 insertions(+), 106 deletions(-) diff --git a/.travis.yml b/.travis.yml index b997200..7822c21 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,7 +37,6 @@ env: - COMPILER=gcc STRATEGY="" before_install: - - mkdir -p $HOME/build - export CMAKE_FLAGS="-DCMAKE_CXX_FLAGS=\"-Werror\"" - if [ "$COMPILER" == "gcc" ]; then echo "Using g++-6"; @@ -54,105 +53,15 @@ before_install: - $CC --version install: + - echo "Install stage" ############################################################################# - # CMAKE # + # SPACK # ############################################################################# - - export PATH=$CMAKE_ROOT/bin:$PATH - - CMAKE_33_FOUND=$(cmake --version | grep " 3\.3\." >/dev/null && { echo 0; } || { echo 1; }) - - if [ $CMAKE_33_FOUND -ne 0 ]; then - mkdir -p $CMAKE_ROOT && - cd $CMAKE_ROOT && - travis_retry wget --no-check-certificate http://www.cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz && - tar -xzf cmake-3.3.2-Linux-x86_64.tar.gz --overwrite && - mv -f cmake-3.3.2-Linux-x86_64/* . && - rm -rf cmake-3.3.2-Linux-x86_64.tar.gz cmake-3.3.2-Linux-x86_64 && - cd -; - fi - - cmake --version - ############################################################################# - # BOOST # - ############################################################################# - - export CMAKE_PREFIX_PATH=$BOOST_ROOT:$CMAKE_PREFIX_PATH - # cmake --find-package -DNAME=Boost -DCOMPILER_ID=GNU -DLANGUAGE=CXX -DMODE=EXIST - - echo -e "#include \n#include \nint main() { std::cout << BOOST_VERSION << std::endl; return 0; }" - | $CXX -I$BOOST_ROOT/include -x c++ - >/dev/null || { echo 0; } - - ls $BOOST_ROOT - - BOOST_FOUND=$([ $(./a.out) -ge $BOOST_MIN ] && { echo 0; } || { echo 1; }) - - if [ $BOOST_FOUND -ne 0 ]; then - mkdir -p $BOOST_ROOT && - cd $BOOST_ROOT && - travis_retry wget --no-check-certificate -O boost.tar.bz2 http://sourceforge.net/projects/boost/files/boost/1.61.0/boost_1_61_0.tar.bz2/download && - tar -xjf boost.tar.bz2 --overwrite && - cd boost_1_61_0 && - echo "using gcc "":"" 6 "":"" /usr/bin/g++-6 ; " >> tools/build/src/user-config.jam && - ./bootstrap.sh toolset=gcc-6 --with-libraries=filesystem,mpi,program_options,system,test,serialization --prefix=$BOOST_ROOT && - echo "using mpi ;" >> tools/build/src/user-config.jam && - ./b2 -j2 -target=shared,static && - ./b2 install && - rm -rf boost.tar.bz2 boost_1_61_0 && - cd $HOME; - fi - ############################################################################# - # ZMQ # - ############################################################################# - - export CMAKE_PREFIX_PATH=$ZMQ_ROOT:$CMAKE_PREFIX_PATH - - echo $CMAKE_PREFIX_PATH - - ls $ZMQ_ROOT - - if [ ! "$(ls -A $ZMQ_ROOT)" ]; then - cd /tmp/ && - travis_retry git clone https://github.com/zeromq/libzmq.git&& - travis_retry git clone https://github.com/zeromq/cppzmq.git; - cd /tmp/libzmq/ && - ./autogen.sh && - mkdir -p $ZMQ_ROOT && - ./configure --prefix=$ZMQ_ROOT && - make && - make install && - cp /tmp/cppzmq/zmq.hpp $ZMQ_ROOT/include/ && - cp /tmp/cppzmq/zmq_addon.hpp $ZMQ_ROOT/include/; - else - echo "ZeroMQ directory already exists"; - fi - ############################################################################# - # PROTOBUF - ############################################################################# - - export CMAKE_PREFIX_PATH=$PROTOBUF_ROOT:$CMAKE_PREFIX_PATH - - echo $CMAKE_PREFIX_PATH - - tree $PROTOBUF_ROOT - - if [ ! "$(ls -A $PROTOBUF_ROOT)" ]; then - cd /tmp/; - travis_retry git clone https://github.com/google/protobuf.git; - cd /tmp/protobuf/; - ./autogen.sh; - mkdir -p $PROTOBUF_ROOT; - ./configure --prefix=$PROTOBUF_ROOT; - make check; - make install; - else - echo "Protobuf directory already exists"; - fi - ############################################################################# - # GRPC # - ############################################################################# - - export CMAKE_PREFIX_PATH=$GRPC_ROOT:$CMAKE_PREFIX_PATH - - echo $CMAKE_PREFIX_PATH - - tree $GRPC_ROOT - - if [ ! "$(ls -A $GRPC_ROOT)" ]; then - cd /tmp/; - travis_retry git clone -b $(curl -L http://grpc.io/release) https://github.com/grpc/grpc; - cd /tmp/grpc/; - git submodule update --init; - mkdir -p $GRPC_ROOT; - make prefix=$GRPC_ROOT install; - else - echo "Grpc directory already exists"; - fi + - git clone https://github.com/LLNL/spack.git + - git clone https://github.com/ComputationalRadiationPhysics/spack-repo.git + - ./spack/bin/spack repo add ./spack-repo + - ./spack/bin/spack install graybat@develop +mpi +zeromq + script: - - cd $HOME/build - - cmake $CMAKE_FLAGS $GRAYBAT_ROOT - - make check - - make signaling - - ./signaling& - - ctest --output-on-failure - - killall signaling \ No newline at end of file + - echo "Script state" diff --git a/CMakeLists.txt b/CMakeLists.txt index a8d0df5..b86758e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -90,13 +90,18 @@ add_executable(benchmark ${BENCHMARKS} ${graybat_GENERATED_FILES}) target_link_libraries(benchmark ${LIBS}) # Test cases -file(GLOB INTEGRATION_TESTS test/integration/*.cpp) -add_executable(check ${INTEGRATION_TESTS} ${graybat_GENERATED_FILES}) -target_compile_definitions(check PRIVATE ${graybat_DEFINITIONS}) -target_link_libraries(check ${LIBS}) -add_test(graybat_check_build "${CMAKE_COMMAND}" --build ${CMAKE_BINARY_DIR} --target check) -add_test(graybat_test_run_2_peers mpiexec -n 2 check ) -set_tests_properties(graybat_test_run_2_peers PROPERTIES DEPENDS graybat_check_build) +if(graybat_BMPI_CP_ENABLED) + file(GLOB INTEGRATION_TESTS test/integration/*.cpp) + add_executable(check ${INTEGRATION_TESTS} ${graybat_GENERATED_FILES}) + target_compile_definitions(check PRIVATE ${graybat_DEFINITIONS}) + target_link_libraries(check ${LIBS}) + if(NOT graybat_ZMQ_CP_ENABLED) + add_test(graybat_check_build "${CMAKE_COMMAND}" --build ${CMAKE_BINARY_DIR} --target check) + add_test(graybat_test_run_2_peers + ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} 2 ${MPIEXEC_PREFLAGS} check ${MPIEXEC_POSTFLAGS}) + set_tests_properties(graybat_test_run_2_peers PROPERTIES DEPENDS graybat_check_build) + endif() +endif() file(GLOB UNIT_TESTS test/unit/main.cpp test/unit/*Tests.cpp) add_executable(unit_tests ${UNIT_TESTS} ${graybat_GENERATED_FILES}) From a83000c52d6feebe34221833c427b2a439ee4244 Mon Sep 17 00:00:00 2001 From: Erik Zenker Date: Fri, 27 Oct 2017 20:03:51 +0200 Subject: [PATCH 2/8] WIP --- .travis.yml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7822c21..2025535 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,19 +19,10 @@ addons: - tree - gcc-6 - g++-6 # also possible: g++5.2 or g++-6 - - clang-3.5 - - openmpi-bin - - libopenmpi-dev + - gfortran-6 env: global: - - CMAKE_ROOT: $HOME/.cache/cmake - - BOOST_ROOT: $HOME/.cache/boost - - ZMQ_ROOT: $HOME/.cache/zmq - - GRPC_ROOT: $HOME/.cache/grpc - - PROTOBUF_ROOT: $HOME/.cache/protobuf - - BOOST_LIBRARY_DIR: $HOME/.cache/boost - - BOOST_MIN: 106100 # careful: hard coded below - GRAYBAT_ROOT: $TRAVIS_BUILD_DIR matrix: - COMPILER=gcc STRATEGY="" From 5133af32358d60aefc03614cead7b7eed4be4112 Mon Sep 17 00:00:00 2001 From: Erik Zenker Date: Fri, 27 Oct 2017 21:16:32 +0200 Subject: [PATCH 3/8] WIP --- .travis.yml | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2025535..a2e93b0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,11 +5,8 @@ sudo: false cache: apt: true directories: - - $HOME/.cache/cmake - - $HOME/.cache/boost - - $HOME/.cache/zmq - - $HOME/.cache/grpc - - $HOME/.cache/protobuf + - $HOME/.cache/spack + - $HOME/.cache/spack-hzdr addons: apt: @@ -24,6 +21,8 @@ addons: env: global: - GRAYBAT_ROOT: $TRAVIS_BUILD_DIR + - SPACK_DIR: $HOME/.cache/spack + - SPACK_HZDR_DIR: $HOME/.cache/spack-repo matrix: - COMPILER=gcc STRATEGY="" @@ -48,11 +47,10 @@ install: ############################################################################# # SPACK # ############################################################################# - - git clone https://github.com/LLNL/spack.git - - git clone https://github.com/ComputationalRadiationPhysics/spack-repo.git - - ./spack/bin/spack repo add ./spack-repo - - ./spack/bin/spack install graybat@develop +mpi +zeromq - + - git clone https://github.com/LLNL/spack.git $SPACK_DIR + - git clone https://github.com/ComputationalRadiationPhysics/spack-repo.git $SPACK_HZDR_DIR + - $SPACK_DIR/bin/spack repo add $SPACK_HZDR_DIR + - travis_wait $SPACK_DIR/bin/spack install graybat@develop +mpi +zeromq script: - echo "Script state" From ebcda2f73e675dc818f414485f3300c113af0e3f Mon Sep 17 00:00:00 2001 From: Erik Zenker Date: Fri, 27 Oct 2017 21:31:14 +0200 Subject: [PATCH 4/8] WIP cache --- .travis.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index a2e93b0..26bcf72 100644 --- a/.travis.yml +++ b/.travis.yml @@ -47,9 +47,13 @@ install: ############################################################################# # SPACK # ############################################################################# - - git clone https://github.com/LLNL/spack.git $SPACK_DIR - - git clone https://github.com/ComputationalRadiationPhysics/spack-repo.git $SPACK_HZDR_DIR - - $SPACK_DIR/bin/spack repo add $SPACK_HZDR_DIR + - if [ ! -d "$SPACK_DIR" ] ; then + git clone https://github.com/LLNL/spack.git $SPACK_DIR + fi + - if [ ! -d "$SPACK_HZDR_DIR" ] ; then + git clone https://github.com/ComputationalRadiationPhysics/spack-repo.git $SPACK_HZDR_DIR + fi + - $SPACK_DIR/bin/spack repo add $SPACK_HZDR_DIR || true - travis_wait $SPACK_DIR/bin/spack install graybat@develop +mpi +zeromq script: From c2e7df5747c8613725a0bc19d175673891e1d62e Mon Sep 17 00:00:00 2001 From: Erik Zenker Date: Sun, 29 Oct 2017 15:20:53 +0100 Subject: [PATCH 5/8] WIP cache --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 26bcf72..4369db9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -48,13 +48,13 @@ install: # SPACK # ############################################################################# - if [ ! -d "$SPACK_DIR" ] ; then - git clone https://github.com/LLNL/spack.git $SPACK_DIR + git clone https://github.com/LLNL/spack.git $SPACK_DIR; fi - if [ ! -d "$SPACK_HZDR_DIR" ] ; then - git clone https://github.com/ComputationalRadiationPhysics/spack-repo.git $SPACK_HZDR_DIR + git clone https://github.com/ComputationalRadiationPhysics/spack-repo.git $SPACK_HZDR_DIR; fi - $SPACK_DIR/bin/spack repo add $SPACK_HZDR_DIR || true - - travis_wait $SPACK_DIR/bin/spack install graybat@develop +mpi +zeromq + - travis_wait 50 $SPACK_DIR/bin/spack install graybat@develop +mpi +zeromq script: - echo "Script state" From ddc264e34ad2db2b7aa434fdfea460bdbc97c8fc Mon Sep 17 00:00:00 2001 From: Erik Zenker Date: Tue, 31 Oct 2017 16:50:21 +0100 Subject: [PATCH 6/8] WIP cache --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 4369db9..0d760a4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -44,6 +44,8 @@ before_install: install: - echo "Install stage" + - tree -L 3 $SPACK_DIR + - tree -L 3 $SPACK_HZDR_DIR ############################################################################# # SPACK # ############################################################################# From c201fe12ee94fea2f3e0ba1e08901ba603eb939c Mon Sep 17 00:00:00 2001 From: Erik Zenker Date: Tue, 31 Oct 2017 16:55:20 +0100 Subject: [PATCH 7/8] WIP cache --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 0d760a4..0e95a7f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,6 +46,8 @@ install: - echo "Install stage" - tree -L 3 $SPACK_DIR - tree -L 3 $SPACK_HZDR_DIR + - rm -r $SPACK_DIR + - rm -r $SPACK_HZDR_DIR ############################################################################# # SPACK # ############################################################################# @@ -57,6 +59,8 @@ install: fi - $SPACK_DIR/bin/spack repo add $SPACK_HZDR_DIR || true - travis_wait 50 $SPACK_DIR/bin/spack install graybat@develop +mpi +zeromq + - tree -L 3 $SPACK_DIR + - tree -L 3 $SPACK_HZDR_DIR script: - echo "Script state" From 05b2b194a942b5915e8c47505fc8c150b430784b Mon Sep 17 00:00:00 2001 From: Erik Zenker Date: Tue, 31 Oct 2017 17:02:27 +0100 Subject: [PATCH 8/8] WIP cache --- .travis.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0e95a7f..4d131c9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,6 @@ cache: apt: true directories: - $HOME/.cache/spack - - $HOME/.cache/spack-hzdr addons: apt: @@ -22,7 +21,7 @@ env: global: - GRAYBAT_ROOT: $TRAVIS_BUILD_DIR - SPACK_DIR: $HOME/.cache/spack - - SPACK_HZDR_DIR: $HOME/.cache/spack-repo + - SPACK_HZDR_DIR: $HOME/spack-repo matrix: - COMPILER=gcc STRATEGY="" @@ -45,9 +44,7 @@ before_install: install: - echo "Install stage" - tree -L 3 $SPACK_DIR - - tree -L 3 $SPACK_HZDR_DIR - - rm -r $SPACK_DIR - - rm -r $SPACK_HZDR_DIR + - rm -fr $SPACK_DIR ############################################################################# # SPACK # #############################################################################