Commit a6466242 authored by Mathieu Faverge's avatar Mathieu Faverge

Upgrade CI

parent e526d7df
This diff is collapsed.
bench_plafrim:
stage: test
tags: ['plafrim']
variables:
BUILD_OPTIONS: "-DCHAMELEON_USE_MPI=ON -DCMAKE_BUILD_TYPE=Release"
VERSION: miriel
script:
- (cd tools/bench/plafrim/miriel && ./run.sh)
only:
- schedules
---
build_openmp:
extends: .build_script_template
artifacts:
name: build_openmp
expire_in: 48 hours
paths:
- build-openmp
- chameleon_openmp.log
variables:
BUILD_OPTIONS: "-DCHAMELEON_SCHED=OPENMP"
VERSION: openmp
build_parsec:
extends: .build_script_template
artifacts:
name: build_parsec
expire_in: 48 hours
paths:
- build-parsec
- chameleon_parsec.log
variables:
BUILD_OPTIONS: "-DCHAMELEON_SCHED=PARSEC"
VERSION: parsec
build_quark:
extends: .build_script_template
artifacts:
name: build_quark
expire_in: 48 hours
paths:
- build-quark
- chameleon_quark.log
variables:
BUILD_OPTIONS: "-DCHAMELEON_SCHED=QUARK"
VERSION: quark
build_starpu:
extends: .build_script_template
artifacts:
name: build_starpu
expire_in: 48 hours
paths:
- build-starpu
- chameleon_starpu.log
variables:
BUILD_OPTIONS: "-DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=ON"
VERSION: starpu
build_starpu_simgrid:
extends: .build_script_template
artifacts:
name: build_starpu_simgrid
expire_in: 48 hours
paths:
- build-starpu_simgrid
- chameleon_starpu_simgrid.log
variables:
SIMU: simu
BUILD_OPTIONS: "-DCHAMELEON_SIMULATION=ON -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=OFF"
VERSION: starpu_simgrid
#
# This file describes the common rules for the stages
#
---
.only-master:
only:
- master@solverstack/chameleon
- /^ci-.*$/
.only-branches:
only:
- branches
- master@solverstack/chameleon
- /^ci-.*$/
except:
- master
- schedules
.build_script_template:
image: hpclib/hiepacs
stage: build
tags: ["large"]
script:
- export LOGNAME=chameleon_${VERSION}.log
- echo $LOGNAME
- echo build BUILD_OPTIONS $BUILD_OPTIONS | tee -a ${LOGNAME}
- echo build VERSION $VERSION | tee -a ${LOGNAME}
- ls -l *.log
- (cd build-$VERSION &&
scan-build -plist --intercept-first --exclude CMakeFiles --analyze-headers -o analyzer_reports
cmake -C ../cmake_modules/gitlab-ci-initial-cache.cmake .. $BUILD_OPTIONS &&
scan-build -plist --intercept-first --exclude CMakeFiles --analyze-headers -o analyzer_reports
ctest --no-compress-output -V -j 5
-D ExperimentalBuild
-D ExperimentalSubmit
| tee ../${LOGNAME})
- (cd build-$VERSION &&
make install | tee -a ../${LOGNAME} &&
rm install/ -r)
except:
- schedules
.test_script_template:
image: hpclib/hiepacs
stage: test
tags: ["large"]
script:
- export LOGNAME=chameleon_${VERSION}_${CATEGORY}_${PRECISION}
- echo $LOGNAME
- echo test TESTS_RESTRICTION $TESTS_RESTRICTION | tee -a ${LOGNAME}.log
- echo test VERSION $VERSION | tee -a ${LOGNAME}.log
- echo test CATEGORY $CATEGORY | tee -a ${LOGNAME}.log
- echo test PRECISION $PRECISION | tee -a ${LOGNAME}.log
- ls -l *.log
- (cd build-$VERSION &&
eval "ctest --no-compress-output -V
$TESTS_RESTRICTION
-D ExperimentalTest
-D ExperimentalCoverage
-D ExperimentalSubmit
| tee -a ../${LOGNAME}.log")
- lcov --directory build-$VERSION --capture --output-file ./${LOGNAME}.lcov
- (cd build-$VERSION && lcov --directory . --capture --output-file ../bis_${LOGNAME}.lcov)
except:
- schedules
#
# Rule to generate the full coverage of the testings in the branches.
# Not used by the master, as it s done in the analysis script for sonarqube
#
# Rk: We do not take into account the simgrid lcov file for now, as it is empty with new testings
#
---
coverage:
image: hpclib/hiepacs
stage: analyse
script:
- export INPUT_FILES=""
- for name in $( ls -1 chameleon_*.lcov | grep -v simgrid); do export INPUT_FILES="$INPUT_FILES -a $name"; done
- lcov $INPUT_FILES -o chameleon.lcov
- lcov --summary chameleon.lcov
- export INPUT_FILES=""
- for name in $( ls -1 bis_chameleon_*.lcov | grep -v simgrid); do export INPUT_FILES="$INPUT_FILES -a $name"; done
- lcov $INPUT_FILES -o bis_chameleon.lcov
- lcov --summary bis_chameleon.lcov
except:
- master
- /^ci-.*$/
- schedules
---
.coverity:
image: hpclib/hiepacs
stage: analyse
tags: ["large"]
dependencies: []
artifacts:
name: chameleon_coverity
expire_in: 1 week
paths:
- chameleon.tgz
variables:
VERSION: coverity
script:
- (cd build-$VERSION &&
cmake -C ../cmake_modules/gitlab-ci-initial-cache.cmake \
.. -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=ON &&
cov-build --dir ../cov-int make -j 4)
- tar czvf chameleon.tgz cov-int
- curl --form token=$COVERITY_TOKEN
--form email=florent.pruvost@inria.fr
--form file=@chameleon.tgz
--form version="`git rev-parse --short HEAD`"
--form description=""
https://scan.coverity.com/builds?project=Chameleon
only:
- master@solverstack/chameleon
except:
- schedules
---
pages:
image: hpclib/hiepacs
stage: deploy
dependencies: []
artifacts:
name: chameleon_doc
expire_in: 1 week
paths:
- public
variables:
VERSION: pages
script:
- cd build-$VERSION
- cmake .. -DCHAMELEON_ENABLE_DOC=ON
- make doc -j5
- mv doc/orgmode/ ../public/
- ln -s ../public/users_guide.html ../public/index.html
- mv doc/doxygen/out/html/ ../public/doxygen/
only:
- master@solverstack/chameleon
- /^ci-.*$/
except:
- schedules
---
release:
image: hpclib/hiepacs
stage: deploy
dependencies: []
artifacts:
name: chameleon_release
expire_in: 1 week
paths:
- chameleon-*.tar.gz
variables:
VERSION: release
script:
- ./tools/release.sh
only:
- /^release-.*$/
except:
- schedules
sonarqube:
image: hpclib/hiepacs
stage: analyse
tags: ["large"]
artifacts:
name: chameleon_analysis
expire_in: 1 week
paths:
- chameleon_coverage.xml
- chameleon_cppcheck.xml
- chameleon_rats.xml
- sonar.log
variables:
VERSION: sonarqube
script:
- cat *.log > chameleon_build.log
- ./tools/analysis.sh
only:
- master@solverstack/chameleon
- /^ci-.*$/
except:
- schedules
---
.test_openmp_template: &test_openmp
extends: .test_script_template
needs: [build_openmp]
dependencies:
- build_openmp
artifacts:
name: test_openmp
expire_in: 48 hours
paths:
- build_openmp
- chameleon_openmp_*.log
- chameleon_openmp_*.lcov
- bis_chameleon_openmp_*.lcov
.test_openmp_template_master: &test_openmp_master
extends:
- .test_openmp_template
- .only-master
.test_openmp_template_branches: &test_openmp_branches
extends:
- .test_openmp_template
- .only-branches
test_openmp_shm_s:
<<: *test_openmp_master
variables:
VERSION: openmp
CATEGORY: shm
PRECISION: s
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
test_openmp_shm_d:
<<: *test_openmp_master
variables:
VERSION: openmp
CATEGORY: shm
PRECISION: d
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
test_openmp_shm_c:
<<: *test_openmp_master
variables:
VERSION: openmp
CATEGORY: shm
PRECISION: c
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
test_openmp_shm_z:
<<: *test_openmp_branches
variables:
VERSION: openmp
CATEGORY: shm
PRECISION: z
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
---
.test_parsec_template: &test_parsec
extends: .test_script_template
needs: [build_parsec]
dependencies:
- build_parsec
artifacts:
name: test_parsec
expire_in: 48 hours
paths:
- build_parsec
- chameleon_parsec_*.log
- chameleon_parsec_*.lcov
- bis_chameleon_parsec_*.lcov
.test_parsec_template_master: &test_parsec_master
extends:
- .test_parsec_template
- .only-master
.test_parsec_template_branches: &test_parsec_branches
extends:
- .test_parsec_template
- .only-branches
test_parsec_shm_s:
<<: *test_parsec_master
variables:
VERSION: parsec
CATEGORY: shm
PRECISION: s
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
test_parsec_shm_d:
<<: *test_parsec_master
variables:
VERSION: parsec
CATEGORY: shm
PRECISION: d
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
test_parsec_shm_c:
<<: *test_parsec_branches
variables:
VERSION: parsec
CATEGORY: shm
PRECISION: c
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
test_parsec_shm_z:
<<: *test_parsec_master
variables:
VERSION: parsec
CATEGORY: shm
PRECISION: z
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
# test_parsec_mpi_s:
# <<: *test_parsec_branches
# variables:
# VERSION: parsec
# CATEGORY: mpi
# PRECISION: s
# TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
# test_parsec_mpi_d:
# <<: *test_parsec_master
# variables:
# VERSION: parsec
# CATEGORY: mpi
# PRECISION: d
# TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
# test_parsec_mpi_c:
# <<: *test_parsec_master
# variables:
# VERSION: parsec
# CATEGORY: mpi
# PRECISION: c
# TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
# test_parsec_mpi_z:
# <<: *test_parsec_master
# variables:
# VERSION: parsec
# CATEGORY: mpi
# PRECISION: z
# TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
---
.test_quark_template: &test_quark
extends: .test_script_template
needs: [build_quark]
dependencies:
- build_quark
artifacts:
name: test_quark
expire_in: 48 hours
paths:
- build_quark
- chameleon_quark_*.log
- chameleon_quark_*.lcov
- bis_chameleon_quark_*.lcov
.test_quark_template_master: &test_quark_master
extends:
- .test_quark_template
- .only-master
.test_quark_template_branches: &test_quark_branches
extends:
- .test_quark_template
- .only-branches
test_quark_shm_s:
<<: *test_quark_branches
variables:
VERSION: quark
CATEGORY: shm
PRECISION: s
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
test_quark_shm_d:
<<: *test_quark_master
variables:
VERSION: quark
CATEGORY: shm
PRECISION: d
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
test_quark_shm_c:
<<: *test_quark_master
variables:
VERSION: quark
CATEGORY: shm
PRECISION: c
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
test_quark_shm_z:
<<: *test_quark_master
variables:
VERSION: quark
CATEGORY: shm
PRECISION: z
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
---
.test_starpu_template:
extends: .test_script_template
needs: [build_starpu]
dependencies:
- build_starpu
artifacts:
name: test_starpu
expire_in: 48 hours
paths:
- build_starpu
- chameleon_starpu_*.log
- chameleon_starpu_*.lcov
- bis_chameleon_starpu_*.lcov
.test_starpu_template_master: &test_starpu_master
extends:
- .test_starpu_template
- .only-master
.test_starpu_template_branches: &test_starpu_branches
extends:
- .test_starpu_template
- .only-branches
test_starpu_shm_s:
<<: *test_starpu_master
variables:
STARPU_WORKERS_NOBIND: 1
STARPU_SILENT: 1
VERSION: starpu
CATEGORY: shm
PRECISION: s
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
test_starpu_shm_d:
<<: *test_starpu_branches
variables:
STARPU_WORKERS_NOBIND: 1
STARPU_SILENT: 1
VERSION: starpu
CATEGORY: shm
PRECISION: d
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
test_starpu_shm_c:
<<: *test_starpu_master
variables:
STARPU_WORKERS_NOBIND: 1
STARPU_SILENT: 1
VERSION: starpu
CATEGORY: shm
PRECISION: c
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
test_starpu_shm_z:
<<: *test_starpu_master
variables:
STARPU_WORKERS_NOBIND: 1
STARPU_SILENT: 1
VERSION: starpu
CATEGORY: shm
PRECISION: z
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
test_starpu_mpi_s:
<<: *test_starpu_branches
variables:
STARPU_WORKERS_NOBIND: 1
STARPU_SILENT: 1
VERSION: starpu
CATEGORY: mpi
PRECISION: s
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
test_starpu_mpi_d:
<<: *test_starpu_master
variables:
STARPU_WORKERS_NOBIND: 1
STARPU_SILENT: 1
VERSION: starpu
CATEGORY: mpi
PRECISION: d
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
test_starpu_mpi_c:
<<: *test_starpu_master
variables:
STARPU_WORKERS_NOBIND: 1
STARPU_SILENT: 1
VERSION: starpu
CATEGORY: mpi
PRECISION: c
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
test_starpu_mpi_z:
<<: *test_starpu_master
variables:
STARPU_WORKERS_NOBIND: 1
STARPU_SILENT: 1
VERSION: starpu
CATEGORY: mpi
PRECISION: z
TESTS_RESTRICTION: "-R \"_${CATEGORY}_${PRECISION}\""
---
.test_starpu_simgrid_template: &test_starpu_simgrid
extends: .test_script_template
needs: [build_starpu_simgrid]
dependencies:
- build_starpu_simgrid
artifacts:
name: test_starpu_simgrid
expire_in: 48 hours
paths:
- build_starpu_simgrid
- chameleon_starpu_simgrid_*.log
- chameleon_starpu_simgrid_*.lcov
- bis_chameleon_starpu_simgrid_*.lcov
.test_starpu_simgrid_template_master: &test_starpu_simgrid_master
extends:
- .test_starpu_simgrid_template
- .only-master
.test_starpu_simgrid_template_branches: &test_starpu_simgrid_branches
extends:
- .test_starpu_simgrid_template
- .only-branches
test_starpu_simgrid_simu_all:
<<: *test_starpu_simgrid_branches
variables:
STARPU_WORKERS_NOBIND: 1
SIMU: simu
VERSION: starpu_simgrid
CATEGORY: simu
PRECISION: all
TESTS_RESTRICTION: "-R \"_${CATEGORY}\""
......@@ -7,7 +7,7 @@
set(CTEST_PROJECT_NAME "Chameleon")
set(CTEST_NIGHTLY_START_TIME "00:00:00 GMT")
set(CTEST_DROP_METHOD "https")
set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "cdash.inria.fr")
set(CTEST_DROP_LOCATION "/CDash/submit.php?project=chameleon")
set(CTEST_DROP_SITE_CDASH TRUE)
......
......@@ -12,11 +12,12 @@
./tools/find_sources.sh
# Generate coverage xml output
lcov -a $PWD/chameleon_starpu.lcov \
-a $PWD/chameleon_starpu_simgrid.lcov \
-a $PWD/chameleon_quark.lcov \
-a $PWD/chameleon_parsec.lcov \
-o $PWD/chameleon.lcov
INPUT_FILES=""
for name in $( ls -1 chameleon_*.lcov | grep -v simgrid)
do
INPUT_FILES="$INPUT_FILES -a $name";
done
lcov $INPUT_FILES -o chameleon.lcov
lcov --summary chameleon.lcov
lcov_cobertura.py chameleon.lcov --output chameleon_coverage.xml
......@@ -24,7 +25,12 @@ lcov_cobertura.py chameleon.lcov --output chameleon_coverage.xml
export UNDEFINITIONS="-UCHAMELEON_USE_OPENCL -UWIN32 -UWIN64 -U_MSC_EXTENSIONS -U_MSC_VER -U__SUNPRO_C -U__SUNPRO_CC -U__sun -Usun -U__cplusplus"
# run cppcheck analysis
cppcheck -v -f --language=c --platform=unix64 --enable=all --xml --xml-version=2 --suppress=missingInclude ${UNDEFINITIONS} --file-list=./filelist.txt 2> chameleon_cppcheck.xml
CPPCHECK_OPT=" -v -f --language=c --platform=unix64 --enable=all --xml --xml-version=2 --suppress=missingInclude ${UNDEFINITIONS}"
cppcheck $CPPCHECK_OPT --file-list=./filelist_none.txt 2> chameleon_cppcheck.xml
cppcheck $CPPCHECK_OPT -DPRECISION_s -UPRECISION_d -UPRECISION_c -UPRECISION_z --file-list=./filelist_s.txt 2>> chameleon_cppcheck.xml
cppcheck $CPPCHECK_OPT -DPRECISION_d -UPRECISION_s -UPRECISION_c -UPRECISION_z --file-list=./filelist_d.txt 2>> chameleon_cppcheck.xml
cppcheck $CPPCHECK_OPT -DPRECISION_c -UPRECISION_s -UPRECISION_d -UPRECISION_z --file-list=./filelist_c.txt 2>> chameleon_cppcheck.xml
cppcheck $CPPCHECK_OPT -DPRECISION_z -UPRECISION_s -UPRECISION_d -UPRECISION_c --file-list=./filelist_z.txt 2>> chameleon_cppcheck.xml
# create the sonarqube config file
cat > sonar-project.properties << EOF
......
#!/bin/sh
set -x
#set -x
SRCDIR_TO_ANALYZE="build-openmp/runtime/openmp build-parsec/runtime/parsec build-quark/runtime/quark build-starpu compute control coreblas example include runtime testing timing"
SRCDIR_TO_ANALYZE="build-openmp/runtime/openmp build-parsec/runtime/parsec build-quark/runtime/quark build-starpu build compute control coreblas example include runtime testing timing"
echo $PWD
rm -f filelist.txt
......@@ -27,3 +27,16 @@ for file in coreblas/include/coreblas/cblas.h coreblas/include/coreblas/lapacke.
do
sed -i "\:^$file.*:d" filelist.txt
done
rm -f filelist_*.txt
for name in $(cat filelist.txt)
do
test=$(grep "@generated" $name | wc -l)
if [ $test -gt 0 ]
then
prec=$(grep "@generated" $name | sed 's/^.*[scdz] -> \([sdcz]\).*$/\1/')
echo $name >> filelist_${prec}.txt
else
echo $name >> filelist_none.txt
fi
done
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