Add bff stage release job to ci-management
[ci-management.git] / jjb / global-templates-helm.yaml
1 ---
2 ############
3 # BUILDERS #
4 ############
5
6 - builder:
7     name: oom-create-netrc
8     builders:
9       - inject:
10           properties-content: "SERVER_ID={server-id}"
11       - shell: !include-raw-escape: ../shell/oom-create-netrc.sh
12
13 ###########
14 # ANCHORS #
15 ###########
16 - helm_job_boiler_plate: &helm_job_boiler_plate
17     name: helm_job_boiler_plate
18
19     ######################
20     # Default parameters #
21     ######################
22
23     branch: master
24     submodule-recursive: true
25
26     # default params for helm jobs
27     build_script: ''
28     git-url: '$GIT_URL/$PROJECT'
29     post_build_script: ''
30     pre_build_script: ''
31     submodule-disable: false
32     submodule-timeout: 10
33     build-timeout: 240
34
35     #####################
36     # Job Configuration #
37     #####################
38
39     project-type: freestyle
40     node: '{build-node}'
41
42     properties:
43       - lf-infra-properties:
44           build-days-to-keep: '{build-days-to-keep}'
45
46     parameters:
47       - lf-infra-parameters:
48           branch: '{branch}'
49           project: '{project}'
50           stream: '{stream}'
51           lftools-version: '{lftools-version}'
52
53     wrappers:
54       - lf-infra-wrappers:
55           build-timeout: '{build-timeout}'
56           jenkins-ssh-credential: '{jenkins-ssh-credential}'
57
58     publishers:
59       - lf-infra-publish
60
61 #################
62 # JOB TEMPLATES #
63 #################
64 - job-template:
65     name: '{project-name}-{stream}-verify-{helm_bin}'
66     # Job template for helm verify jobs
67
68     <<: *helm_job_boiler_plate
69     concurrent: true
70
71     scm:
72       - gerrit-trigger-scm:
73           refspec: '$GERRIT_REFSPEC'
74           choosing-strategy: 'gerrit'
75           submodule-recursive: '{submodule-recursive}'
76
77     triggers:
78       - gerrit-trigger-helm-patch-submitted:
79           status-context: '{project}-Helm-Verify'
80           server: '{server-name}'
81           project: '{project}'
82           branch: '{branch}'
83           helm_bin: '{helm_bin}'
84           files: '{files}'
85
86     builders:
87       - lf-infra-pre-build
88       - shell: |
89           echo "export HELM_BIN={helm_bin}" > helm.prop
90       - shell: '{obj:pre_build_script}'
91       - shell: '{obj:build_script}'
92
93 - job-template:
94     name: '{project-name}-{stream}-merge-helm'
95     # Job template for Helm merge jobs
96
97     <<: *helm_job_boiler_plate
98
99     scm:
100       - gerrit-trigger-scm:
101           refspec: ''
102           choosing-strategy: 'default'
103           submodule-recursive: '{submodule-recursive}'
104
105     triggers:
106       - gerrit-trigger-helm-patch-merged:
107           server: '{server-name}'
108           project: '{project}'
109           branch: '{branch}'
110           files: '{files}'
111
112     builders:
113       - lf-infra-pre-build
114       - lf-provide-maven-settings:
115           global-settings-file: '{mvn-global-settings}'
116           settings-file: '{mvn-settings}'
117       - shell: |
118           echo "export HELM_BIN=helm3.6" > helm.prop
119       - shell: '{obj:pre_build_script}'
120       - shell: '{obj:build_script}'
121       - oom-create-netrc:
122           server-id: oom-helm
123       - inject:
124           properties-content: |
125             BUILD_TYPE=snapshot
126       - shell: '{obj:post_build_script}'
127       - lf-provide-maven-settings-cleanup
128
129 - job-template:
130     name: '{project-name}-{stream}-verify-external-helm'
131     # Job template for helm verify jobs
132
133     <<: *helm_job_boiler_plate
134
135     parameters:
136       - lf-infra-parameters:
137           branch: '{branch}'
138           project: 'oom'
139           stream: '{stream}'
140           lftools-version: '{lftools-version}'
141
142     scm:
143       - lf-infra-gerrit-scm:
144           jenkins-ssh-credential: '{jenkins-ssh-credential}'
145           git-url: '{git-url}'
146           refspec: '$GERRIT_BRANCH'
147           branch: '$GERRIT_BRANCH'
148           submodule-recursive: '{submodule-recursive}'
149           submodule-timeout: '{submodule-timeout}'
150           submodule-disable: '{submodule-disable}'
151           choosing-strategy: default
152
153     triggers:
154       - gerrit-trigger-helm-patch-submitted:
155           status-context: '{project}-Helm-Verify'
156           server: '{server-name}'
157           project: '{project}'
158           branch: '{branch}'
159           files: '{files}'
160
161     builders:
162       - lf-infra-pre-build
163       - inject:
164           properties-content: 'HELM_MODULE={helm-module}'
165       - shell: !include-raw-escape: shell/apply-submodule-patch-oom.sh
166       - shell: |
167           echo "export HELM_BIN=helm3.6" > helm.prop
168       - shell: '{obj:pre_build_script}'
169       - shell: '{obj:build_script}'
170
171 - job-template:
172     name: '{project-name}-{stream}-merge-external-helm'
173     # Job template for Helm merge jobs
174
175     <<: *helm_job_boiler_plate
176
177     parameters:
178       - lf-infra-parameters:
179           branch: '{branch}'
180           project: 'oom'
181           stream: '{stream}'
182           lftools-version: '{lftools-version}'
183
184     scm:
185       - lf-infra-gerrit-scm:
186           jenkins-ssh-credential: '{jenkins-ssh-credential}'
187           git-url: '{git-url}'
188           refspec: '$GERRIT_BRANCH'
189           branch: '$GERRIT_BRANCH'
190           submodule-recursive: '{submodule-recursive}'
191           submodule-timeout: '{submodule-timeout}'
192           submodule-disable: '{submodule-disable}'
193           choosing-strategy: default
194
195     triggers:
196       - gerrit-trigger-helm-patch-merged:
197           server: '{server-name}'
198           project: '{project}'
199           branch: '{branch}'
200           files: '{files}'
201
202     builders:
203       - lf-infra-pre-build
204       - inject:
205           properties-content: 'HELM_MODULE={helm-module}'
206       - lf-provide-maven-settings:
207           global-settings-file: 'global-settings'
208           settings-file: '{mvn-settings}'
209       - shell: |
210           echo "export HELM_BIN=helm3.6" > helm.prop
211       - shell: '{obj:pre_build_script}'
212       - shell: '{obj:build_script}'
213       - oom-create-netrc:
214           server-id: oom-helm
215       - inject:
216           properties-content: |
217             BUILD_TYPE=snapshot
218       - shell: '{obj:post_build_script}'
219       - lf-provide-maven-settings-cleanup
220
221 - job-template:
222     name: '{project-name}-{stream}-release-helm'
223     # Job template for Helm stage jobs
224
225     <<: *helm_job_boiler_plate
226
227     scm:
228       - gerrit-trigger-scm:
229           refspec: ''
230           choosing-strategy: 'default'
231           submodule-recursive: '{submodule-recursive}'
232
233     triggers:
234       - gerrit:
235           server-name: '{gerrit-server-name}'
236           trigger-on:
237             - comment-added-contains-event:
238                 comment-contains-value: '^Patch Set\s+\d+:\s+release-helm\s*$'
239           projects:
240             - project-compare-type: 'ANT'
241               project-pattern: '{project}'
242               branches:
243                 - branch-compare-type: 'ANT'
244                   branch-pattern: '**/{branch}'
245               file-paths:
246                 - compare-type: 'ANT'
247                   pattern: '**'
248
249     builders:
250       - lf-infra-pre-build
251       - lf-provide-maven-settings:
252           global-settings-file: '{mvn-global-settings}'
253           settings-file: '{mvn-settings}'
254       - shell: |
255           echo "export HELM_BIN=helm3.6" > helm.prop
256       - shell: '{obj:pre_build_script}'
257       - shell: '{obj:build_script}'
258       - oom-create-netrc:
259           server-id: oom-helm
260       - inject:
261           properties-content: |
262             BUILD_TYPE=release
263       - shell: '{obj:post_build_script}'
264       - lf-provide-maven-settings-cleanup
265
266 - job-template:
267     name: '{project-name}-{subproject}-{stream}-verify-helm'
268     # Job template for helm verify jobs
269
270     <<: *helm_job_boiler_plate
271
272     disabled: true
273     builders:
274       - lf-infra-pre-build
275       - shell: |
276           echo "export HELM_BIN=helm3.6" > helm.prop
277       - shell: '{pre_build_script}'
278       - shell: '{build_script}'
279       - shell: '{post_build_script}'
280
281 - job-template:
282     name: '{project-name}-{subproject}-{stream}-merge-helm'
283     # Job template for helm merge jobs
284
285     <<: *helm_job_boiler_plate
286
287     disabled: true
288     builders:
289       - lf-infra-pre-build
290       - shell: |
291           echo "export HELM_BIN=helm3.6" > helm.prop
292       - shell: '{pre_build_script}'
293       - shell: '{build_script}'
294       - inject:
295           properties-content: |
296             BUILD_TYPE=snapshot
297       - shell: '{post_build_script}'
298
299 - job-template:
300     name: '{project-name}-{stream}-update-helm-weekly'
301     # Job template for weekly helm update jobs
302     #
303     # Required Variables:
304     #     branch:    git branch (eg. stable/lithium or master)
305     <<: *helm_job_boiler_plate
306
307     disabled: true
308     scm:
309       - lf-infra-gerrit-scm:
310           jenkins-ssh-credential: '{jenkins-ssh-credential}'
311           git-url: '$GIT_URL/$PROJECT'
312           refspec: '$GERRIT_REFSPEC'
313           branch: '$GERRIT_BRANCH'
314           submodule-recursive: true
315           submodule-timeout: '{submodule-timeout}'
316           submodule-disable: '{submodule-disable}'
317           choosing-strategy: default
318
319     builders:
320       - lf-infra-pre-build
321       - shell: |
322           echo "export HELM_BIN=helm3.6" > helm.prop
323       - shell: '{pre_build_script}'
324       - shell: '{build_script}'
325       - shell: '{post_build_script}'
326
327     triggers:
328       # 11 AM UTC
329       - timed: '@daily'
330       - gerrit-trigger-release-manually:
331           server: '{server-name}'
332           project: '{project}'
333           branch: '{branch}'