Attention une mise à jour du service Gitlab va être effectuée le mardi 30 novembre entre 17h30 et 18h00. Cette mise à jour va générer une interruption du service dont nous ne maîtrisons pas complètement la durée mais qui ne devrait pas excéder quelques minutes. Cette mise à jour intermédiaire en version 14.0.12 nous permettra de rapidement pouvoir mettre à votre disposition une version plus récente.

Commit ed7244ad authored by GILLES Sebastien's avatar GILLES Sebastien
Browse files

#1404 Additional Yaml file to guide the Yaml jobs toward dedicated VMs.

parent 296a8eb6
stages:
- build_and_test
- check_warnings
# - analysis
# - documentation
# - deploy
# Todo: Doxygen doc should be published with pages.
.build_template_linux: &build_template_linux
stage: build_and_test
image: registry.gitlab.inria.fr/morefem/thirdpartycompilationfactory/${OS}-${COMPILER}-${MODE}
cache:
key: "cache_${CI_COMMIT_REF_SLUG}_${OS}-${COMPILER}-${MODE}-${LIB_NATURE}-${IS_ONLY_ONE_LIB}"
untracked: true
paths:
- build
artifacts:
name: "artifact_${CI_COMMIT_REF_SLUG}_${OS}-${COMPILER}-${MODE}-${LIB_NATURE}-${IS_ONLY_ONE_LIB}"
expire_in: 8 hours
paths:
- build/compilation.log
script:
- mkdir -p build
- cd build && python ../cmake/Scripts/configure_cmake.py --cache_file=../cmake/PreCache/linux.cmake --cmake_args="-G Ninja" --third_party_directory=/opt --mode=${MODE} --library_type=${LIB_NATURE} --morefem_as_single_library=${IS_ONLY_ONE_LIB}
- ninja |& tee compilation.log
- ninja test # as artifact are limited in size, I can't unfortunately use a separate stage...
.build_template_macos: &build_template_macos
stage: build_and_test
tags:
- macos
cache:
key: "cache_${CI_COMMIT_REF_SLUG}_${OS}-${COMPILER}-${MODE}-${LIB_NATURE}-${IS_ONLY_ONE_LIB}"
untracked: true
paths:
- build
artifacts:
name: "artifact_${CI_COMMIT_REF_SLUG}_${OS}-${COMPILER}-${MODE}-${LIB_NATURE}-${IS_ONLY_ONE_LIB}"
expire_in: 8 hours
paths:
- build/compilation.log
script:
- mkdir -p build
- source activate Python3
- cd build && python ../cmake/Scripts/configure_cmake.py --cache_file=../cmake/PreCache/macos_apple_clang.cmake --cmake_args="-G Ninja" --third_party_directory=/Volumes/Data/ci/opt/${MODE} --mode=${MODE} --library_type=${LIB_NATURE} --morefem_as_single_library=${IS_ONLY_ONE_LIB}
- ninja 2>&1 | tee compilation.log
- ninja test # as artifact are limited in size, I can't unfortunately use a separate stage...
.run_doxygen_template: &run_doxygen_template
stage: build_and_test
image: ubuntu:latest
artifacts:
name: "artifact_run_doxygen_${CI_COMMIT_REF_SLUG}_${DOX}"
expire_in: 1 day
paths:
- Documentation/Doxygen/${OUTPUT_FILE}
before_script:
- apt-get update -y
- apt-get install -y doxygen graphviz libjs-mathjax
script:
- cd Documentation/Doxygen
- doxygen ${DOX}
.check_compilation_warning_template: &check_compilation_warning_template
stage: check_warnings
image: alpine:latest
before_script:
- apk add --update python python-dev && rm -rf /var/cache/apk/*
# dependencies: in the instantiations!
script:
- python Scripts/Tools/find_warning_in_compilation_log.py --log build/compilation.log
allow_failure: true
.check_doxygen_warning_template: &check_doxygen_warning_template
stage: check_warnings
image: alpine:latest
artifacts:
name: "artifact_check_warning_doxygen_${CI_COMMIT_REF_SLUG}_${DOXYGEN_OUTPUT_FILE}"
when: on_failure
expire_in: 1 day
paths:
- filtered_doxygen_log.txt
before_script:
- apk add --update python python-dev && rm -rf /var/cache/apk/*
# dependencies: in the instantiations!
script:
- python Scripts/Tools/find_warning_in_doxygen_log.py --log Documentation/Doxygen/${DOXYGEN_OUTPUT_FILE}
allow_failure: true
# .test_template: &test_template
# stage: check_warnings
# image: registry.gitlab.inria.fr/morefem/thirdpartycompilationfactory/${OS}-${COMPILER}-${MODE}:latest
# cache:
# key: "${CI_COMMIT_REF_SLUG}_${OS}-${COMPILER}-${MODE}-${LIB_NATURE}-UniqueLib_${IS_ONLY_ONE_LIB}"
# untracked: true
# paths:
# - build
# script:
# - cd build && ctest
build-Ubuntu-gcc-debug-shared-several_libs:
<<: *build_template_linux
tags:
- ubuntu
- gcc
- debug
variables:
OS: "ubuntu"
COMPILER: "gcc"
MODE: "debug"
LIB_NATURE: "shared"
IS_ONLY_ONE_LIB: "False"
check_warning_Ubuntu-gcc-debug-shared-several_libs:
<<: *check_compilation_warning_template
dependencies:
- build-Ubuntu-gcc-debug-shared-several_libs
tags:
- ubuntu
- gcc
- debug
variables:
OS: "ubuntu"
COMPILER: "gcc"
MODE: "debug"
LIB_NATURE: "shared"
IS_ONLY_ONE_LIB: "False"
build-Ubuntu-gcc-release-static-one_lib:
<<: *build_template_linux
tags:
- ubuntu
- gcc
- release
variables:
OS: "ubuntu"
COMPILER: "gcc"
MODE: "release"
LIB_NATURE: "static"
IS_ONLY_ONE_LIB: "True"
check_warning_Ubuntu-gcc-release-static-one_lib:
<<: *check_compilation_warning_template
dependencies:
- build-Ubuntu-gcc-release-static-one_lib
tags:
- ubuntu
- gcc
- release
variables:
OS: "ubuntu"
COMPILER: "gcc"
MODE: "release"
LIB_NATURE: "static"
IS_ONLY_ONE_LIB: "True"
build-Fedora-clang-debug-static-one_lib:
<<: *build_template_linux
tags:
- fedora
- clang
- debug
variables:
OS: "fedora"
COMPILER: "clang"
MODE: "debug"
LIB_NATURE: "static"
IS_ONLY_ONE_LIB: "True"
check_warning_Fedora-clang-debug-static-one_lib:
<<: *check_compilation_warning_template
dependencies:
- build-Fedora-clang-debug-static-one_lib
tags:
- fedora
- clang
- debug
variables:
OS: "fedora"
COMPILER: "clang"
MODE: "debug"
LIB_NATURE: "static"
IS_ONLY_ONE_LIB: "True"
build-Fedora-clang-release-shared-one_lib:
<<: *build_template_linux
tags:
- fedora
- clang
- release
variables:
OS: "fedora"
COMPILER: "clang"
MODE: "release"
LIB_NATURE: "shared"
IS_ONLY_ONE_LIB: "False"
check_warning_Fedora-clang-release-shared-one_lib:
<<: *check_compilation_warning_template
dependencies:
- build-Fedora-clang-release-shared-one_lib
tags:
- fedora
- clang
- debug
variables:
OS: "fedora"
COMPILER: "clang"
MODE: "release"
LIB_NATURE: "shared"
IS_ONLY_ONE_LIB: "False"
build-Fedora-gcc-debug-static-one_lib:
<<: *build_template_linux
tags:
- fedora
- gcc
- debug
variables:
OS: "fedora"
COMPILER: "gcc"
MODE: "debug"
LIB_NATURE: "static"
IS_ONLY_ONE_LIB: "True"
check_warning_Fedora-gcc-debug-static-one_lib:
<<: *check_compilation_warning_template
dependencies:
- build-Fedora-gcc-debug-static-one_lib
tags:
- fedora
- gcc
- debug
variables:
OS: "fedora"
COMPILER: "gcc"
MODE: "debug"
LIB_NATURE: "static"
IS_ONLY_ONE_LIB: "True"
complete_doxygen:
<<: *run_doxygen_template
variables:
DOX: "complete_dev_guide.dox"
OUTPUT_FILE: "complete.log"
check_warning_complete_doxygen:
<<: *check_doxygen_warning_template
dependencies:
- complete_doxygen
variables:
DOXYGEN_OUTPUT_FILE: "complete.log"
# Pages doesn't work as invoked from a subgroup (not supported yet in gitlab)
# pages:
# stage: deploy
# cache:
# key: "$CI_COMMIT_REF_SLUG_doxygen"
# untracked: true
# paths:
# - Documentation/Doxygen
# before_script:
# - mkdir -p public
# tags:
# - linux
# - debug
# script:
# - cd Documentation/Doxygen
# - mv Complete/* ../../public/
# artifacts:
# paths:
# - public
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