Commit 98722214 authored by Mathieu Faverge's avatar Mathieu Faverge

Merge branch 'issue53/fix-ci' into 'master'

Issue53/fix ci

Closes #53

See merge request !68
parents f2009582 91ad62cb
image: hpclib/hiepacs
starpu:
stages:
- build
- test
- analysis
- doc
build_starpu_cuda_mpi:
stage: build
artifacts:
name: starpu_cuda_mpi_build
expire_in: 48 hours
paths:
- build
- chameleon-build-starpu.log
script:
- source .gitlab-ci-env.sh
- git submodule update --init --recursive
- mkdir -p build
- cd build
- cmake ..
- make -j2
- ctest -R test_shm_s
- cmake .. -DCHAMELEON_USE_MPI=ON -DCMAKE_INSTALL_PREFIX=$PWD/install
- make -j2
- ctest -V -R mpi_s
- cmake .. -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=ON -DCMAKE_INSTALL_PREFIX=${PWD}/install -DCMAKE_VERBOSE_MAKEFILE=ON -DMORSE_ENABLE_WARNING=ON -DMORSE_ENABLE_COVERAGE=ON
- make -j2 | tee ../chameleon-build-starpu.log
- make install | tee -a ../chameleon-build-starpu.log && rm install/ -r
starpu-simgrid:
build_starpu_simgrid:
stage: build
artifacts:
name: starpu_simgrid_build
expire_in: 48 hours
paths:
- build
- chameleon-build-starpu-simgrid.log
script:
- source .gitlab-ci-env.sh simu
- git submodule update --init --recursive
- mkdir -p build
- cd build
- cmake .. -DCHAMELEON_SIMULATION=ON -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=OFF
- make -j2
- ctest -V
- cmake .. -DCHAMELEON_SIMULATION=ON -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=OFF -DCMAKE_INSTALL_PREFIX=${PWD}/install -DCMAKE_VERBOSE_MAKEFILE=ON -DMORSE_ENABLE_WARNING=ON -DMORSE_ENABLE_COVERAGE=ON
- make -j2 | tee ../chameleon-build-starpu-simgrid.log
- make install | tee -a ../chameleon-build-starpu-simgrid.log && rm install/ -r
quark:
build_quark:
stage: build
artifacts:
name: quark_build
expire_in: 48 hours
paths:
- build
- chameleon-build-quark.log
script:
- source .gitlab-ci-env.sh
- git submodule update --init --recursive
- mkdir -p build
- cd build
- cmake .. -DCHAMELEON_SCHED_QUARK=ON
- make -j2
- ctest -V -R test_shm_s
- cmake .. -DCMAKE_INSTALL_PREFIX=${PWD}/install -DCMAKE_VERBOSE_MAKEFILE=ON -DMORSE_ENABLE_WARNING=ON -DMORSE_ENABLE_COVERAGE=ON -DCHAMELEON_SCHED_QUARK=ON
- make -j2 | tee ../chameleon-build-quark.log
- make install | tee -a ../chameleon-build-quark.log && rm install/ -r
doc:
test_starpu_mpi:
stage: test
dependencies:
- build_starpu_cuda_mpi
artifacts:
name: chameleon_doc
expire_in: 1 week
name: starpu_mpi_test
expire_in: 48 hours
paths:
- build/doc/doxygen
- build/doc/orgmode
- chameleon_starpu_mpi.lcov
script:
- source .gitlab-ci-env.sh
- git submodule update --init --recursive
- mkdir -p build
- cd build
- cmake .. -DCHAMELEON_ENABLE_DOC=ON -DCHAMELEON_ENABLE_EXAMPLE=OFF -DCHAMELEON_ENABLE_TESTING=OFF -DCHAMELEON_ENABLE_TIMING=OFF
- make doc
- (cd build && STARPU_SILENT=1 ctest --no-compress-output -R test_shm_s || /usr/bin/true && ctest --no-compress-output -R mpi_s || /usr/bin/true)
- lcov --directory build --capture --output-file chameleon_starpu_mpi.lcov
test_starpu_simgrid:
stage: test
dependencies:
- build_starpu_simgrid
artifacts:
name: starpu_simgrid_test
expire_in: 48 hours
paths:
- chameleon_starpu_simgrid.lcov
script:
- source .gitlab-ci-env.sh simu
- git submodule update --init --recursive
- (cd build && STARPU_SILENT=1 ctest --no-compress-output -V || /usr/bin/true)
- lcov --directory build --capture --output-file chameleon_starpu_simgrid.lcov
test_quark:
stage: test
dependencies:
- build_quark
artifacts:
name: quark_test
expire_in: 48 hours
paths:
- chameleon_quark.lcov
script:
- source .gitlab-ci-env.sh
- git submodule update --init --recursive
- (cd build && ctest --no-compress-output -R test_shm_s)
- lcov --directory build --capture --output-file chameleon_quark.lcov
analysis:
sonar:
stage: analysis
dependencies:
- build_starpu_cuda_mpi
- build_starpu_simgrid
- build_quark
- test_starpu_mpi
- test_starpu_simgrid
- test_quark
artifacts:
name: chameleon_analysis
expire_in: 1 week
paths:
- chameleon-build.log
- coverage/
- chameleon-coverage.xml
- chameleon-cppcheck.xml
- chameleon-rats.xml
- sonar.log
script:
- source .gitlab-ci-env.sh
- git submodule update --init --recursive
- lcov -a $PWD/chameleon_starpu_mpi.lcov -a $PWD/chameleon_starpu_simgrid.lcov -a $PWD/chameleon_quark.lcov -o $PWD/chameleon.lcov
- lcov_cobertura.py chameleon.lcov --output chameleon-coverage.xml
- ./tools/analysis.sh
only:
- master
- master@solverstack/chameleon
doc:
stage: doc
artifacts:
name: chameleon_doc
expire_in: 1 week
paths:
- build/doc/doxygen
- build/doc/orgmode
script:
- source .gitlab-ci-env.sh
- git submodule update --init --recursive
- mkdir -p build
- cd build
- cmake .. -DCHAMELEON_ENABLE_DOC=ON
- make doc
only:
- master@solverstack/chameleon
......@@ -999,6 +999,8 @@ list(REMOVE_DUPLICATES CHAMELEON_DEP) # WARNING: is it safe, respect order?
# Check for the subdirectories
# ----------------------------
set(CHAMELEON_SOURCES_TARGETS "" CACHE INTERNAL "List of targets of sources")
# include headers
# ---------------
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
......@@ -1073,6 +1075,9 @@ if(CHAMELEON_ENABLE_TIMING)
endif(CHAMELEON_ENABLE_TIMING)
#------------------------------------------------------------------------------
# Define a target which gathers all targets of sources
# useful for generating the doc without compiling the binaries (objects, libraries)
add_custom_target(chameleon_all_sources ALL DEPENDS ${CHAMELEON_SOURCES_TARGETS})
###############################################################################
# Documentation #
......
Subproject commit 6acb22e9e8d3ebe89bfe25e1102f77a339fbed06
Subproject commit 82511e1de255b999e04cf42d4940553bb1d1eac4
......@@ -282,6 +282,11 @@ if(HAVE_ISO_C_BINDING)
)
endif(HAVE_ISO_C_BINDING)
# Force generation of sources
# ---------------------------
add_custom_target(chameleon_sources ALL SOURCES "${CHAMELEON_SRCS};${CHAMELEON_SRCSF}")
set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};chameleon_sources" CACHE INTERNAL "List of targets of sources")
# Compile step
# ------------
add_library(chameleon ${CHAMELEON_SRCS} ${CHAMELEON_SRCSF})
......
......@@ -64,7 +64,7 @@ list(APPEND CHAMELEON_HDRS ${CHAMELEON_HDRS_GENERATED})
# Force generation of headers
# ---------------------------
add_custom_target(control_include ALL SOURCES ${CHAMELEON_HDRS})
set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};control_include" CACHE INTERNAL "List of targets of sources")
# installation
# ------------
......
......@@ -28,6 +28,7 @@
# Generate the morse sources for all possible precisions
# ------------------------------------------------------
set(COREBLAS_SRCS_GENERATED "")
set(ZSRC
core_dzasum.c
......@@ -104,6 +105,11 @@ set(COREBLAS_SRCS
${COREBLAS_SRCS_GENERATED}
)
# Force generation of sources
# ---------------------------
add_custom_target(coreblas_sources ALL SOURCES ${COREBLAS_SRCS})
set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};coreblas_sources" CACHE INTERNAL "List of targets of sources")
# Compile step
# ------------
add_library(coreblas ${COREBLAS_SRCS})
......
......@@ -57,6 +57,7 @@ endforeach()
# Force generation of headers
# ---------------------------
add_custom_target(coreblas_include ALL SOURCES ${COREBLAS_HDRS})
set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};coreblas_include" CACHE INTERNAL "List of targets of sources")
# Installation
# ------------
......
......@@ -88,6 +88,11 @@ if (CHAMELEON_USE_CUBLAS_V2)
)
endif (CHAMELEON_USE_CUBLAS_V2)
# Force generation of sources
# ---------------------------
add_custom_target(cudablas_sources ALL SOURCES ${CUDABLAS_SRCS})
set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};cudablas_sources" CACHE INTERNAL "List of targets of sources")
# Compile step
# ------------
add_library(cudablas ${CUDABLAS_SRCS})
......
......@@ -49,6 +49,7 @@ endforeach()
# Force generation of headers
# ---------------------------
add_custom_target(cudablas_include ALL SOURCES ${CUDABLAS_HDRS})
set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};cudablas_include" CACHE INTERNAL "List of targets of sources")
# Installation
# ------------
......
......@@ -77,7 +77,7 @@ if(DOXYGEN_EXECUTABLE)
add_custom_target(doxygen-out ALL
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/out-dev
#${CMAKE_CURRENT_BINARY_DIR}/out-usr
chameleon
chameleon_all_sources
)
# Installation for html version
......
......@@ -83,8 +83,8 @@ if(EMACS_COMPILER)
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/users_guide.org
${CMAKE_CURRENT_BINARY_DIR}/version.org
)
add_custom_target(doc-html-users_guide ALL DEPENDS users_guide.html chameleon)
add_custom_target(doc-pdf-users_guide ALL DEPENDS users_guide.pdf chameleon)
add_custom_target(doc-html-users_guide ALL DEPENDS users_guide.html)
add_custom_target(doc-pdf-users_guide ALL DEPENDS users_guide.pdf)
# Installation
# ------------
......
......@@ -69,6 +69,7 @@ endforeach()
# ---------------------------
add_custom_target(chameleon_include
ALL SOURCES morse.h ${CHAMELEON_HDRS} )
set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};chameleon_include" CACHE INTERNAL "List of targets of sources")
# Installation
# ------------
......
......@@ -105,6 +105,11 @@ set(RUNTIME_SRCS
${RUNTIME_SRCS_GENERATED}
)
# Force generation of sources
# ---------------------------
add_custom_target(parsec_sources ALL SOURCES ${RUNTIME_SRCS})
set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};runtime_parsec_include;parsec_sources" CACHE INTERNAL "List of targets of sources")
# Add library
# -----------
add_library(chameleon_parsec ${RUNTIME_SRCS})
......
......@@ -106,6 +106,11 @@ set(RUNTIME_SRCS
${RUNTIME_SRCS_GENERATED}
)
# Force generation of sources
# ---------------------------
add_custom_target(quark_sources ALL SOURCES ${RUNTIME_SRCS})
set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};runtime_quark_include;quark_sources" CACHE INTERNAL "List of targets of sources")
# Add library
# -----------
add_library(chameleon_quark ${RUNTIME_SRCS})
......
......@@ -122,6 +122,11 @@ set(RUNTIME_SRCS
${RUNTIME_SRCS_GENERATED}
)
# Force generation of sources
# ---------------------------
add_custom_target(starpu_sources ALL SOURCES ${RUNTIME_SRCS})
set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};runtime_starpu_include;starpu_sources" CACHE INTERNAL "List of targets of sources")
# Add library
# -----------
add_library(chameleon_starpu ${RUNTIME_SRCS})
......
......@@ -44,6 +44,7 @@ precisions_rules_py(TESTING_HDRS_GENERATED "${ZHDR}"
PRECISIONS "s;d;c;z;ds;zc" )
add_custom_target(testing_include ALL SOURCES ${TESTING_HDRS_GENERATED})
set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};testing_include" CACHE INTERNAL "List of targets of sources")
# Generate morse testing sources for all possible precisions
# ----------------------------------------------------------
......@@ -168,6 +169,15 @@ foreach(_precision ${CHAMELEON_PRECISION} )
endforeach()
# Force generation of sources
# ---------------------------
set(TESTING_SRCS)
foreach(_precision ${CHAMELEON_PRECISION})
list(APPEND TESTING_SRCS ${${_precision}SRC_GENERATED})
endforeach()
add_custom_target(testing_sources ALL SOURCES ${TESTING_SRCS})
set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};testing_sources" CACHE INTERNAL "List of targets of sources")
# Copy python scripts to use test drivers
# ---------------------------------------
# Copy launcher
......
......@@ -45,6 +45,7 @@ set(TIMING_AUX_HDRS
# Force generation of headers
# ---------------------------
add_custom_target(timing_include ALL SOURCES ${TIMING_AUX_HDRS})
set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};timing_include" CACHE INTERNAL "List of targets of sources")
if (NOT CHAMELEON_SIMULATION)
# Generate the morse auxiliary sources for all possible precisions
......@@ -57,9 +58,7 @@ if (NOT CHAMELEON_SIMULATION)
precisions_rules_py(TIMING_AUX_SRCS_GENERATED "${ZSRC}"
PRECISIONS "${CHAMELEON_PRECISION}")
set(TIMING_SRCS
${TIMING_AUX_SRCS_GENERATED}
)
set(TIMING_SRCS ${TIMING_AUX_SRCS_GENERATED})
# Create libchameleon_timing.a
# -----------------------------
......@@ -150,6 +149,11 @@ endif(NOT CHAMELEON_SIMULATION)
precisions_rules_py(TIMINGS "${ZSRC}"
PRECISIONS "${CHAMELEON_PRECISION}")
# Force generation of sources
# ---------------------------
add_custom_target(timing_sources ALL SOURCES ${TIMINGS})
set(CHAMELEON_SOURCES_TARGETS "${CHAMELEON_SOURCES_TARGETS};timing_sources" CACHE INTERNAL "List of targets of sources")
# Add include and link directories
# --------------------------------
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
......
#!/bin/bash
# Performs an analysis of Chameleon source code
# We consider to be in Chameleon's source code root
# build with proper options
mkdir -p build
cd build
rm * -rf
cmake .. -DCHAMELEON_USE_MPI=ON -DCMAKE_INSTALL_PREFIX=$PWD/install -DCMAKE_VERBOSE_MAKEFILE=ON -DMORSE_ENABLE_WARNING=ON -DMORSE_ENABLE_COVERAGE=ON
make -j5 | tee ../chameleon-build.log
# run tests
STARPU_SILENT=1 ctest --no-compress-output || /usr/bin/true
# capture coverage
lcov --directory . --capture --output-file ../chameleon.lcov
cd ..
genhtml -o coverage chameleon.lcov
lcov_cobertura.py chameleon.lcov --output chameleon-coverage.xml
# Performs an analysis of Chameleon source code:
# - we consider to be in Chameleon's source code root
# - we consider having the coverage file chameleon-coverage.xml in the root directory
# - we consider having cppcheck, rats, sonar-scanner programs available in the environment
# filter sources:
# - consider generated files in build
......@@ -49,7 +35,7 @@ sonar.sourceEncoding=UTF-8
sonar.cxx.compiler.charset=UTF-8
sonar.cxx.compiler.parser=GCC
sonar.cxx.compiler.regex=^(.*):(\\d+):\\d+: warning: (.*)\\[(.*)\\]$
sonar.cxx.compiler.reportPath=chameleon-build.log
sonar.cxx.compiler.reportPath=chameleon-build-starpu-mpi.log, chameleon-build-starpu-cuda.log, chameleon-build-starpu-simgrid.log, chameleon-build-quark.log
sonar.cxx.coverage.reportPath=chameleon-coverage.xml
sonar.cxx.cppcheck.reportPath=chameleon-cppcheck.xml
sonar.cxx.rats.reportPath=chameleon-rats.xml
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment