Skip to content

Commit da8a61e

Browse files
committed
Completely rewrite the GitLab CI configuration.
It no longer uses Acts Docker images, but rather uses minimal images. With the build and test jobs picking up most of the dependencies of the project from CVMFS.
1 parent 1441363 commit da8a61e

File tree

1 file changed

+58
-21
lines changed

1 file changed

+58
-21
lines changed

.gitlab-ci.yml

+58-21
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,76 @@
11
# TRACCC library, part of the ACTS project (R&D line)
22
#
3-
# (c) 2022-2023 CERN for the benefit of the ACTS project
3+
# (c) 2022-2024 CERN for the benefit of the ACTS project
44
#
55
# Mozilla Public License Version 2.0
66

7+
# Stages of the CI build.
78
stages:
89
- build
910
- test
1011

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
1116

12-
build_cuda:
13-
tags: [docker]
17+
# Template for all build jobs.
18+
.build_template: &build_job
1419
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
1626
artifacts:
27+
when: always
28+
expose_as: 'Build Artifacts'
1729
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
2435

25-
test_cuda:
36+
# Template for all test jobs.
37+
.test_template: &test_job
2638
stage: test
2739
tags: [docker-gpu-nvidia]
28-
image: ghcr.io/acts-project/ubuntu2004_cuda:v30
29-
needs:
30-
- build_cuda
3140
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
3841
- 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

Comments
 (0)