stages: - stage1 - stage2 # - analysis # - documentation # - deploy # Todo: Doxygen doc should be published with pages. .build_template: &build_template stage: stage1 image: registry.gitlab.inria.fr/morefem/thirdpartycompilationfactory/${OS}-${COMPILER}-${MODE}:rc19.11 cache: key: "cache_${CI_COMMIT_REF_SLUG}_${OS}-${COMPILER}-${MODE}-${LIB_NATURE}-UniqueLib_${IS_ONLY_ONE_LIB}" untracked: true paths: - build artifacts: name: "artifact_${CI_COMMIT_REF_SLUG}_${OS}-${COMPILER}-${MODE}-${LIB_NATURE}-UniqueLib_${IS_ONLY_ONE_LIB}" expire_in: 2 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 asrtifact are limited in size, I can;'t unfortunately use a separate stage... .run_doxygen_template: &run_doxygen_template stage: stage1 image: alpine:latest artifacts: name: "doxygen" expire_in: 2 hours paths: - complete.log script: - cd Documentation/Doxygen - doxygen complete_dev_guide.dox .check_warning_template: &check_warning_template stage: stage2 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 # .test_template: &test_template # stage: stage2 # 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 # variables: # OS: "ubuntu" # COMPILER: "gcc" # MODE: "debug" # LIB_NATURE: "shared" # IS_ONLY_ONE_LIB: "False" # build-Ubuntu-gcc-release-static-unique_lib: # <<: *build_template # variables: # OS: "ubuntu" # COMPILER: "gcc" # MODE: "release" # LIB_NATURE: "static" # IS_ONLY_ONE_LIB: "True" # # # build-Fedora-gcc-debug-static-one_lib: # <<: *build_template # variables: # OS: "fedora" # COMPILER: "gcc" # MODE: "debug" # LIB_NATURE: "static" # IS_ONLY_ONE_LIB: "True" # # build-Fedora-gcc-release-shared-several_libs: # <<: *build_template # variables: # OS: "fedora" # COMPILER: "gcc" # MODE: "release" # LIB_NATURE: "shared" # IS_ONLY_ONE_LIB: "False" # build-Ubuntu-gcc-debug-shared-several_libs: <<: *build_template tags: - ubuntu - gcc - debug variables: OS: "ubuntu" COMPILER: "gcc" MODE: "debug" LIB_NATURE: "shared" IS_ONLY_ONE_LIB: "False" check_Ubuntu-gcc-debug-shared-several_libs: <<: *check_warning_template dependencies: - build-Ubuntu-gcc-debug-shared-several_libs variables: OS: "ubuntu" COMPILER: "gcc" MODE: "debug" LIB_NATURE: "shared" IS_ONLY_ONE_LIB: "False" build-Fedora-clang-debug-static-one_lib: <<: *build_template variables: OS: "fedora" COMPILER: "clang" MODE: "debug" LIB_NATURE: "static" IS_ONLY_ONE_LIB: "True" check_warning_Fedora-clang-debug-static-one_lib: <<: *check_warning_template dependencies: - build-Fedora-clang-debug-static-one_lib variables: OS: "fedora" COMPILER: "clang" MODE: "debug" LIB_NATURE: "static" IS_ONLY_ONE_LIB: "True" # build-Fedora-clang-release-shared-several_libs: # <<: *build_template # variables: # OS: "fedora" # COMPILER: "clang" # MODE: "release" # LIB_NATURE: "shared" # IS_ONLY_ONE_LIB: "False" # build-macos-clang-debug-shared-several_libs: # <<: *build_template # tags: # - macos, debug, shared, several_libs # variables: # OS: "macos" # COMPILER: "clang" # MODE: "debug" # LIB_NATURE: "shared" # IS_ONLY_ONE_LIB: "False" # # doxygen: # stage: stage1 # # cache: # key: "$CI_COMMIT_REF_SLUG_doxygen" # untracked: true # paths: # - Documentation/Doxygen # tags: # - Ubuntu # - debug # script: # - cd Documentation/Doxygen # - doxygen complete_dev_guide.dox # 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