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