-
Notifications
You must be signed in to change notification settings - Fork 68
/
Copy pathcustom-jobs-and-variables.yml
87 lines (79 loc) · 3.23 KB
/
custom-jobs-and-variables.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
80
81
82
83
84
85
86
87
###############################################################################
# Copyright (c) 2022-24, Lawrence Livermore National Security, LLC and RADIUSS
# project contributors. See the COPYRIGHT file for details.
#
# SPDX-License-Identifier: (MIT)
###############################################################################
# We define the following GitLab pipeline variables:
variables:
# On LLNL's ruby, this pipeline creates only one allocation shared among jobs
# in order to save time and resources. This allocation has to be uniquely named
# so that we are sure to retrieve it and avoid collisions.
ALLOC_NAME: ${CI_PROJECT_NAME}_ci_${CI_PIPELINE_ID}
# Ruby
# Arguments for top level allocation
RUBY_SHARED_ALLOC: "--exclusive --reservation=ci --time=5 --nodes=2"
# Arguments for job level allocation
# Note: We repeat the reservation, necessary when jobs are manually re-triggered.
RUBY_JOB_ALLOC: "--overlap --reservation=ci --nodes=1"
# Project specific variants for ruby
PROJECT_RUBY_VARIANTS: "+tests"
# Project specific deps for ruby
PROJECT_RUBY_DEPS: ""
# Poodle
# Arguments for top level allocation
POODLE_SHARED_ALLOC: "--exclusive --partition=pdebug --time=10 --nodes=1"
# Arguments for job level allocation
POODLE_JOB_ALLOC: "--overlap --nodes=1"
# Project specific variants for poodle
PROJECT_POODLE_VARIANTS: "+tests ~papi"
# Project specific deps for poodle
PROJECT_POODLE_DEPS: ""
# Corona
# Arguments for top level allocation
CORONA_SHARED_ALLOC: "--exclusive --time-limit=8m --nodes=1 -o per-resource.count=2"
# Arguments for job level allocation
CORONA_JOB_ALLOC: "--nodes=1 --begin-time=+5s"
# Project specific variants for corona
PROJECT_CORONA_VARIANTS: "+tests"
# Project specific deps for corona
PROJECT_CORONA_DEPS: ""
# Tioga
# Arguments for top level allocation
TIOGA_SHARED_ALLOC: "--queue=pci --exclusive --time-limit=15m --nodes=1 -o per-resource.count=2"
# Arguments for job level allocation
TIOGA_JOB_ALLOC: "--nodes=1 --begin-time=+5s"
# Project specific variants for tioga
PROJECT_TIOGA_VARIANTS: "+tests"
# Project specific deps for tioga
PROJECT_TIOGA_DEPS: ""
# Lassen and Butte use a different job scheduler (spectrum lsf) that does not
# allow pre-allocation the same way slurm does.
# Arguments for job level allocation
LASSEN_JOB_ALLOC: "1 -W 10 -q pci"
# Project specific variants for lassen
PROJECT_LASSEN_VARIANTS: " +tests"
# Project specific deps for lassen
PROJECT_LASSEN_DEPS: "^adiak ~mpi"
# Configuration shared by build and test jobs specific to this project.
# Not all configuration can be shared. Here projects can fine tune the
# CI behavior.
# See Umpire for an example (export junit test reports).
.custom_job:
artifacts:
reports:
junit: junit.xml
name: "${CI_PROJECT_NAME}-${CI_MACHINE}-${CI_JOB_NAME}-${CI_PIPELINE_ID}"
paths:
- ./*.cmake
.reproducer_vars:
script:
- |
echo -e "
# Required variables \n
export MODULE_LIST=\"${MODULE_LIST}\" \n
export SPEC=\"${SPEC//\"/\\\"}\" \n
# Allow to set job script for debugging (only this differs from CI) \n
export DEBUG_MODE=true \n
# Using the CI build cache is optional and requires a token. Set it like so: \n
# export REGISTRY_TOKEN=\"<your token here>\" \n"