image: hpclib/hiepacs stages: - build - test - analyse - deploy before_script: - git submodule update --init --recursive - source .gitlab-ci-env.sh $SIMU - mkdir -p build-$VERSION .build_script_template: &build_script stage: build tags: ["large"] script: - echo BUILD_OPTIONS $BUILD_OPTIONS - echo VERSION $VERSION - (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 ../chameleon_${VERSION}.log) - (cd build-$VERSION && make install | tee -a ../chameleon_${VERSION}.log && rm install/ -r) .test_script_template: &test_script stage: test tags: ["large"] script: - echo TESTS_RESTRICTION $TESTS_RESTRICTION - echo VERSION $VERSION - (cd build-$VERSION && eval "ctest --no-compress-output -V $TESTS_RESTRICTION -D ExperimentalTest -D ExperimentalCoverage -D ExperimentalSubmit | tee -a ../chameleon_${VERSION}.log") - lcov --directory build-$VERSION --capture --output-file ./chameleon_${VERSION}.lcov build_openmp: <<: *build_script artifacts: name: build_openmp expire_in: 48 hours paths: - build-$VERSION - chameleon_openmp.log variables: BUILD_OPTIONS: "-DCHAMELEON_SCHED=OPENMP" VERSION: openmp build_parsec: <<: *build_script artifacts: name: build_parsec expire_in: 48 hours paths: - build-$VERSION - chameleon_parsec.log variables: BUILD_OPTIONS: "-DCHAMELEON_SCHED=PARSEC" VERSION: parsec build_quark: <<: *build_script artifacts: name: build_quark expire_in: 48 hours paths: - build-$VERSION - chameleon_quark.log variables: BUILD_OPTIONS: "-DCHAMELEON_SCHED=QUARK" VERSION: quark build_starpu: <<: *build_script artifacts: name: build_starpu expire_in: 48 hours paths: - build-$VERSION - chameleon_starpu.log variables: BUILD_OPTIONS: "-DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=ON" VERSION: starpu build_starpu_simgrid: <<: *build_script artifacts: name: build_starpu_simgrid expire_in: 48 hours paths: - build-$VERSION - chameleon_starpu_simgrid.log variables: SIMU: simu BUILD_OPTIONS: "-DCHAMELEON_SIMULATION=ON -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=OFF" VERSION: starpu_simgrid test_openmp_branches: <<: *test_script variables: TESTS_RESTRICTION: "-R \"test_shm_s|test_mpi_s\"" VERSION: openmp dependencies: - build_openmp artifacts: name: test_openmp expire_in: 48 hours paths: - build-$VERSION - chameleon_openmp.log - chameleon_openmp.lcov only: - branches except: - master - /^ci-.*$/ test_openmp_master: <<: *test_script variables: TESTS_RESTRICTION: "-R \"_shm_|_mpi_\"" VERSION: openmp dependencies: - build_openmp artifacts: name: test_openmp expire_in: 48 hours paths: - build-$VERSION - chameleon_openmp.log - chameleon_openmp.lcov only: - master@solverstack/chameleon - /^ci-.*$/ test_parsec_branches: <<: *test_script variables: TESTS_RESTRICTION: "-R \"test_shm_s|test_mpi_s\"" VERSION: parsec dependencies: - build_parsec artifacts: name: test_parsec expire_in: 48 hours paths: - build-$VERSION - chameleon_parsec.log - chameleon_parsec.lcov only: - branches except: - master - /^ci-.*$/ test_parsec_master: <<: *test_script variables: TESTS_RESTRICTION: "-R \"_shm_|_mpi_\"" VERSION: parsec dependencies: - build_parsec artifacts: name: test_parsec expire_in: 48 hours paths: - build-$VERSION - chameleon_parsec.log - chameleon_parsec.lcov only: - master@solverstack/chameleon - /^ci-.*$/ test_quark_branches: <<: *test_script variables: TESTS_RESTRICTION: "-R \"test_shm_s|test_mpi_s\"" VERSION: quark dependencies: - build_quark artifacts: name: test_quark expire_in: 48 hours paths: - build-$VERSION - chameleon_quark.log - chameleon_quark.lcov only: - branches except: - master - /^ci-.*$/ test_quark_master: <<: *test_script variables: TESTS_RESTRICTION: "-R \"_shm_|_mpi_\"" VERSION: quark dependencies: - build_quark artifacts: name: test_quark expire_in: 48 hours paths: - build-$VERSION - chameleon_quark.log - chameleon_quark.lcov only: - master@solverstack/chameleon - /^ci-.*$/ test_starpu_branches: <<: *test_script variables: TESTS_RESTRICTION: "-R \"test_shm_s|test_mpi_s|time_ooc_shm_s|time_ooc_mpi_s\"" VERSION: starpu dependencies: - build_starpu artifacts: name: test_starpu expire_in: 48 hours paths: - build-$VERSION - chameleon_starpu.log - chameleon_starpu.lcov only: - branches except: - master - /^ci-.*$/ test_starpu_master: <<: *test_script variables: TESTS_RESTRICTION: "-R \"_shm_|_mpi_\"" VERSION: starpu dependencies: - build_starpu artifacts: name: test_starpu expire_in: 48 hours paths: - build-$VERSION - chameleon_starpu.log - chameleon_starpu.lcov only: - master@solverstack/chameleon - /^ci-.*$/ test_starpu_simgrid_branches: <<: *test_script variables: SIMU: simu TESTS_RESTRICTION: "-R simu" VERSION: starpu_simgrid dependencies: - build_starpu_simgrid artifacts: name: test_starpu_simgrid expire_in: 48 hours paths: - build-$VERSION - chameleon_starpu_simgrid.log - chameleon_starpu_simgrid.lcov only: - branches except: - master - /^ci-.*$/ test_starpu_simgrid_master: <<: *test_script variables: SIMU: simu TESTS_RESTRICTION: "-R simu" VERSION: starpu_simgrid dependencies: - build_starpu_simgrid artifacts: name: test_starpu_simgrid expire_in: 48 hours paths: - build-$VERSION - chameleon_starpu_simgrid.log - chameleon_starpu_simgrid.lcov only: - master@solverstack/chameleon - /^ci-.*$/ coverage: stage: analyse dependencies: - test_starpu_branches - test_starpu_simgrid_branches - test_quark_branches - test_parsec_branches - test_openmp_branches script: - lcov -a chameleon_starpu.lcov -a chameleon_starpu_simgrid.lcov -a chameleon_quark.lcov -a chameleon_parsec.lcov -a chameleon_openmp.lcov -o chameleon.lcov - lcov --summary chameleon.lcov only: - branches except: - master - /^ci-.*$/ .coverity: 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 sonarqube: stage: analyse tags: ["large"] dependencies: - test_starpu_master - test_starpu_simgrid_master - test_quark_master - test_parsec_master - test_openmp_master artifacts: name: chameleon_analysis expire_in: 1 week paths: - chameleon_build.log - 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-.*$/ pages: 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-.*$/ release: stage: deploy dependencies: [] artifacts: name: chameleon_release expire_in: 1 week paths: - build-$VERSION/*.tar.gz variables: VERSION: release only: - /^release-.*$/ script: - ./tools/release.sh