Mentions légales du service

Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • solverstack/chameleon
  • lvilleve/chameleon-toto
  • jcletort/chameleon
  • thibault/chameleon
  • tcojean/chameleon
  • sylvand/chameleon
  • viroulea/chameleon
  • x-ltac/chameleon
  • agullo/chameleon
  • glucas/chameleon
  • pswartva/chameleon
  • aguermou1/chameleon
  • eyrauddu/chameleon
  • mverite/chameleon
  • alisito/chameleon
  • furmento/chameleon
  • fpruvost/chameleon
  • ahourcau/chameleon
  • bnicolas/chameleon
  • pesterie/chameleon
  • mmarcos/chameleon
21 results
Show changes
Commits on Source (281)
Showing
with 327 additions and 146 deletions
......@@ -26,32 +26,11 @@ if [[ "$SYSTEM" == "linux" ]]; then
fi
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.
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=$SIMGRID_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
# 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=$SIMGRID_DIR/lib:$LD_LIBRARY_PATH
elif [[ "$SYSTEM" == "windows" ]]; then
......
---
stages:
- docker
- pre
- build
- test
- coverage
- analyze
- validate
- 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:
- .gitlab/preliminary.yml
- .gitlab/common.yml
- .gitlab/preliminary.yml
- .gitlab/docker.yml
- .gitlab/build.yml
- .gitlab/test_starpu.yml
- .gitlab/test_starpu_plafrim.yml
- .gitlab/test_starpu_simgrid.yml
- .gitlab/test_parsec.yml
- .gitlab/test_quark.yml
......@@ -32,7 +23,6 @@ include:
- .gitlab/coverage.yml
- .gitlab/coverity.yml
- .gitlab/sonarqube.yml
- .gitlab/validate.yml
- .gitlab/bench_plafrim.yml
- .gitlab/pages.yml
- .gitlab/release.yml
#
# @file Dockerfile
#
# @copyright 2024-2025 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# Univ. Bordeaux. All rights reserved.
#
# @version 1.3.0
# @author Florent Pruvost
# @date 2024-12-03
#
# 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-2025 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# Univ. Bordeaux. All rights reserved.
#
# @version 1.3.0
# @author Florent Pruvost
# @date 2024-12-03
#
# 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
SCAN=""
if [[ "$SYSTEM" != "windows" ]]; then
if [[ "$SYSTEM" == "macosx" ]]; then
# Configure with CMake
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
DEP_INSTALLED=`brew ls --versions starpu | cut -d " " -f 2`
if [[ -z "${DEP_INSTALLED}" ]]; then
......@@ -24,29 +41,39 @@ if [[ "$SYSTEM" != "windows" ]]; then
cmake -B build-${VERSION} -S . \
-DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=$PWD/install-${VERSION} \
-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 ]]
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'
fi
else
# on windows the mpi_f08 interface is missing, see https://www.scivision.dev/windows-mpi-msys2/
# 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 . \
-DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=$PWD/install-${VERSION} \
-DCHAMELEON_USE_MPI=OFF
fi
eval '${SCAN}cmake --build build-${VERSION} -j 4'
;;
windows)
echo "build on windows"
# on windows the mpi_f08 interface is missing, see https://www.scivision.dev/windows-mpi-msys2/
# 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 . \
-DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=$PWD/install-${VERSION} \
-DCHAMELEON_USE_MPI=OFF
;;
*)
echo "The SYSTEM environment variable is $SYSTEM. It is not one of : guix, linux, macosx, windows -> exit 1."
exit 1
;;
esac
# Compile
eval '${SCAN}cmake --build build-${VERSION} -j ${CMAKE_BUILD_PARALLEL_LEVEL} > /dev/null'
# Install
cmake --install build-${VERSION}
#
# Check link to chameleon
#
cd .gitlab/check_link/
# Set the path variables
if [[ "$SYSTEM" == "windows" ]]; then
export PATH="/c/Windows/WinSxS/x86_microsoft-windows-m..namespace-downlevel_31bf3856ad364e35_10.0.19041.1_none_21374cb0681a6320":$PATH
fi
source install-${VERSION}/bin/chameleon_env
# Set the compiler
if [[ "$SYSTEM" == "macosx" ]]; then
......@@ -57,18 +84,7 @@ else
fi
export FC=gfortran
# Set the path variables
if [[ "$SYSTEM" == "linux" ]]; then
export LIBRARY_PATH=$PWD/../../install-${VERSION}/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=$PWD/../../install-${VERSION}/lib:$LD_LIBRARY_PATH
elif [[ "$SYSTEM" == "macosx" ]]; then
export LIBRARY_PATH=$PWD/../../install-${VERSION}/lib:$LIBRARY_PATH
export DYLD_LIBRARY_PATH=$PWD/../../install-${VERSION}/lib:$DYLD_LIBRARY_PATH
elif [[ "$SYSTEM" == "windows" ]]; then
export PATH="/c/Windows/WinSxS/x86_microsoft-windows-m..namespace-downlevel_31bf3856ad364e35_10.0.19041.1_none_21374cb0681a6320":$PATH
export PATH=$PWD/../../install-${VERSION}/bin:$PATH
fi
cd .gitlab/check_link/
# 1) using cmake:
./link_cmake.sh $PWD/../../install-${VERSION}
# 2) using pkg-config:
......
---
.build_script_linux:
.build_script_common:
stage: build
tags: ["docker", "large"]
extends: .only-master-mr
script:
- bash .gitlab/build.sh | tee ${LOGNAME}.log
variables:
CMAKE_BUILD_PARALLEL_LEVEL: 4
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 180 minutes
expire_in: 1 week
untracked: true
when: always
.build_script_linux:
extends: .build_script_common
tags: ['ci.inria.fr', 'linux', 'large']
variables:
GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME
SYSTEM: linux
script:
- bash .gitlab/build.sh | tee ${LOGNAME}.log
build_hmat:
extends: .build_script_linux
variables:
SYSTEM: linux
VERSION: hmat
LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
BUILD_OPTIONS: "-DCHAMELEON_USE_CUDA=OFF -DCHAMELEON_USE_MPI=ON -DCHAMELEON_USE_HMAT=ON"
BUILD_OPTIONS: "-DCHAMELEON_USE_CUDA=OFF -DCHAMELEON_USE_MPI=ON -DCHAMELEON_USE_HMATOSS=ON"
build_openmp:
extends: .build_script_linux
variables:
SYSTEM: linux
VERSION: openmp
LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
BUILD_OPTIONS: "-DCHAMELEON_SCHED=OPENMP"
build_parsec:
extends: .build_script_linux
variables:
SYSTEM: linux
VERSION: parsec
LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
BUILD_OPTIONS: "-DCHAMELEON_SCHED=PARSEC"
......@@ -39,7 +43,6 @@ build_parsec:
build_quark:
extends: .build_script_linux
variables:
SYSTEM: linux
VERSION: quark
LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
BUILD_OPTIONS: "-DCHAMELEON_SCHED=QUARK"
......@@ -47,33 +50,42 @@ build_quark:
build_starpu:
extends: .build_script_linux
variables:
SYSTEM: linux
VERSION: starpu
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:
extends: .build_script_linux
.build_script_guix:
tags: ['plafrim']
extends: .build_script_common
variables:
SYSTEM: linux
VERSION: starpu_hip
SYSTEM: guix
CMAKE_BUILD_PARALLEL_LEVEL: 20
script:
- guix describe -f channels
- guix shell --pure --preserve=SYSTEM --preserve=VERSION --preserve=LOGNAME --preserve=BUILD_OPTIONS --preserve=CMAKE_BUILD_PARALLEL_LEVEL
-D chameleon-${GPU_BACKEND} ${BLAS} coreutils bash-minimal --
bash .gitlab/build.sh | tee ${LOGNAME}.log
build_starpu_cuda:
extends: .build_script_guix
variables:
VERSION: starpu_cuda
GPU_BACKEND: cuda
BLAS: "--with-input=openblas=intel-oneapi-mkl"
LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
CHAM_CI_ENV_ARG: hip
BUILD_OPTIONS: "-DCHAMELEON_USE_HIP_ROC=ON -DCHAMELEON_USE_MPI=ON"
BUILD_OPTIONS: "-DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=OFF -DBLA_VENDOR=Intel10_64lp_seq"
build_starpu_hipcuda:
extends: .build_script_linux
build_starpu_hip:
extends: .build_script_guix
variables:
SYSTEM: linux
VERSION: starpu_hipcuda
VERSION: starpu_hip
GPU_BACKEND: hip
LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
CHAM_CI_ENV_ARG: hipcuda
BUILD_OPTIONS: "-DCHAMELEON_USE_HIP_CUDA=ON -DCHAMELEON_HIPBLAS_PATH=/home/gitlab/hipcuda/hipblas -DCHAMELEON_USE_MPI=ON"
BUILD_OPTIONS: "-DCHAMELEON_USE_HIP_ROC=ON -DCHAMELEON_USE_MPI=OFF -DBLA_VENDOR=OpenBLAS -DCMAKE_C_COMPILER=gcc -DCMAKE_Fortran_COMPILER=gfortran"
build_starpu_simgrid:
extends: .build_script_linux
variables:
SYSTEM: linux
VERSION: starpu_simgrid
LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
CHAM_CI_ENV_ARG: simgrid
......@@ -87,11 +99,13 @@ build_starpu_macosx:
SYSTEM: macosx
VERSION: starpu
LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
CMAKE_BUILD_PARALLEL_LEVEL: 4
script:
- bash .gitlab/build.sh | tee ${LOGNAME}.log
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 180 minutes
expire_in: 1 week
when: always
paths:
- ${LOGNAME}.log
cache:
......@@ -109,11 +123,13 @@ build_starpu_macosx:
MSYSTEM: UCRT64
VERSION: starpu
LOGNAME: "chameleon-build-${SYSTEM}-${VERSION}"
CMAKE_BUILD_PARALLEL_LEVEL: 4
script:
- bash -lc .gitlab/build.sh | tee "$env:LOGNAME.log"
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 180 minutes
expire_in: 1 week
when: always
paths:
- ${LOGNAME}.log
cache:
......
###
#
# @copyright 2013-2024 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# @copyright 2013-2025 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# Univ. Bordeaux. All rights reserved.
#
# @version 1.3.0
# @author Mathieu Faverge
# @author Florent Pruvost
# @date 2024-06-13
# @date 2024-06-17
#
###
cmake_minimum_required(VERSION 3.5)
......
......@@ -2,13 +2,13 @@
###
#
# @file link_cmake.sh
# @copyright 2023-2024 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# @copyright 2023-2025 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# Univ. Bordeaux. All rights reserved.
#
# @version 1.3.0
# @author Florent Pruvost
# @author Mathieu Faverge
# @date 2023-12-07
# @date 2024-12-03
#
# Check that linking with the project is ok when using cmake.
#
......@@ -21,7 +21,7 @@ then
exit 1
fi
cmake -B build -DCMAKE_PREFIX_PATH=$1
cmake --build build --verbose
cmake --build build --verbose
if [[ "$VERSION" != "starpu_simgrid" ]]; then
ctest --test-dir build --verbose
fi
......@@ -2,13 +2,13 @@
###
#
# @file link_pkgconfig.sh
# @copyright 2023-2024 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# @copyright 2023-2025 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
# Univ. Bordeaux. All rights reserved.
#
# @version 1.3.0
# @author Florent Pruvost
# @author Mathieu Faverge
# @date 2023-12-07
# @date 2024-06-17
#
# Check that linking with the project is ok when using pkg-config.
#
......
......@@ -3,13 +3,15 @@
#
---
default:
image: registry.gitlab.inria.fr/solverstack/docker/distrib
tags: ['ci.inria.fr', 'linux', 'large']
image: $CI_REGISTRY_IMAGE
interruptible: true
variables:
GIT_SUBMODULE_STRATEGY: recursive
# push event: executed only if the source branch name is master or starts with ci-
# schedule event: not executed
.only-master:
interruptible: true
rules:
- if: ($CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /^ci-.*$/) && $CI_PIPELINE_SOURCE != "schedule"
......@@ -17,24 +19,27 @@ default:
# merge request event: executed if the source branch name does not start with notest-
# schedule event: not executed
.only-master-mr:
interruptible: true
rules:
- 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-.*$/)
# merge request event: executed if the source branch name does not start with notest-
.only-mr:
interruptible: true
rules:
- if: ($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME !~ /^notest-.*$/)
.test_script_linux:
stage: test
tags: ['ci.inria.fr', 'linux', 'large']
variables:
GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME
SYSTEM: linux
script:
- bash .gitlab/test.sh | tee ${LOGNAME}.log
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 180 minutes
expire_in: 1 week
untracked: true
when: always
reports:
junit: ${LOGNAME}-junit.xml
......@@ -7,12 +7,15 @@
---
.coverage:
stage: coverage
tags: ['ci.inria.fr', 'linux']
variables:
GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME
script:
- tools/coverage.sh
- ./tools/coverage.sh
coverage: /^\s*lines......:\s*\d+.\d+\%/
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 180 minutes
expire_in: 1 week
paths:
- chameleon-*.lcov
- chameleon.lcov
......@@ -32,7 +35,6 @@ coverage_master:
coverage_mr:
extends: .coverage
interruptible: true
rules:
- 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]
---
coverity:
stage: analyze
tags: ["docker", "large"]
interruptible: true
tags: ['ci.inria.fr', 'linux', 'large']
rules:
- 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-.*$/)
......@@ -12,17 +11,7 @@ coverity:
variables:
VERSION: coverity
script:
- (mkdir -p build-$VERSION && 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
- ./tools/coverity.sh
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 1 week
......
---
.docker_script_common:
stage: docker
tags: ['ci.inria.fr', 'linux']
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:
stage: deploy
tags: ['ci.inria.fr', 'linux']
image: $CI_REGISTRY_IMAGE/pages
extends: .only-master
needs: [coverage_master]
variables:
VERSION: pages
script:
- ./tools/pages.sh
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 1 week
paths:
- public
variables:
VERSION: pages
script:
- ./tools/pages.sh
......@@ -4,7 +4,8 @@
---
preliminary_checks:
stage: pre
interruptible: true
tags: ['ci.inria.fr', 'linux']
image: registry.gitlab.inria.fr/solverstack/docker/pre
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
parallel:
......
---
release:
stage: deploy
tags: ['ci.inria.fr', 'linux']
rules:
- if: $CI_COMMIT_TAG =~ /^v[0-9]\.[0-9]\.[0-9]$/ && $CI_PIPELINE_SOURCE != "schedule"
dependencies: []
variables:
GIT_CONFIG_COUNT: 1
GIT_CONFIG_KEY_0: "safe.directory"
GIT_CONFIG_VALUE_0: "*"
VERSION: release
script:
- ./tools/release.sh
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 1 week
paths:
- chameleon-*.tar.gz
variables:
VERSION: release
script:
- ./tools/release.sh
#!/bin/bash
# sbatch.sh : submit slurm jobs and wait for completion before exiting
set -x
if [ $# -gt 0 ]
then
JOB_NAME=$1
fi
JOB_NAME=${JOB_NAME:-chameleon}
# to get kernels execution on both cpus and gpus
export STARPU_SCHED=random
# execution commands
sbatch --wait \
--job-name="$JOB_NAME" \
--output="$JOB_NAME.out" \
--nodes=1 \
--exclusive --ntasks-per-node=1 --threads-per-core=1 \
--constraint="$SLURM_CONSTRAINTS" \
--time=01:00:00 \
$(dirname "$0")/test.sh
# get the error code from the last command: sbatch --wait ...
err=$?
cat $JOB_NAME.out
# exit with error code from the guix command
exit $err
---
.sonarqube:
stage: analyze
tags: ["docker", "large"]
tags: ['ci.inria.fr', 'linux']
variables:
GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME
GIT_CONFIG_COUNT: 1
GIT_CONFIG_KEY_0: "safe.directory"
GIT_CONFIG_VALUE_0: "*"
GIT_DEPTH: "0"
VERSION: sonarqube
script:
- ls -l build*/*.json
......@@ -13,7 +18,7 @@
- ./tools/analysis.sh
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
expire_in: 180 minutes
expire_in: 1 week
when: always
paths:
- filelist.txt
......@@ -30,7 +35,6 @@ sonarqube_master:
sonarqube_mr:
extends: .sonarqube
interruptible: true
rules:
- if: ($CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME !~ /^notest-.*$/)
when: manual
......
#!/usr/bin/env bash
fatal() {
echo "$0: error occurred, exit"
exit 1
}
set -e
set -x
cd build-$VERSION
source ../.gitlab-ci-env.sh $CHAM_CI_ENV_ARG || fatal
CTESTCOMMAND=`echo "ctest --output-on-failure --no-compress-output $TESTS_RESTRICTION -T Test --output-junit ../${LOGNAME}-junit.xml"`
$CTESTCOMMAND || fatal
source ../.gitlab-ci-env.sh $CHAM_CI_ENV_ARG
ctest --output-on-failure --no-compress-output $TESTS_RESTRICTION --output-junit ../${LOGNAME}-junit.xml
if [[ "$SYSTEM" == "linux" ]]; then
# 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
......
......@@ -5,7 +5,6 @@ test_hmat:
- .only-master-mr
needs: [build_hmat]
variables:
SYSTEM: linux
VERSION: hmat
CATEGORY: none
PRECISION: all
......