Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 328e447d authored by Mathieu Faverge's avatar Mathieu Faverge
Browse files

Merge branch 'ci-update-docker' into 'master'

Update docker environment, use shared runners, and plafrim for cuda/rocm

See merge request !501
parents 415ac4e8 72af1881
No related branches found
No related tags found
1 merge request!501Update docker environment, use shared runners, and plafrim for cuda/rocm
Showing with 250 additions and 119 deletions
...@@ -26,32 +26,11 @@ if [[ "$SYSTEM" == "linux" ]]; then ...@@ -26,32 +26,11 @@ if [[ "$SYSTEM" == "linux" ]]; then
fi fi
export STARPU_DIR=/home/gitlab/install/starpu${STARPU_VARIANT} export STARPU_DIR=/home/gitlab/install/starpu${STARPU_VARIANT}
# add additional env. var. depending on the starpu variant
case $STARPU_VARIANT in
-hip )
export CMAKE_PREFIX_PATH=$STARPU_DIR:/opt/rocm
export LD_LIBRARY_PATH=/opt/rocm/lib
;;
-hipcuda )
export CMAKE_PREFIX_PATH=$STARPU_DIR:$HIPCUDA_DIR
export LD_LIBRARY_PATH=$HIPCUDA_DIR/lib
export HIP_PLATFORM=nvidia
export HIP_PATH=$HIPCUDA_DIR
;;
* )
;;
esac
# for build: better to rely on pkg-config than to guess libraries with the env. var. # for build: better to rely on pkg-config than to guess libraries with the env. var.
export PKG_CONFIG_PATH=$PARSEC_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH=$STARPU_DIR/lib/pkgconfig:$PKG_CONFIG_PATH export PKG_CONFIG_PATH=$STARPU_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
export PKG_CONFIG_PATH=$SIMGRID_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
# for ctest: we need this at runtime # for ctest: we need this at runtime
export LD_LIBRARY_PATH=$PARSEC_DIR/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$QUARK_DIR/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$STARPU_DIR/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$STARPU_DIR/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$SIMGRID_DIR/lib:$LD_LIBRARY_PATH
elif [[ "$SYSTEM" == "windows" ]]; then elif [[ "$SYSTEM" == "windows" ]]; then
......
--- ---
stages: stages:
- docker
- pre - pre
- build - build
- test - test
...@@ -7,20 +8,10 @@ stages: ...@@ -7,20 +8,10 @@ stages:
- analyze - analyze
- deploy - deploy
# git config --global ahev been added to get around the issue related in
# https://github.com/actions/checkout/issues/760 for github
# Does not seem to be fixed for gitlab-runner yet
before_script:
- git config --global --add safe.directory $CI_PROJECT_DIR
- git config --global --add safe.directory $CI_PROJECT_DIR/cmake_modules/morse_cmake
- git config --global --add safe.directory $CI_PROJECT_DIR/coreblas/hmat-oss
- git config --global --add safe.directory $CI_PROJECT_DIR/hqr
- git config --global --add safe.directory $CI_PROJECT_DIR/testing/test_fembem
- git submodule update --init --recursive
include: include:
- .gitlab/preliminary.yml
- .gitlab/common.yml - .gitlab/common.yml
- .gitlab/preliminary.yml
- .gitlab/docker.yml
- .gitlab/build.yml - .gitlab/build.yml
- .gitlab/test_starpu.yml - .gitlab/test_starpu.yml
- .gitlab/test_starpu_simgrid.yml - .gitlab/test_starpu_simgrid.yml
......
#
# @file Dockerfile
#
# @copyright 2024-2024 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# Univ. Bordeaux. All rights reserved.
#
# @version 1.3.0
# @author Florent Pruvost
# @date 2024-11-22
#
# This docker image is used to test the package during gitlab-ci pipelines.
# It should be stored in the gitlab's project container registry:
# https://gitlab.inria.fr/solverstack/chameleon/container_registry
#
FROM registry.gitlab.inria.fr/solverstack/docker/analysis
USER root
# Chameleon dependencies: cpu kernels
RUN apt-get -y upgrade --no-install-recommends \
libblas-dev \
liblapack-dev \
liblapacke-dev
RUN update-alternatives --set libblas.so-x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/blas/libblas.so
RUN update-alternatives --set libblas.so.3-x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/blas/libblas.so.3
RUN update-alternatives --set liblapack.so-x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/lapack/liblapack.so
RUN update-alternatives --set liblapack.so.3-x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3
# Starpu dependencies
RUN apt-get -y upgrade --no-install-recommends \
autoconf \
automake \
libtool-bin \
libfxt-dev \
libhwloc-dev \
libopenmpi-dev \
libsimgrid-dev
RUN apt-get autoremove -y
RUN apt-get autoclean -y
RUN apt-get purge -y
RUN update-ca-certificates
# Install PARSEC
RUN git clone https://bitbucket.org/mfaverge/parsec.git && \
cd parsec && \
git checkout mymaster && \
git checkout 6022a61dc96c25f11dd2aeabff2a5b3d7bce867d && \
git submodule update && \
cmake -B build -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=ON -DPARSEC_GPU_WITH_CUDA=OFF -DPARSEC_DIST_WITH_MPI=OFF && \
cmake --build build -j5 && \
cmake --install build && \
cd .. && \
rm parsec/ -rf
# Install QUARK
RUN git clone https://github.com/ecrc/quark && \
cd quark/ && \
git checkout db4aef9a66a00487d849cf8591927dcebe18ef2f && \
sed -i -e "s#prefix=.*#prefix=/usr#g" make.inc && \
sed -i -e "s#CFLAGS=.*#CFLAGS= -g -O2 -DADD_ -fPIC#g" make.inc && \
make && \
make install && \
cd .. && \
rm quark/ -rf
# Install StarPU
RUN wget https://files.inria.fr/starpu/starpu-1.4.7/starpu-1.4.7.tar.gz > /dev/null 2>&1 && \
tar xzf starpu-1.4.7.tar.gz && \
cd starpu-1.4.7/ && \
./configure --prefix=/home/gitlab/install/starpu --enable-debug --disable-build-doc --with-fxt --disable-simgrid && \
make -j5 install
# Install StarPU with Simgrid
RUN cd starpu-1.4.7/ && \
./configure --prefix=/home/gitlab/install/starpu-simgrid --enable-debug --disable-build-doc --with-fxt --enable-simgrid && \
make -j5 install && \
cd ../ && \
rm starpu-1.4.7/ -rf && \
rm starpu-1.4.7.tar.gz
USER gitlab
# Set some default environment variables
ENV LIBRARY_PATH=/usr/local/lib
ENV LD_LIBRARY_PATH=/usr/local/lib
ENV PKG_CONFIG_PATH=/home/gitlab/install/starpu/lib/pkgconfig
#
# @file Dockerfile-pages
#
# @copyright 2024-2024 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# Univ. Bordeaux. All rights reserved.
#
# @version 1.3.0
# @author Florent Pruvost
# @date 2024-12-02
#
# This docker image is used to test the package during gitlab-ci pipelines.
# It should be stored in the gitlab's project container registry:
# https://gitlab.inria.fr/solverstack/chameleon/container_registry
#
FROM registry.gitlab.inria.fr/solverstack/chameleon
USER root
# Chameleon tools/pages.sh script additional dependencies
RUN apt-get -y upgrade --no-install-recommends \
emacs \
emacs-goodies-el \
elpa-htmlize \
python3-click \
python3-elasticsearch \
python3-pandas \
r-cran-ggplot2 \
r-cran-plyr \
r-cran-reshape2
RUN apt-get autoremove -y
RUN apt-get autoclean -y
RUN apt-get purge -y
USER gitlab
# Set some default environment variables
ENV LIBRARY_PATH=/usr/local/lib
ENV LD_LIBRARY_PATH=/usr/local/lib
ENV PKG_CONFIG_PATH=/home/gitlab/install/starpu/lib/pkgconfig
...@@ -3,8 +3,25 @@ set -ex ...@@ -3,8 +3,25 @@ set -ex
SCAN="" SCAN=""
if [[ "$SYSTEM" != "windows" ]]; then # Configure with CMake
if [[ "$SYSTEM" == "macosx" ]]; then case $SYSTEM in
guix)
echo "build on guix"
cmake -B build-${VERSION} -S . -C cmake_modules/gitlab-ci-initial-cache.cmake $BUILD_OPTIONS
;;
linux)
echo "build on linux"
source .gitlab-ci-env.sh $CHAM_CI_ENV_ARG
if [[ $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH ]]; then
SCAN="scan-build -plist --intercept-first --exclude CMakeFiles --analyze-headers -o analyzer_reports "
fi
eval '${SCAN}cmake -B build-${VERSION} -S . -C cmake_modules/gitlab-ci-initial-cache.cmake $BUILD_OPTIONS'
;;
macosx)
echo "build on macosx"
# check starpu is already installed and install it if necessary # check starpu is already installed and install it if necessary
DEP_INSTALLED=`brew ls --versions starpu | cut -d " " -f 2` DEP_INSTALLED=`brew ls --versions starpu | cut -d " " -f 2`
if [[ -z "${DEP_INSTALLED}" ]]; then if [[ -z "${DEP_INSTALLED}" ]]; then
...@@ -24,23 +41,27 @@ if [[ "$SYSTEM" != "windows" ]]; then ...@@ -24,23 +41,27 @@ if [[ "$SYSTEM" != "windows" ]]; then
cmake -B build-${VERSION} -S . \ cmake -B build-${VERSION} -S . \
-DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=$PWD/install-${VERSION} \ -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=$PWD/install-${VERSION} \
-DMORSE_ENABLE_COVERAGE=OFF -DBLA_PREFER_PKGCONFIG=ON -DMORSE_ENABLE_COVERAGE=OFF -DBLA_PREFER_PKGCONFIG=ON
else ;;
source .gitlab-ci-env.sh $CHAM_CI_ENV_ARG
if [[ $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH ]] windows)
then echo "build on windows"
SCAN="scan-build -plist --intercept-first --exclude CMakeFiles --analyze-headers -o analyzer_reports " # on windows the mpi_f08 interface is missing, see https://www.scivision.dev/windows-mpi-msys2/
fi # do not use static libraries because executables are too large and the build
eval '${SCAN}cmake -B build-${VERSION} -S . -C cmake_modules/gitlab-ci-initial-cache.cmake $BUILD_OPTIONS' # directory can reach more than 10Go
fi cmake -GNinja -B build-${VERSION} -S . \
else -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=$PWD/install-${VERSION} \
# on windows the mpi_f08 interface is missing, see https://www.scivision.dev/windows-mpi-msys2/ -DCHAMELEON_USE_MPI=OFF
# do not use static libraries because executables are too large and the build ;;
# directory can reach more than 10Go *)
cmake -GNinja -B build-${VERSION} -S . \ echo "The SYSTEM environment variable is $SYSTEM. It is not one of : guix, linux, macosx, windows -> exit 1."
-DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=$PWD/install-${VERSION} \ exit 1
-DCHAMELEON_USE_MPI=OFF ;;
fi esac
eval '${SCAN}cmake --build build-${VERSION} -j 4'
# Compile
eval '${SCAN}cmake --build build-${VERSION} -j 4 > /dev/null'
# Install
cmake --install build-${VERSION} cmake --install build-${VERSION}
# #
...@@ -58,7 +79,10 @@ fi ...@@ -58,7 +79,10 @@ fi
export FC=gfortran export FC=gfortran
# Set the path variables # Set the path variables
if [[ "$SYSTEM" == "linux" ]]; then if [[ "$SYSTEM" == "guix" ]]; then
export LIBRARY_PATH=$PWD/../../install-${VERSION}/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=$PWD/../../install-${VERSION}/lib:$LD_LIBRARY_PATH
elif [[ "$SYSTEM" == "linux" ]]; then
export LIBRARY_PATH=$PWD/../../install-${VERSION}/lib:$LIBRARY_PATH export LIBRARY_PATH=$PWD/../../install-${VERSION}/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=$PWD/../../install-${VERSION}/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$PWD/../../install-${VERSION}/lib:$LD_LIBRARY_PATH
elif [[ "$SYSTEM" == "macosx" ]]; then elif [[ "$SYSTEM" == "macosx" ]]; then
......
--- ---
.build_script_linux: .build_script_common:
stage: build stage: build
tags: ["docker", "large"]
extends: .only-master-mr extends: .only-master-mr
script:
- bash .gitlab/build.sh | tee ${LOGNAME}.log
artifacts: artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 180 minutes expire_in: 1 week
untracked: true untracked: true
when: always when: always
.build_script_linux:
extends: .build_script_common
script:
- bash .gitlab/build.sh | tee ${LOGNAME}.log
build_hmat: build_hmat:
extends: .build_script_linux extends: .build_script_linux
variables: variables:
...@@ -27,7 +29,6 @@ build_openmp: ...@@ -27,7 +29,6 @@ build_openmp:
LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}" LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
BUILD_OPTIONS: "-DCHAMELEON_SCHED=OPENMP" BUILD_OPTIONS: "-DCHAMELEON_SCHED=OPENMP"
build_parsec: build_parsec:
extends: .build_script_linux extends: .build_script_linux
variables: variables:
...@@ -50,25 +51,34 @@ build_starpu: ...@@ -50,25 +51,34 @@ build_starpu:
SYSTEM: linux SYSTEM: linux
VERSION: starpu VERSION: starpu
LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}" LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
BUILD_OPTIONS: "-DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=ON" BUILD_OPTIONS: "-DCHAMELEON_USE_CUDA=OFF -DCHAMELEON_USE_MPI=ON"
build_starpu_hip: .build_script_guix:
extends: .build_script_linux tags: ['plafrim']
extends: .build_script_common
script:
- guix describe -f channels
- guix shell --pure --preserve=SYSTEM --preserve=VERSION --preserve=LOGNAME --preserve=BUILD_OPTIONS
-D chameleon-${GUIX_CHAMELEON_VARIANT} coreutils bash-minimal --
bash .gitlab/build.sh | tee ${LOGNAME}.log
build_starpu_cuda:
extends: .build_script_guix
variables: variables:
SYSTEM: linux SYSTEM: guix
VERSION: starpu_hip VERSION: starpu_cuda
GUIX_CHAMELEON_VARIANT: cuda
LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}" LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
CHAM_CI_ENV_ARG: hip BUILD_OPTIONS: "-DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=ON -DBLA_VENDOR=OpenBLAS"
BUILD_OPTIONS: "-DCHAMELEON_USE_HIP_ROC=ON -DCHAMELEON_USE_MPI=ON"
build_starpu_hipcuda: build_starpu_hip:
extends: .build_script_linux extends: .build_script_guix
variables: variables:
SYSTEM: linux SYSTEM: guix
VERSION: starpu_hipcuda VERSION: starpu_hip
GUIX_CHAMELEON_VARIANT: hip
LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}" LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
CHAM_CI_ENV_ARG: hipcuda BUILD_OPTIONS: "-DCHAMELEON_USE_HIP_ROC=ON -DCHAMELEON_USE_MPI=ON -DBLA_VENDOR=OpenBLAS -DCMAKE_C_COMPILER=gcc -DCMAKE_Fortran_COMPILER=gfortran"
BUILD_OPTIONS: "-DCHAMELEON_USE_HIP_CUDA=ON -DCHAMELEON_HIPBLAS_PATH=/home/gitlab/hipcuda/hipblas -DCHAMELEON_USE_MPI=ON"
build_starpu_simgrid: build_starpu_simgrid:
extends: .build_script_linux extends: .build_script_linux
...@@ -91,7 +101,7 @@ build_starpu_macosx: ...@@ -91,7 +101,7 @@ build_starpu_macosx:
- bash .gitlab/build.sh | tee ${LOGNAME}.log - bash .gitlab/build.sh | tee ${LOGNAME}.log
artifacts: artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 180 minutes expire_in: 1 week
paths: paths:
- ${LOGNAME}.log - ${LOGNAME}.log
cache: cache:
...@@ -113,7 +123,7 @@ build_starpu_macosx: ...@@ -113,7 +123,7 @@ build_starpu_macosx:
- bash -lc .gitlab/build.sh | tee "$env:LOGNAME.log" - bash -lc .gitlab/build.sh | tee "$env:LOGNAME.log"
artifacts: artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 180 minutes expire_in: 1 week
paths: paths:
- ${LOGNAME}.log - ${LOGNAME}.log
cache: cache:
......
...@@ -21,7 +21,7 @@ then ...@@ -21,7 +21,7 @@ then
exit 1 exit 1
fi fi
cmake -B build -DCMAKE_PREFIX_PATH=$1 cmake -B build -DCMAKE_PREFIX_PATH=$1
cmake --build build --verbose cmake --build build --verbose
if [[ "$VERSION" != "starpu_simgrid" ]]; then if [[ "$VERSION" != "starpu_simgrid" ]]; then
ctest --test-dir build --verbose ctest --test-dir build --verbose
fi fi
...@@ -3,13 +3,16 @@ ...@@ -3,13 +3,16 @@
# #
--- ---
default: default:
image: registry.gitlab.inria.fr/solverstack/docker/distrib image: $CI_REGISTRY_IMAGE
tags: ['ci.inria.fr', 'linux', 'large'] tags: ['ci.inria.fr', 'linux', 'large'] # gitlab instance runner (i.e. docker on linux)
interruptible: true
variables:
GIT_SUBMODULE_STRATEGY: recursive
# push event: executed only if the source branch name is master or starts with ci- # push event: executed only if the source branch name is master or starts with ci-
# schedule event: not executed # schedule event: not executed
.only-master: .only-master:
interruptible: true
rules: rules:
- if: ($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /^ci-.*$/) && $CI_PIPELINE_SOURCE != "schedule" - if: ($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /^ci-.*$/) && $CI_PIPELINE_SOURCE != "schedule"
...@@ -17,14 +20,12 @@ default: ...@@ -17,14 +20,12 @@ default:
# merge request event: executed if the source branch name does not start with notest- # merge request event: executed if the source branch name does not start with notest-
# schedule event: not executed # schedule event: not executed
.only-master-mr: .only-master-mr:
interruptible: true
rules: rules:
- if: ($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /^ci-.*$/) && $CI_PIPELINE_SOURCE != "schedule" - if: ($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /^ci-.*$/) && $CI_PIPELINE_SOURCE != "schedule"
- if: ($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME !~ /^notest-.*$/) - if: ($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME !~ /^notest-.*$/)
# merge request event: executed if the source branch name does not start with notest- # merge request event: executed if the source branch name does not start with notest-
.only-mr: .only-mr:
interruptible: true
rules: rules:
- if: ($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME !~ /^notest-.*$/) - if: ($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME !~ /^notest-.*$/)
...@@ -34,7 +35,7 @@ default: ...@@ -34,7 +35,7 @@ default:
- bash .gitlab/test.sh | tee ${LOGNAME}.log - bash .gitlab/test.sh | tee ${LOGNAME}.log
artifacts: artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 180 minutes expire_in: 1 week
untracked: true untracked: true
reports: reports:
junit: ${LOGNAME}-junit.xml junit: ${LOGNAME}-junit.xml
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
coverage: /^\s*lines......:\s*\d+.\d+\%/ coverage: /^\s*lines......:\s*\d+.\d+\%/
artifacts: artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 180 minutes expire_in: 1 week
paths: paths:
- chameleon-*.lcov - chameleon-*.lcov
- chameleon.lcov - chameleon.lcov
...@@ -32,7 +32,6 @@ coverage_master: ...@@ -32,7 +32,6 @@ coverage_master:
coverage_mr: coverage_mr:
extends: .coverage extends: .coverage
interruptible: true
rules: rules:
- if: ($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME !~ /^notest-.*$/) - if: ($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME !~ /^notest-.*$/)
needs: [test_openmp_mr,test_parsec_mr,test_quark_mr,test_starpu_mr,test_starpu_simgrid_simu_all] needs: [test_openmp_mr,test_parsec_mr,test_quark_mr,test_starpu_mr,test_starpu_simgrid_simu_all]
--- ---
coverity: coverity:
stage: analyze stage: analyze
tags: ["docker", "large"]
interruptible: true
rules: rules:
- if: ($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /^ci-.*$/) && $CI_PIPELINE_SOURCE != "schedule" - if: ($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /^ci-.*$/) && $CI_PIPELINE_SOURCE != "schedule"
- if: ($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME !~ /^notest-.*$/) - if: ($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME !~ /^notest-.*$/)
...@@ -12,17 +10,7 @@ coverity: ...@@ -12,17 +10,7 @@ coverity:
variables: variables:
VERSION: coverity VERSION: coverity
script: script:
- (mkdir -p build-$VERSION && cd build-$VERSION && - ./tools/coverity.sh
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
artifacts: artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 1 week expire_in: 1 week
......
---
.docker_script_common:
stage: docker
image: docker
when: manual
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- docker build -f $IMAGE_FILE -t $IMAGE_NAME $PWD
- docker push $IMAGE_NAME
docker-tests:
extends: .docker_script_common
variables:
IMAGE_FILE: .gitlab/Dockerfile
IMAGE_NAME: $CI_REGISTRY_IMAGE
docker-pages:
extends: .docker_script_common
variables:
IMAGE_FILE: .gitlab/Dockerfile-pages
IMAGE_NAME: $CI_REGISTRY_IMAGE/pages
--- ---
pages: pages:
stage: deploy stage: deploy
image: $CI_REGISTRY_IMAGE/pages
extends: .only-master extends: .only-master
needs: [coverage_master] needs: [coverage_master]
variables:
VERSION: pages
script:
- ./tools/pages.sh
artifacts: artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 1 week expire_in: 1 week
paths: paths:
- public - public
variables:
VERSION: pages
script:
- ./tools/pages.sh
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
--- ---
preliminary_checks: preliminary_checks:
stage: pre stage: pre
interruptible: true
rules: rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" - if: $CI_PIPELINE_SOURCE == "merge_request_event"
parallel: parallel:
......
--- ---
.sonarqube: .sonarqube:
stage: analyze stage: analyze
tags: ["docker", "large"]
variables: variables:
GIT_DEPTH: "0" GIT_DEPTH: "0"
VERSION: sonarqube VERSION: sonarqube
...@@ -14,7 +13,7 @@ ...@@ -14,7 +13,7 @@
- ./tools/analysis.sh - ./tools/analysis.sh
artifacts: artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 180 minutes expire_in: 1 week
when: always when: always
paths: paths:
- filelist.txt - filelist.txt
...@@ -31,7 +30,6 @@ sonarqube_master: ...@@ -31,7 +30,6 @@ sonarqube_master:
sonarqube_mr: sonarqube_mr:
extends: .sonarqube extends: .sonarqube
interruptible: true
rules: rules:
- if: ($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME !~ /^notest-.*$/) - if: ($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME !~ /^notest-.*$/)
when: manual when: manual
......
#!/usr/bin/env bash #!/usr/bin/env bash
fatal() { set -e
echo "$0: error occurred, exit"
exit 1
}
set -x set -x
cd build-$VERSION cd build-$VERSION
source ../.gitlab-ci-env.sh $CHAM_CI_ENV_ARG || fatal source ../.gitlab-ci-env.sh $CHAM_CI_ENV_ARG
CTESTCOMMAND=`echo "ctest --output-on-failure --no-compress-output $TESTS_RESTRICTION -T Test --output-junit ../${LOGNAME}-junit.xml"` ctest --output-on-failure --no-compress-output $TESTS_RESTRICTION --output-junit ../${LOGNAME}-junit.xml
$CTESTCOMMAND || fatal
if [[ "$SYSTEM" == "linux" ]]; then if [[ "$SYSTEM" == "linux" ]]; then
# clang is used on macosx and it is not compatible with MORSE_ENABLE_COVERAGE=ON # clang is used on macosx and it is not compatible with MORSE_ENABLE_COVERAGE=ON
# so that we can only make the coverage report on the linux runner with gcc # so that we can only make the coverage report on the linux runner with gcc
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
.test_openmp: .test_openmp:
extends: .test_script_linux extends: .test_script_linux
needs: [build_openmp] needs: [build_openmp]
interruptible: true
variables: variables:
SYSTEM: linux SYSTEM: linux
VERSION: openmp VERSION: openmp
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
.test_parsec: .test_parsec:
extends: .test_script_linux extends: .test_script_linux
needs: [build_parsec] needs: [build_parsec]
interruptible: true
variables: variables:
SYSTEM: linux SYSTEM: linux
VERSION: parsec VERSION: parsec
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
.test_quark: .test_quark:
extends: .test_script_linux extends: .test_script_linux
needs: [build_quark] needs: [build_quark]
interruptible: true
variables: variables:
SYSTEM: linux SYSTEM: linux
VERSION: quark VERSION: quark
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
.test_starpu: .test_starpu:
extends: .test_script_linux extends: .test_script_linux
needs: [build_starpu] needs: [build_starpu]
interruptible: true
variables: variables:
SYSTEM: linux SYSTEM: linux
VERSION: starpu VERSION: starpu
...@@ -43,7 +42,7 @@ test_starpu_macosx: ...@@ -43,7 +42,7 @@ test_starpu_macosx:
- bash .gitlab/test.sh | tee ${LOGNAME}.log - bash .gitlab/test.sh | tee ${LOGNAME}.log
artifacts: artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 180 minutes expire_in: 1 week
paths: paths:
- ${LOGNAME}.log - ${LOGNAME}.log
reports: reports:
...@@ -69,7 +68,7 @@ test_starpu_macosx: ...@@ -69,7 +68,7 @@ test_starpu_macosx:
- bash -lc .gitlab/test.sh | tee "$env:LOGNAME.log" - bash -lc .gitlab/test.sh | tee "$env:LOGNAME.log"
artifacts: artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG" name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 180 minutes expire_in: 1 week
paths: paths:
- ${LOGNAME}.log - ${LOGNAME}.log
reports: reports:
......
...@@ -766,7 +766,7 @@ add_custom_target(chameleon_all_sources ALL DEPENDS ${CHAMELEON_SOURCES_TARGETS} ...@@ -766,7 +766,7 @@ add_custom_target(chameleon_all_sources ALL DEPENDS ${CHAMELEON_SOURCES_TARGETS}
if(CHAMELEON_ENABLE_DOC) if(CHAMELEON_ENABLE_DOC)
add_subdirectory(doc) add_subdirectory(doc)
if (DOXYGEN_EXECUTABLE AND EMACS_COMPILER AND TEX_COMPILER) if (DOXYGEN_EXECUTABLE AND EMACS_COMPILER)
add_custom_target(doc ALL DEPENDS doc-homepage doxygen-out) add_custom_target(doc ALL DEPENDS doc-homepage doxygen-out)
endif() endif()
endif() endif()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment