mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-13 00:31:14 +00:00
Add codecov reports to PRs
This commit is contained in:
parent
9bab3f9f4c
commit
e403d18cb9
26
Dart.sh
26
Dart.sh
|
@ -41,13 +41,15 @@ if [ "$#" -lt "2" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# test if a valid ctest model is defined
|
# test if a valid ctest model is defined
|
||||||
if [ "$1" == "Experimental" -o "$1" == "Nightly" -o "$1" == "Continuous" -o "$1" == "Profile" -o "$1" == "alfa_ci" ]; then
|
case "$1" in
|
||||||
echo ""
|
Experimental|Nightly|Continuous|Profile|alfa_ci|codecov)
|
||||||
else
|
;;
|
||||||
|
*)
|
||||||
echo "-- Error -- This ctest model is not supported."
|
echo "-- Error -- This ctest model is not supported."
|
||||||
echo "-- Error -- Possible arguments are Nightly, Experimental, Continuous or Profile."
|
echo "-- Error -- Possible arguments are Nightly, Experimental, Continuous or Profile."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
# test if the input file exists and execute it
|
# test if the input file exists and execute it
|
||||||
if [ -e "$2" ];then
|
if [ -e "$2" ];then
|
||||||
|
@ -61,6 +63,9 @@ fi
|
||||||
# set the ctest model to command line parameter
|
# set the ctest model to command line parameter
|
||||||
if [ "$1" == "alfa_ci" ]; then
|
if [ "$1" == "alfa_ci" ]; then
|
||||||
export ctest_model=Experimental
|
export ctest_model=Experimental
|
||||||
|
elif [ "$1" == "codecov" ]; then
|
||||||
|
export ctest_model=Profile
|
||||||
|
export do_codecov_upload=1
|
||||||
else
|
else
|
||||||
export ctest_model=$1
|
export ctest_model=$1
|
||||||
fi
|
fi
|
||||||
|
@ -83,13 +88,20 @@ else
|
||||||
COMPILER=$CXX$($CXX -dumpversion)
|
COMPILER=$CXX$($CXX -dumpversion)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$1" == "alfa_ci" ]; then
|
case "$1" in
|
||||||
|
alfa_ci)
|
||||||
export LABEL1=alfa_ci-$COMPILER-FairMQ_$GIT_BRANCH
|
export LABEL1=alfa_ci-$COMPILER-FairMQ_$GIT_BRANCH
|
||||||
export LABEL=$(echo $LABEL1 | sed -e 's#/#_#g')
|
export LABEL=$(echo $LABEL1 | sed -e 's#/#_#g')
|
||||||
else
|
;;
|
||||||
|
codecov)
|
||||||
|
export LABEL1=codecov-$COMPILER-FairMQ_$GIT_BRANCH
|
||||||
|
export LABEL=$(echo $LABEL1 | sed -e 's#/#_#g')
|
||||||
|
;;
|
||||||
|
*)
|
||||||
export LABEL1=${LINUX_FLAVOUR}-$chip-$COMPILER-FairMQ_$GIT_BRANCH
|
export LABEL1=${LINUX_FLAVOUR}-$chip-$COMPILER-FairMQ_$GIT_BRANCH
|
||||||
export LABEL=$(echo $LABEL1 | sed -e 's#/#_#g')
|
export LABEL=$(echo $LABEL1 | sed -e 's#/#_#g')
|
||||||
fi
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
# get the number of processors
|
# get the number of processors
|
||||||
# and information about the host
|
# and information about the host
|
||||||
|
|
|
@ -34,18 +34,16 @@ If(EXTRA_FLAGS)
|
||||||
Set(configure_options "${configure_options};${EXTRA_FLAGS}")
|
Set(configure_options "${configure_options};${EXTRA_FLAGS}")
|
||||||
EndIf()
|
EndIf()
|
||||||
|
|
||||||
If($ENV{ctest_model} MATCHES Nightly OR $ENV{ctest_model} MATCHES Profile)
|
If($ENV{ctest_model} MATCHES Profile)
|
||||||
|
|
||||||
Find_Program(GCOV_COMMAND gcov)
|
Find_Program(GCOV_COMMAND gcov)
|
||||||
If(GCOV_COMMAND)
|
If(GCOV_COMMAND)
|
||||||
Message("Found GCOV: ${GCOV_COMMAND}")
|
Message("Found GCOV: ${GCOV_COMMAND}")
|
||||||
Set(CTEST_COVERAGE_COMMAND ${GCOV_COMMAND})
|
Set(CTEST_COVERAGE_COMMAND ${GCOV_COMMAND})
|
||||||
EndIf(GCOV_COMMAND)
|
EndIf(GCOV_COMMAND)
|
||||||
|
EndIf()
|
||||||
|
|
||||||
Set(ENV{ctest_model} Nightly)
|
If($ENV{ctest_model} MATCHES Nightly OR $ENV{ctest_model} MATCHES Profile)
|
||||||
|
Ctest_Empty_Binary_Directory(${CTEST_BINARY_DIRECTORY})
|
||||||
CTEST_EMPTY_BINARY_DIRECTORY(${CTEST_BINARY_DIRECTORY})
|
|
||||||
|
|
||||||
EndIf()
|
EndIf()
|
||||||
|
|
||||||
Ctest_Start($ENV{ctest_model})
|
Ctest_Start($ENV{ctest_model})
|
||||||
|
@ -62,7 +60,16 @@ Ctest_Test(BUILD "${CTEST_BINARY_DIRECTORY}"
|
||||||
)
|
)
|
||||||
|
|
||||||
If(GCOV_COMMAND)
|
If(GCOV_COMMAND)
|
||||||
Ctest_Coverage(BUILD "${CTEST_BINARY_DIRECTORY}")
|
Ctest_Coverage(BUILD "${CTEST_BINARY_DIRECTORY}" LABELS coverage)
|
||||||
|
EndIf()
|
||||||
|
|
||||||
|
If("$ENV{do_codecov_upload}")
|
||||||
|
Execute_Process(COMMAND curl https://codecov.io/bash -o codecov_uploader.sh
|
||||||
|
WORKING_DIRECTORY ${CTEST_BINARY_DIRECTORY}
|
||||||
|
TIMEOUT 60)
|
||||||
|
Execute_Process(COMMAND bash ./codecov_uploader.sh -X gcov
|
||||||
|
WORKING_DIRECTORY ${CTEST_BINARY_DIRECTORY}
|
||||||
|
TIMEOUT 60)
|
||||||
EndIf()
|
EndIf()
|
||||||
|
|
||||||
Ctest_Submit()
|
Ctest_Submit()
|
||||||
|
|
40
Jenkinsfile
vendored
40
Jenkinsfile
vendored
|
@ -4,24 +4,31 @@ def specToLabel(Map spec) {
|
||||||
return "${spec.os}-${spec.arch}-${spec.compiler}-FairSoft_${spec.fairsoft}"
|
return "${spec.os}-${spec.arch}-${spec.compiler}-FairSoft_${spec.fairsoft}"
|
||||||
}
|
}
|
||||||
|
|
||||||
def buildMatrix(List specs, Closure callback) {
|
def jobMatrix(String prefix, List specs, Closure callback) {
|
||||||
def nodes = [:]
|
def nodes = [:]
|
||||||
for (spec in specs) {
|
for (spec in specs) {
|
||||||
def label = specToLabel(spec)
|
def label = specToLabel(spec)
|
||||||
nodes[label] = {
|
nodes["${prefix}/${label}"] = {
|
||||||
node(label) {
|
node(label) {
|
||||||
githubNotify(context: "alfa-ci/${label}", description: 'Building ...', status: 'PENDING')
|
githubNotify(context: "${prefix}/${label}", description: 'Building ...', status: 'PENDING')
|
||||||
try {
|
try {
|
||||||
deleteDir()
|
deleteDir()
|
||||||
checkout scm
|
checkout scm
|
||||||
|
|
||||||
|
sh '''\
|
||||||
|
echo "export BUILDDIR=$PWD/build" >> Dart.cfg
|
||||||
|
echo "export SOURCEDIR=$PWD" >> Dart.cfg
|
||||||
|
echo "export PATH=$SIMPATH/bin:$PATH" >> Dart.cfg
|
||||||
|
echo "export GIT_BRANCH=$JOB_BASE_NAME" >> Dart.cfg
|
||||||
|
'''
|
||||||
|
|
||||||
callback.call(spec, label)
|
callback.call(spec, label)
|
||||||
|
|
||||||
deleteDir()
|
deleteDir()
|
||||||
githubNotify(context: "alfa-ci/${label}", description: 'Success', status: 'SUCCESS')
|
githubNotify(context: "${prefix}/${label}", description: 'Success', status: 'SUCCESS')
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
deleteDir()
|
deleteDir()
|
||||||
githubNotify(context: "alfa-ci/${label}", description: 'Error', status: 'ERROR')
|
githubNotify(context: "${prefix}/${label}", description: 'Error', status: 'ERROR')
|
||||||
throw e
|
throw e
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,22 +40,25 @@ def buildMatrix(List specs, Closure callback) {
|
||||||
pipeline{
|
pipeline{
|
||||||
agent none
|
agent none
|
||||||
stages {
|
stages {
|
||||||
stage("Run Build/Test Matrix") {
|
stage("Run CI Matrix") {
|
||||||
steps{
|
steps{
|
||||||
script {
|
script {
|
||||||
parallel(buildMatrix([
|
def build_jobs = jobMatrix('alfa-ci/build', [
|
||||||
[os: 'Debian8', arch: 'x86_64', compiler: 'gcc4.9', fairsoft: 'may18'],
|
[os: 'Debian8', arch: 'x86_64', compiler: 'gcc4.9', fairsoft: 'may18'],
|
||||||
[os: 'MacOS10.11', arch: 'x86_64', compiler: 'AppleLLVM8.0.0', fairsoft: 'may18'],
|
|
||||||
[os: 'MacOS10.13', arch: 'x86_64', compiler: 'AppleLLVM9.0.0', fairsoft: 'may18'],
|
[os: 'MacOS10.13', arch: 'x86_64', compiler: 'AppleLLVM9.0.0', fairsoft: 'may18'],
|
||||||
]) { spec, label ->
|
]) { spec, label ->
|
||||||
sh '''\
|
|
||||||
echo "export BUILDDIR=$PWD/build" >> Dart.cfg
|
|
||||||
echo "export SOURCEDIR=$PWD" >> Dart.cfg
|
|
||||||
echo "export PATH=$SIMPATH/bin:$PATH" >> Dart.cfg
|
|
||||||
echo "export GIT_BRANCH=$JOB_BASE_NAME" >> Dart.cfg
|
|
||||||
'''
|
|
||||||
sh './Dart.sh alfa_ci Dart.cfg'
|
sh './Dart.sh alfa_ci Dart.cfg'
|
||||||
})
|
}
|
||||||
|
|
||||||
|
def profile_jobs = jobMatrix('alfa-ci/codecov', [
|
||||||
|
[os: 'Debian8', arch: 'x86_64', compiler: 'gcc4.9', fairsoft: 'may18'],
|
||||||
|
]) { spec, label ->
|
||||||
|
withCredentials([string(credentialsId: 'fairmq_codecov_token', variable: 'CODECOV_TOKEN')]) {
|
||||||
|
sh './Dart.sh codecov Dart.cfg'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
parallel(build_jobs + profile_jobs)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -196,6 +196,7 @@ add_library(FairMQ SHARED
|
||||||
${FAIRMQ_PUBLIC_HEADER_FILES} # for IDE integration
|
${FAIRMQ_PUBLIC_HEADER_FILES} # for IDE integration
|
||||||
${FAIRMQ_PRIVATE_HEADER_FILES} # for IDE integration
|
${FAIRMQ_PRIVATE_HEADER_FILES} # for IDE integration
|
||||||
)
|
)
|
||||||
|
set_target_properties(FairMQ PROPERTIES LABELS coverage)
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
# include directories #
|
# include directories #
|
||||||
|
|
Loading…
Reference in New Issue
Block a user