Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
.gitlab-ci.yml 8.50 KiB
stages:
  - build
  - test
  - analysis
  - deploy

variables:
  # everything on except legacy, dd4hp, tgeo
  COMMON_BUILD_OPTIONS: -DACTS_BUILD_EXAMPLES=on -DACTS_BUILD_TESTS=on -DACTS_BUILD_INTEGRATION_TESTS=on -DACTS_BUILD_DIGITIZATION_PLUGIN=on -DACTS_BUILD_IDENTIFICATION_PLUGIN=on -DACTS_BUILD_JSON_PLUGIN=on -DACTS_BUILD_MATERIAL_PLUGIN=on

before_script:
  # CI executor uses fail on error by default
  # setup scripts do not like that
  - set +e && source CI/setup_lcg94.sh; set -e

# pre-build checks

format:
  stage: build
  image: gitlab-registry.cern.ch/acts/machines/check:latest
  before_script: []
  script:
    - CI/check_format .
  artifacts:
    paths:
      - changed
    when: on_failure

license:
  stage: build
  image: python:alpine3.6
  before_script: []
  script:
    - apk add --no-cache git
    - CI/check_license.py . --check-years

include_guards:
  stage: build
  image: python:alpine3.6
  before_script: []
  script:
    - CI/check_include_guards.py . --fail-global

# job templates w/ default settings
#
# the build directory is always `build`. To select a specific build version
# you always have to define the correct `dependencies` settings to only
# load the artifacts from one build.

.build: &template_build
  stage: build
  tags:
    - cvmfs
  variables:
    BUILD_TYPE: Release
    BUILD_OPTIONS: ${COMMON_BUILD_OPTIONS} -DACTS_BUILD_LEGACY=on -DACTS_BUILD_DD4HEP_PLUGIN=on -DACTS_BUILD_TGEO_PLUGIN=on
  script:
    - mkdir build
    - cd build
    - cmake -GNinja -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_CXX_FLAGS="-Werror" ${BUILD_OPTIONS} ..
    - cmake --build . -- -j${ACTS_NCPUS}
    - find . -name "*.o" -delete
  artifacts:
    paths:
      - build
    expire_in: 6 hours

.unit_tests: &template_unit_tests
  stage: test
  tags: