|
1 | 1 | # TRACCC library, part of the ACTS project (R&D line)
|
2 | 2 | #
|
3 |
| -# (c) 2022-2023 CERN for the benefit of the ACTS project |
| 3 | +# (c) 2022-2024 CERN for the benefit of the ACTS project |
4 | 4 | #
|
5 | 5 | # Mozilla Public License Version 2.0
|
6 | 6 |
|
| 7 | +# Stages of the CI build. |
7 | 8 | stages:
|
8 | 9 | - build
|
9 | 10 | - test
|
10 | 11 |
|
| 12 | +# Job-wide variables. |
| 13 | +variables: |
| 14 | + ALMA9_PACKAGES: make which wget tar atlas-devel curl-devel libX11-devel libXpm-devel libXft-devel libXext-devel libXi-devel openssl-devel glib2-devel glibc-devel gmp-devel rpm-build mesa-libGL-devel mesa-libGLU-devel mesa-libEGL-devel libuuid-devel man-db libxkbcommon-devel xz-devel libaio-devel expat-devel libtirpc-devel |
| 15 | + UBUNTU_PACKAGES: git wget lsb-core libx11-dev libxpm-dev libxft-dev libxext-dev libxi-dev libssl-dev libgmp-dev libgl1-mesa-dev libglu1-mesa-dev libegl1-mesa-dev |
11 | 16 |
|
12 |
| -build_cuda: |
13 |
| - tags: [docker] |
| 17 | +# Template for all build jobs. |
| 18 | +.build_template: &build_job |
14 | 19 | stage: build
|
15 |
| - image: ghcr.io/acts-project/ubuntu2004_cuda:v30 |
| 20 | + tags: [docker] |
| 21 | + script: |
| 22 | + - git clone $CLONE_URL traccc-src |
| 23 | + - git -C traccc-src checkout $HEAD_SHA |
| 24 | + - cmake ${CMAKE_ARGUMENTS} -S traccc-src -B traccc-build 2>&1 | tee cmake_config.log |
| 25 | + - cmake --build traccc-build 2>&1 | tee cmake_build.log |
16 | 26 | artifacts:
|
| 27 | + when: always |
| 28 | + expose_as: 'Build Artifacts' |
17 | 29 | paths:
|
18 |
| - - build |
19 |
| - script: |
20 |
| - - git clone $CLONE_URL src |
21 |
| - - git -C src checkout $HEAD_SHA |
22 |
| - - cmake --preset cuda -DCMAKE_BUILD_TYPE=Release -S src -B build -G Ninja |
23 |
| - - cmake --build build --parallel 2 |
| 30 | + - cmake_config.log |
| 31 | + - cmake_build.log |
| 32 | + - traccc-src/ |
| 33 | + - traccc-build/ |
| 34 | + expire_in: 1 week |
24 | 35 |
|
25 |
| -test_cuda: |
| 36 | +# Template for all test jobs. |
| 37 | +.test_template: &test_job |
26 | 38 | stage: test
|
27 | 39 | tags: [docker-gpu-nvidia]
|
28 |
| - image: ghcr.io/acts-project/ubuntu2004_cuda:v30 |
29 |
| - needs: |
30 |
| - - build_cuda |
31 | 40 | script:
|
32 |
| - - git clone $CLONE_URL src |
33 |
| - - cd src |
34 |
| - - git checkout $HEAD_SHA |
35 |
| - - data/traccc_data_get_files.sh |
36 |
| - - cd .. |
37 |
| - - cd build |
38 | 41 | - nvidia-smi
|
39 |
| - - ctest --output-on-failure -E "^SeedingValidation/CompareWithActsSeedingTests.*" |
| 42 | + - ./traccc-src/data/traccc_data_get_files.sh |
| 43 | + - ctest ${CTEST_ARGUMENTS} --test-dir traccc-build --output-on-failure 2>&1 | tee cmake_ctest.log |
| 44 | + artifacts: |
| 45 | + when: always |
| 46 | + expose_as: 'Test Artifacts' |
| 47 | + paths: |
| 48 | + - cmake_ctest.log |
| 49 | + expire_in: 1 week |
| 50 | + |
| 51 | +# Template for all x86_64-el9-gcc11 CUDA jobs. |
| 52 | +.x86_64_el9_gcc11_cuda_template: &x86_64_el9_gcc11_cuda_job |
| 53 | + image: gitlab-registry.cern.ch/linuxsupport/alma9-base:latest |
| 54 | + before_script: |
| 55 | + - dnf install -y ${ALMA9_PACKAGES} |
| 56 | + - source /cvmfs/sft.cern.ch/lcg/views/${LCG_VERSION}/x86_64-el9-gcc11-opt/setup.sh |
| 57 | + - source /cvmfs/sft.cern.ch/lcg/contrib/cuda/${CUDA_VERSION}/x86_64-centos7/setup.sh |
| 58 | + |
| 59 | +# x86_64-el9-gcc11 CUDA jobs. |
| 60 | +build:x86_64_el9_gcc11:cuda: |
| 61 | + <<: *build_job |
| 62 | + <<: *x86_64_el9_gcc11_cuda_job |
| 63 | + variables: |
| 64 | + LCG_VERSION: LCG_105a |
| 65 | + CUDA_VERSION: 11.8 |
| 66 | + CMAKE_ARGUMENTS: --preset cuda |
| 67 | + CMAKE_BUILD_PARALLEL_LEVEL: 2 |
| 68 | + |
| 69 | +test:x86_64_el9_gcc11:cuda: |
| 70 | + <<: *test_job |
| 71 | + <<: *x86_64_el9_gcc11_cuda_job |
| 72 | + variables: |
| 73 | + LCG_VERSION: LCG_105a |
| 74 | + CTEST_ARGUMENTS: -E "^SeedingValidation/CompareWithActsSeedingTests.*" |
| 75 | + dependencies: |
| 76 | + - build:x86_64_el9_gcc11:cuda |
0 commit comments