-
Notifications
You must be signed in to change notification settings - Fork 100
/
.gitlab-ci.yml
79 lines (72 loc) · 2.87 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
###############################################################################
# Copyright (c) 2016-22, Lawrence Livermore National Security, LLC
# and RAJA project contributors. See the RAJA/LICENSE file for details.
#
# SPDX-License-Identifier: (BSD-3-Clause)
###############################################################################
###############################################################################
# General GitLab pipelines configurations for supercomputers and Linux clusters
# at Lawrence Livermore National Laboratory (LLNL).
#
# This entire pipeline is LLNL-specific
#
# Important note: This file is a template provided by
# llnl/radiuss-shared-ci. It should not require any change from the project to
# get started but could feature project-specific stages.
#
# However, each project should provide:
# - .gitlab/custom-jobs-and-variables.yml
# - .gitlab/subscribed-pipelines.yml
# - .gitlab/${MACHINE}-build-and-test-extra.yml
###############################################################################
# We define the following GitLab pipeline variables:
variables:
MP_BRANCH: "develop"
# Use a service user to run CI. This prevents from running pipelines as an
# actual user.
LLNL_SERVICE_USER: ""
# Use a service user workspace. Solves permission issues, stores everything
# at the same location whoever triggers a pipeline.
# CUSTOM_CI_BUILDS_DIR: ""
# Tells Gitlab to recursively update the submodules when cloning the project.
GIT_SUBMODULE_STRATEGY: recursive
# We build the projects in the CI clone directory.
# TODO: add a clean-up mechanism
BUILD_ROOT: ${CI_PROJECT_DIR}
# We organize the build-and-test stage in sub-pipelines. Each sub-pipeline
# corresponds to a test batch on a given machine.
# High level stages
stages:
- build-and-test
- multi_project
# Template for jobs triggering a build-and-test sub-pipelines:
.build-and-test:
stage: build-and-test
trigger:
include:
- local: '.gitlab/custom-jobs-and-variables.yml'
- project: 'radiuss/radiuss-shared-ci'
ref: v2022.09.0
file: '${CI_MACHINE}-build-and-test.yml'
- local: '.gitlab/${CI_MACHINE}-build-and-test-extra.yml'
strategy: depend
forward:
pipeline_variables: true
# If testing develop branch, trigger RAJAPerf pipeline with this version of
# RAJA.
# TODO: Once spack allows to clone a specific commit on demand, then point to the exact commit.
# This will prevent from sticking to a branch (here develop).
# MP_BRANCH is short for "Multi-Project Branch" and will usually be develop.
trigger-rajaperf:
stage: multi_project
rules:
- if: '$CI_COMMIT_BRANCH == "${MP_BRANCH}" || $MULTI_PROJECT == "ON"' #run only if ...
variables:
UPDATE_RAJA: ${MP_BRANCH}
trigger:
project: radiuss/rajaperf
branch: develop
strategy: depend
# pipelines subscribed by the project
include:
- local: .gitlab/subscribed-pipelines.yml