-
Notifications
You must be signed in to change notification settings - Fork 11
/
flowpipeline.yaml
481 lines (409 loc) · 14.2 KB
/
flowpipeline.yaml
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
# -*- coding: utf-8 -*-
#
# Package Build Pipeline Configuration File
# Created by rwoods.
# Created at 2021-03-11T19:02:40.368226.
# Creating with /rel/rez/dwa/flowpipeline/3.7.5.0/bin/quickstart.
#
# Any value defined in here will override the default value used at runtime
# by the Package Build Pipeline. Therefore, only uncomment sections and
# fields you wish to change from the default.
# The values in this automatically generated file are a copy of the defaults.
# Never comment the syntax line and modifying it is for advanced users!
syntax: 1
# Everything is configurable!
#
# You control how the pipeline runs and how it builds your source.
# pipeline-configurations: how it runs, e.g. skip tests, make a release
# package-configurations: how it builds, e.g. rez version, where it releases
# -- Annotated Pipeline Configuration Schema ----------------------------------
# The following sections and settings explain the pipeline configuration.
# Do not uncomment these because they are an example and explanation.
#
# Each section controls a stage in the pipeline.
# Each setting controls task and procedure behavior within the stage.
# checkout:
# Disable code check out. Set to "false" at your own risk.
# The pipeline is designed to check out source from a repository.
# enabled: [true|false]
# Set whether to delete the existing build sandbox if it exists. This will
# delete the checkout, build, and install directories.
# fresh: [true|false]
# Set whether to run a git clone and get the entire commit history, tags, etc.
# If set to 0, it will do a git pull instead.
# clone: [1|0]
# Merge the checkout target below into your build target prior to building.
# Often used to pick up the latest changes.
# merge_enabled: [true|false]
# Merge this checkout target into your bulid target (if enabled)
# prior to building.
# merge_target: [master|develop|...]
# Tell what kind of commit-ish checkout the target above is.
# merge_target_type: [branch|tag|commit]
# build:
# Disable the build stage.
# enabled: [true|false]
# Define a specific Electric Flow resource or pool. If you use a resource
# name or pool that doesn't exist, you're jobs will block waiting. Leave
# empty to use the pipeline's default.
# resource: [EL7|CM_BUILD|EF_AGENT|default|...]
# Specify custom commands to run post-build. They will run in the
# directory the source code was checked out to.
# post_cmd: [commands or scripts to run]
# Specify the post-processor (aka: log text scanner) to use on builds.
# postp: [/opt/electriccloud/electriccommander/bin/postp]
# Specify the root directory to store intermediate build artifacts.
# Relative paths will be relative from the "checkout" (source) directory.
# build_directory: ../build
# Indicate whether you want variant builds to run in parallel or serially.
# Some builds, like some 3rd party packages, may have variants that make changes
# to a centralized directory requiring a serial build.
# parallel_variants: [true|false]
# scan:
# Disable the scan stage.
# enabled: [true|false]
# Enable theh ABI checker scan.
# https://github.com/lvc/abi-dumper
# https://lvc.github.io/abi-compliance-checker
# abi_checker: [true|false]
# Enable the security vulnerability scan.
# https://checkmarx.atlassian.net/wiki/spaces/KC/pages/59211846/CxSAST+Overview
# checkmarx: [true|false]
# Enable the third-party use license scan.
# https://fossid.com/open-source-compliance/
# fossID: [true|false]
# test:
# Enable the test running stage.
# enabled: [true|false]
# Command that runs the tests.
# The _packagename_ token is replaced with <package>-<version> at run time.
# cmd: [rez-test _packagename_|pytest|scons @test|...]
# Ignore failed tests and proceed to subsequent stages.
# Test results are still reported.
# ignore_failures: [true|false]
# Define a specific Electric Flow resource or pool. If you use a resource
# name or pool that doesn't exist, you're jobs will block waiting. Leave
# empty to use the pipeline's default.
# resource: '$[/myProject/resource_default]'
# Specify the post-processor (aka: log text scanner) to use on tests.
# postp: [/opt/electriccloud/electriccommander/bin/postp]
# Provide an egrep-compatible regex for finding test output xml files.
# The default is to find xml files with the string "test" in it.
# name_filter: '[^/]*test[^/]*\\.xml'
# release:
# Enable releasing your build products as a rez package.
# enabled: [true|false]
# Enable gate keeping behavior.
# An authorized user must manually approve the release via the Electric Flow
# web interface.
# ask_approval: [true|false]
# Enable tagging the release commit with <package>-<version>.
# update_git: [true|false]
# Enabling adding a comment to the jira issues found in the commit history.
# Only commits since the last release are searched.
# update_jira: [true|false]
# finalize:
# Enable sending an e-mail to the users listed in the settings below.
# email_enabled: [true|false]
# Whom to e-mail when the pipeline run fails, e.g. build error, failed tests.
# This is a YAML list of e-mail addresses.
# email_recipients_failure:
# - _submitter_ # who triggered the pipeline run.
# - _contributor_ # who made the release commit.
# Whom to e-mail when the pipeline run succeeds.
# This is a YAML list of e-mail addresses.
# email_recipients_success:
# - _submitter_ # who triggered the pipeline run.
# - _contributor_ # who made the release commit.
# Enable sending a message to a Google Chat Room listed in the settings below.
# You must have previously created a webhook through the Chat Room's GUI.
# https://developers.google.com/hangouts/chat/how-tos/webhooks#setting_up_an_incoming_webhook
# chat_enabled: [true|false]
# This is the URL that Google gives you when you create a webhook.
# chat_room_webhook_url: https://chat.googleapis.com/v1/spaces/_YOUR CHAT ROOM WEBHOOK URL GOES HERE_
# -- Annotated Package Configuration Schema ----------------------------------
# The following sections and settings explain the package configuration.
# Do not uncomment these because they are an example and explanation.
#
# Each section & setting controls how rez-build, rez-release, rez-cp, etc. run.
# The available settings are the same for EVERY package build configuration.
# [8x|jobenv-10|rez-1|rez-2|...]:
# YAML list of rez packages to pass to rez-env.
# build_context:
# - buildtools
# - yourpackage-1.2.3
# Additional environment variables to set prior to calling rez-build.
# This is a YAML mapping.
# environment:
# IMPORTANT_VARIABLE_NAME: foo
# OTHER_VARIABLE: bar
# YAML list of packages to construct REZ_PACKAGES_PATH.
# $HOME/rez, /rel/test, and /rel/test/packages are not included by default.
# packages_path:
# - /rel/lang/python/packages
# - /my/test/package/area
# Where to copy the build products during the release stage.
# release_packages_path: /path/to/folio/or/packages/directory
# Where to place the symlink to release_packages_path
# This is only used by rez-1 releases and ignored by rez-2 ones.
# symlink_directory: /path/to/path/on/REZ_PACKAGES_PATH
# Enable creating a symlink from release_packages_path to symlink_directory.
# symlinks: [true|false]
# Enable preserving variants created by rez-build.
# Typically true for rez-2 and false for rez-1 releases.
# variants: [true|false]
# Enable creating a package.yaml file.
# This is only useful for rez-1 releases.
# yaml: [true|false]
# -- Pipeline Run Mode Configuration -------------------------------------------
# These are pre-defined configurations that the pipeline expects to exist.
# You may remove these to use the system defaults or rename them to create
# a custom configuration.
# Uncomment this if you make any changes below!
#
pipeline-configurations:
#
# -- Customize Your Continuous Integration Here --------------------------------
continuous-integration:
checkout:
enabled: true
fresh: true
clone: 1
merge_enabled: false
merge_target: develop
merge_target_type: branch
build:
enabled: true
rez_args: -b cmake
resource:
os-rocky-9: EL9
os-CentOS-7: EL7_RaTS_build_fast
post_cmd:
postp: /opt/electriccloud/electriccommander/bin/postp
build_directory: ../build
parallel_variants: true
prepend_release_dir: false
scan:
enabled: false
abi_checker: false
checkmarx: false
fossID: false
test:
enabled: true
cmd:
# - rez-test _packagename_ rats-debug
- rez-test _packagename_ rats-opt-debug
ignore_failures: false
resource:
# - EL7_RaTS2_cpu
- EL7_RaTS
postp: /opt/electriccloud/electriccommander/bin/postp
name_filter: foobar
release:
enabled: false
ask_approval: false
update_git: false
update_jira: false
finalize:
email_enabled: true
email_recipients_failure:
- _submitter_
- _contributor_
email_recipients_success:
- _submitter_
- _contributor_
chat_enabled: false
zulip_enabled: false
initialize:
email_enabled: true
email_recipients:
- _submitter_
- _contributor_
chat_enabled: false
zulip_enabled: false
# -- Customize Your Pre-Release, aka, Test Maps, Here --------------------------
pre-release:
checkout:
enabled: true
fresh: false
clone: 0
merge_enabled: false
merge_target: develop
merge_target_type: branch
build:
enabled: true
rez_args: -b cmake
resource:
os-rocky-9: EL9
os-CentOS-7: EL7_RaTS_build_fast
post_cmd:
postp: /opt/electriccloud/electriccommander/bin/postp
build_directory: ../build
parallel_variants: true
prepend_release_dir: true
scan:
enabled: true
abi_checker: true
checkmarx: true
fossID: true
test:
enabled: false
cmd: rez-test _packagename_
ignore_failures: false
resource: EL7_RaTS
postp: /opt/electriccloud/electriccommander/bin/postp
#name_filter: \'[^/]*test[^/]*\\.xml\'
release:
enabled: true
ask_approval: false
update_git: false
update_jira: false
finalize:
email_enabled: true
email_recipients_failure:
- _submitter_
- _contributor_
email_recipients_success:
- _submitter_
- _contributor_
chat_enabled: false
zulip_enabled: false
initialize:
email_enabled: true
email_recipients:
- _submitter_
- _contributor_
chat_enabled: false
zulip_enabled: false
# -- Customize Your Release Here -----------------------------------------------
release:
checkout:
enabled: true
fresh: true
clone: 1
merge_enabled: false
merge_target: develop
merge_target_type: branch
build:
enabled: true
rez_args: -b cmake
resource:
os-rocky-9: EL9
os-CentOS-7: EL7_RaTS_build_fast
post_cmd:
postp: /opt/electriccloud/electriccommander/bin/postp
build_directory: ../build
parallel_variants: true
prepend_release_dir: false
test:
enabled: false
cmd: rez-test _packagename_
ignore_failures: false
resource: EL7_RaTS
postp: /opt/electriccloud/electriccommander/bin/postp
#name_filter: \'[^/]*test[^/]*\\.xml\'
release:
enabled: true
ask_approval: false
update_git: true
update_jira: true
finalize:
email_enabled: true
email_recipients_failure:
- _submitter_
- _contributor_
email_recipients_success:
- _submitter_
- _contributor_
chat_enabled: false
zulip_enabled: false
initialize:
email_enabled: true
email_recipients:
- _submitter_
- _contributor_
chat_enabled: false
zulip_enabled: false
# -- Package Build Configuration -------------------------------------------
# These are pre-defined configurations that the pipeline expects to exist.
# You may remove these to use the system defaults or rename them to create
# a custom configuration.
# Uncomment this if you make any changes below!
#
package-configurations:
#
# -- Customize Your 8x Build Here ----------------------------------------------
# 8x:
# build_context:
# - buildtools
# environment:
# REZ_ALTERNATE_CONFIGURATION: 8x
# packages_path:
# - /rel/packages
# - /rel/lang/python/packages
# release_packages_path: /rel/folio
# symlink_directory: /rel/packages
# symlinks: true
# variants: false
# yaml: true
# -- Customize Your 10x Build Here ---------------------------------------------
# jobenv-10:
# build_context:
# - buildtools
# environment:
# REZ_ALTERNATE_CONFIGURATION: jobenv10
# packages_path:
# - /rel/packages
# - /rel/lang/python/packages
# release_packages_path: /rel/folio
# symlink_directory: /rel/packages
# symlinks: true
# variants: false
# yaml: true
# -- Customize Your Vanilla Rez 1 Build Here -----------------------------------
# rez-1:
# build_context:
# - buildtools
# environment: {}
# packages_path:
# - /rel/packages
# - /rel/lang/python/packages
# release_packages_path: /rel/folio
# symlink_directory: /rel/packages
# symlinks: true
# variants: false
# yaml: true
# -- Customize Your Vanilla Rez 2 Build Here -----------------------------------
rez-2:
build_context:
- buildtools-2
- python-3.7
environment: {}
packages_path:
- /rel/rez/dwa
- /rel/rez/third_party
- /rel/rez/pypi
- /rel/lang/python/packages
release_packages_path: /rel/rez/dwa
symlink_directory: null
symlinks: false
variants: true
yaml: false
rez-2-CI-RaTS:
build_context:
- buildtools-2
- python-3.7
environment:
BROKEN_CUSTOM_ARGS_RATS: 1
BROKEN_CUSTOM_ARGS_UNITTESTS: 1
packages_path:
- /rel/rez/dwa
- /rel/rez/third_party
- /rel/rez/pypi
- /rel/lang/python/packages
release_packages_path: /rel/rez/dwa
symlink_directory: null
symlinks: false
variants: true
yaml: false