Skip to content
Snippets Groups Projects
template-build-linux.yml 1.42 KiB
Newer Older
  • Learn to ignore specific revisions
  • Lars Bilke's avatar
    Lars Bilke committed
    .template-build-linux:
      stage: build
    
      retry:
        max: 2
        when: runner_system_failure
    
    Lars Bilke's avatar
    Lars Bilke committed
    
      before_script:
    
        - "echo \"For debugging run: docker run --rm -it -v $CI_BUILDS_DIR:/builds -w=$CI_PROJECT_DIR $CI_JOB_IMAGE\""
    
    Lars Bilke's avatar
    Lars Bilke committed
        - build_dir=${BUILD_DIR:-../build/$CMAKE_PRESET}
        - rm -rf $build_dir
        - mkdir -p $build_dir
        - ln -s ../build .
    
    Lars Bilke's avatar
    Lars Bilke committed
        - ([ "${CONAN_USER_HOME}" == "${CI_PROJECT_DIR}/.conan" ]) && conan remove --system-reqs '*'
    
        - ([[ $BUILD_CTEST_LARGE_ON_MASTER && "${CI_COMMIT_BRANCH}" == "master" && "${CMAKE_ARGS}" == *"USE_PYTHON=ON"* ]]) && export BUILD_CTEST_LARGE=true
    
    Lars Bilke's avatar
    Lars Bilke committed
      script:
    
        - cmake -S . --preset=$CMAKE_PRESET $CMAKE_ARGS -DOGS_BUILD_PROCESSES=$BUILD_PROCESSES
        - cd $build_dir
    
        - |
          if [[ -z "$TARGETS" ]]; then
              $BUILD_CMD_PREFIX cmake --build . --target package > >(tee make.output)
              if [ "$BUILD_TESTS" = true ] ; then $BUILD_CMD_PREFIX cmake --build . --target tests ; fi
              if [ "$BUILD_CTEST" = true ] ; then $BUILD_CMD_PREFIX cmake --build . --target ctest ; fi
              if [ "$BUILD_CTEST_LARGE" = true ] ; then $BUILD_CMD_PREFIX cmake --build . --target ctest-large ; fi
              if [ "$BUILD_CTEST" = true ] ; then cp Testing/**/Test.xml Tests/ctest.xml ; fi
              if [ "$BUILD_CTEST_LARGE" = true ] ; then cp Testing/**/Test.xml Tests/ctest-large.xml ; fi
          else
              $BUILD_CMD_PREFIX cmake --build . --target ${TARGETS} > >(tee make.output)
          fi