image: hello-world:latest stages: - build-img - test build-img: stage: build-img image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] script: - mkdir -p /kaniko/.docker - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json - /kaniko/executor --cache=true --context $CI_PROJECT_DIR --dockerfile ./Dockerfile --destination $CI_REGISTRY_IMAGE:latest tags: - docker ###### Test jobs ##### .test:cmake: &cmake_def stage: test image: $CI_REGISTRY_IMAGE:latest needs: ['build-img'] script: - conan install -if build -g cmake_find_package catch2/2.13.7@ - | if [ "$ENABLE_CGAL" == "ON" ]; then conan install -if build -g cmake_find_package cgal/5.2.1@ fi - conan install -if build -g cmake_find_package taocpp-pegtl/3.2.1@ - cmake -S. -Bbuild -GNinja -DCMAKE_MODULE_PATH=$PWD/build -DCMAKE_BUILD_TYPE=Debug -DCSG_CGAL_ENABLED=${ENABLE_CGAL} -DCMAKE_CXX_FLAGS="-pedantic-errors" - cmake --build build --target unit_tests_csg - cd build - ctest tags: - docker test:cgal: variables: ENABLE_CGAL: "ON" <<: *cmake_def test:no_cgal: variables: ENABLE_CGAL: "OFF" <<: *cmake_def .test:spack: &spack_def stage: test image: $CI_REGISTRY_IMAGE:latest needs: ['build-img'] when: manual script: - /usr/local/spack/bin/spack repo add .spack/repo - /usr/local/spack/bin/spack install csg-eb ${NO_CSG} tags: - docker spack:cgal: variables: NO_CSG: "" <<: *spack_def spack:no_cgal: variables: NO_CSG: "~cgal" <<: *spack_def .test:gnumake: &gnumake_def stage: test variables: BUILD: ${CI_PROJECT_DIR}/build BOOST_HOME: ${BUILD}/boost CATCH2_HOME: ${BUILD}/catch2 CGAL_HOME: ${BUILD}/cgal PEGTL_HOME: ${BUILD}/taocpp-pegtl image: $CI_REGISTRY_IMAGE:latest needs: ['build-img'] script: - conan install -if build -g deploy catch2/2.13.7@ - | if [ "$ENABLE_CGAL" == "ON" ]; then conan install -if build -g deploy cgal/5.2.1@ fi - conan install -if build -g deploy taocpp-pegtl/3.2.1@ - make install DESTDIR=the_destination tags: - docker gnumake:cgal: variables: ENABLE_CGAL: "ON" <<: *gnumake_def gnumake:no_cgal: <<: *gnumake_def