xci: Set CI_LOOP, FUNCTEST_MODE, and FUNCTEST_SUITE_NAME in jobs
[releng.git] / jjb / xci / xci-merge-jobs.yml
1 ---
2 - project:
3     name: 'opnfv-xci-merge'
4
5     project: releng-xci
6     # -------------------------------
7     # branches
8     # -------------------------------
9     stream:
10       - master:
11           branch: '{stream}'
12     # -------------------------------
13     # distros
14     # -------------------------------
15     distro:
16       - ubuntu:
17           disabled: false
18       - centos:
19           disabled: false
20       - opensuse:
21           disabled: false
22     # -------------------------------
23     # postmerge promotion phases
24     # -------------------------------
25     phase:
26       - 'deploy'
27       - 'healthcheck'
28     # -------------------------------
29     # jobs
30     # -------------------------------
31     jobs:
32       - 'xci-merge-virtual-{stream}'
33       - 'xci-merge-promote-virtual-{stream}'
34       - 'xci-merge-{distro}-virtual-{stream}'
35       - 'xci-merge-{distro}-{phase}-virtual-{stream}'
36 # -------------------------------
37 # job templates
38 # -------------------------------
39 - job-template:
40     name: 'xci-merge-virtual-{stream}'
41
42     project-type: multijob
43
44     disabled: false
45
46     concurrent: false
47
48     properties:
49       - logrotate-default
50
51     wrappers:
52       - ssh-agent-wrapper
53       - build-timeout:
54           timeout: 240
55       - fix-workspace-permissions
56
57     scm:
58       - git-scm-gerrit
59
60     triggers:
61       - gerrit:
62           server-name: 'gerrit.opnfv.org'
63           trigger-on:
64             - change-merged-event
65             - comment-added-contains-event:
66                 comment-contains-value: 'remerge'
67           projects:
68             - project-compare-type: 'ANT'
69               project-pattern: 'releng-xci'
70               branches:
71                 - branch-compare-type: 'ANT'
72                   branch-pattern: '**/{branch}'
73               disable-strict-forbidden-file-verification: 'false'
74               forbidden-file-paths:
75                 - compare-type: ANT
76                   pattern: 'xci/scripts/vm/**'
77                 - compare-type: ANT
78                   pattern: 'docs/**'
79                 - compare-type: ANT
80                   pattern: 'prototypes/**'
81                 - compare-type: ANT
82                   pattern: 'upstream/**'
83             - project-compare-type: 'REG_EXP'
84               project-pattern: 'sfc|sdnvpn'
85               branches:
86                 - branch-compare-type: 'ANT'
87                   branch-pattern: '**/{branch}'
88               disable-strict-forbidden-file-verification: 'true'
89               file-paths:
90                 - compare-type: ANT
91                   pattern: 'scenarios/**'
92           readable-message: true
93           custom-url: '* $JOB_NAME $BUILD_URL'
94
95     parameters:
96       - project-parameter:
97           project: $GERRIT_PROJECT
98           branch: '{branch}'
99       - label:
100           name: SLAVE_LABEL
101           default: 'xci-virtual'
102       - string:
103           name: CI_LOOP
104           default: 'merge'
105       - string:
106           name: FUNCTEST_MODE
107           default: 'tier'
108       - string:
109           name: FUNCTEST_SUITE_NAME
110           default: 'healthcheck'
111       - string:
112           name: DISTRO
113           default: 'all'
114       - string:
115           name: CLEAN_DIB_IMAGES
116           default: 'true'
117       - string:
118           name: GIT_BASE
119           default: https://gerrit.opnfv.org/gerrit/$PROJECT
120           description: 'Git URL to use on this Jenkins Slave'
121
122     builders:
123       - 'xci-merge-set-scenario-macro'
124       - inject:
125           properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties"
126       - description-setter:
127           description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME"
128       - multijob:
129           name: deploy and test
130           condition: SUCCESSFUL
131           projects:
132             - name: 'xci-merge-opensuse-virtual-{stream}'
133               current-parameters: false
134               predefined-parameters: |
135                 DISTRO=opensuse
136                 CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
137                 GERRIT_PROJECT=$GERRIT_PROJECT
138                 GERRIT_BRANCH=$GERRIT_BRANCH
139                 GERRIT_REFSPEC=$GERRIT_REFSPEC
140                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
141                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
142                 CI_LOOP=$CI_LOOP
143                 FUNCTEST_MODE=$FUNCTEST_MODE
144                 FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
145               node-parameters: false
146               kill-phase-on: FAILURE
147               abort-all-job: true
148             - name: 'xci-merge-ubuntu-virtual-{stream}'
149               current-parameters: false
150               predefined-parameters: |
151                 DISTRO=ubuntu
152                 CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
153                 GERRIT_PROJECT=$GERRIT_PROJECT
154                 GERRIT_BRANCH=$GERRIT_BRANCH
155                 GERRIT_REFSPEC=$GERRIT_REFSPEC
156                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
157                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
158                 CI_LOOP=$CI_LOOP
159                 FUNCTEST_MODE=$FUNCTEST_MODE
160                 FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
161               node-parameters: false
162               kill-phase-on: FAILURE
163               abort-all-job: true
164             - name: 'xci-merge-centos-virtual-{stream}'
165               current-parameters: false
166               predefined-parameters: |
167                 DISTRO=centos
168                 CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
169                 GERRIT_PROJECT=$GERRIT_PROJECT
170                 GERRIT_BRANCH=$GERRIT_BRANCH
171                 GERRIT_REFSPEC=$GERRIT_REFSPEC
172                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
173                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
174                 CI_LOOP=$CI_LOOP
175                 FUNCTEST_MODE=$FUNCTEST_MODE
176                 FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
177               node-parameters: false
178               kill-phase-on: NEVER
179               abort-all-job: false
180       - inject:
181           properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties"
182       - multijob:
183           name: promote
184           condition: SUCCESSFUL
185           projects:
186             - name: 'xci-merge-promote-virtual-{stream}'
187               current-parameters: true
188               predefined-parameters: |
189                 GERRIT_PROJECT=$GERRIT_PROJECT
190                 GERRIT_BRANCH=$GERRIT_BRANCH
191                 GERRIT_REFSPEC=$GERRIT_REFSPEC
192                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
193                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
194                 CI_LOOP=$CI_LOOP
195                 FUNCTEST_MODE=$FUNCTEST_MODE
196                 FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
197               node-parameters: true
198               kill-phase-on: NEVER
199               abort-all-job: true
200
201 - job-template:
202     name: 'xci-merge-{distro}-virtual-{stream}'
203
204     project-type: multijob
205
206     disabled: false
207
208     concurrent: false
209
210     properties:
211       - logrotate-default
212       - build-blocker:
213           use-build-blocker: true
214           blocking-jobs:
215             - 'xci-verify-{distro}-.*'
216             - 'xci-merge-{distro}-.*'
217             - 'openstack-bifrost-verify-{distro}-.*'
218             - 'xci-osa-verify-{distro}-.*'
219             - 'xci-osa-periodic-{distro}-.*'
220           block-level: 'NODE'
221       - throttle:
222           max-per-node: 1
223           max-total: 3
224           categories:
225             - xci-verify-virtual
226           option: category
227
228     wrappers:
229       - ssh-agent-wrapper
230       - build-timeout:
231           timeout: 240
232       - fix-workspace-permissions
233
234     scm:
235       - git-scm-gerrit
236
237     parameters:
238       - project-parameter:
239           project: $GERRIT_PROJECT
240           branch: '{branch}'
241       - label:
242           name: SLAVE_LABEL
243           default: 'xci-virtual'
244       - string:
245           name: CI_LOOP
246           default: 'merge'
247       - string:
248           name: FUNCTEST_MODE
249           default: 'tier'
250       - string:
251           name: FUNCTEST_SUITE_NAME
252           default: 'healthcheck'
253       - string:
254           name: DISTRO
255           default: '{distro}'
256       - string:
257           name: CLEAN_DIB_IMAGES
258           default: 'true'
259       - string:
260           name: GIT_BASE
261           default: https://gerrit.opnfv.org/gerrit/$PROJECT
262           description: 'Git URL to use on this Jenkins Slave'
263
264     builders:
265       - 'xci-merge-set-scenario-macro'
266       - inject:
267           properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties"
268       - description-setter:
269           description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME"
270       - multijob:
271           name: deploy
272           condition: SUCCESSFUL
273           projects:
274             - name: 'xci-merge-{distro}-deploy-virtual-{stream}'
275               current-parameters: true
276               predefined-parameters: |
277                 DISTRO={distro}
278                 CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
279                 GERRIT_PROJECT=$GERRIT_PROJECT
280                 GERRIT_BRANCH=$GERRIT_BRANCH
281                 GERRIT_REFSPEC=$GERRIT_REFSPEC
282                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
283                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
284               node-parameters: true
285               kill-phase-on: FAILURE
286               abort-all-job: true
287       - multijob:
288           name: healthcheck
289           condition: SUCCESSFUL
290           projects:
291             - name: 'xci-merge-{distro}-healthcheck-virtual-{stream}'
292               current-parameters: true
293               predefined-parameters: |
294                 DISTRO={distro}
295                 CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES
296                 GERRIT_PROJECT=$GERRIT_PROJECT
297                 GERRIT_BRANCH=$GERRIT_BRANCH
298                 GERRIT_REFSPEC=$GERRIT_REFSPEC
299                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
300                 GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE
301                 CI_LOOP=$CI_LOOP
302                 FUNCTEST_MODE=$FUNCTEST_MODE
303                 FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
304               node-parameters: true
305               kill-phase-on: NEVER
306               abort-all-job: true
307
308     publishers:
309       - postbuildscript:
310           script-only-if-succeeded: false
311           script-only-if-failed: false
312           builders:
313             - shell:
314                 !include-raw: ./xci-cleanup.sh
315
316 - job-template:
317     name: 'xci-merge-{distro}-{phase}-virtual-{stream}'
318
319     disabled: false
320
321     concurrent: false
322
323     properties:
324       - logrotate-default
325       - build-blocker:
326           use-build-blocker: true
327           blocking-jobs:
328             - '.*-bifrost-verify-.*'
329             - '.*-bifrost-periodic-.*'
330             - 'osa-verify-.*'
331             - 'osa-periodic-.*'
332           block-level: 'NODE'
333
334     parameters:
335       - string:
336           name: PROJECT
337           default: $GERRIT_PROJECT
338       - string:
339           name: DISTRO
340           default: 'ubuntu'
341       - string:
342           name: CI_LOOP
343           default: 'merge'
344       - string:
345           name: FUNCTEST_MODE
346           default: 'tier'
347       - string:
348           name: FUNCTEST_SUITE_NAME
349           default: 'healthcheck'
350       - string:
351           name: XCI_FLAVOR
352           default: 'mini'
353       - string:
354           name: CLEAN_DIB_IMAGES
355           default: 'true'
356       - string:
357           name: OPNFV_RELENG_DEV_PATH
358           default: $WORKSPACE/
359       - string:
360           name: GIT_BASE
361           default: https://gerrit.opnfv.org/gerrit/$PROJECT
362           description: 'Git URL to use on this Jenkins Slave'
363
364     wrappers:
365       - inject:
366           properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties"
367       - ssh-agent-wrapper
368       - build-timeout:
369           timeout: 240
370       - fix-workspace-permissions
371
372     scm:
373       - git-scm-gerrit
374
375     builders:
376       - description-setter:
377           description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME"
378       - 'xci-merge-{phase}-macro'
379
380 - job-template:
381     name: 'xci-merge-promote-virtual-{stream}'
382
383     disabled: false
384
385     concurrent: false
386
387     properties:
388       - logrotate-default
389
390     parameters:
391       - string:
392           name: PROJECT
393           default: $GERRIT_PROJECT
394       - string:
395           name: CI_LOOP
396           default: 'merge'
397       - string:
398           name: FUNCTEST_MODE
399           default: 'tier'
400       - string:
401           name: FUNCTEST_SUITE_NAME
402           default: 'healthcheck'
403       - string:
404           name: DISTRO
405           default: 'all'
406       - string:
407           name: OPNFV_RELENG_DEV_PATH
408           default: $WORKSPACE/
409       - string:
410           name: LOCAL_PROMOTION_METADATA_FILE
411           default: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties"
412       - string:
413           name: REMOTE_PROMOTION_METADATA_FILE
414           default: "gs://artifacts.opnfv.org/xci/pipeline/merge/$DEPLOY_SCENARIO.properties"
415       - string:
416           name: GIT_BASE
417           default: https://gerrit.opnfv.org/gerrit/$PROJECT
418           description: 'Git URL to use on this Jenkins Slave'
419
420     wrappers:
421       - inject:
422           properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties"
423       - ssh-agent-wrapper
424       - build-timeout:
425           timeout: 240
426       - fix-workspace-permissions
427
428     builders:
429       - description-setter:
430           description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME"
431       - 'xci-merge-promote-macro'
432
433 # -------------------------------
434 # builder macros
435 # -------------------------------
436 - builder:
437     name: 'xci-merge-set-scenario-macro'
438     builders:
439       - shell:
440           !include-raw: ./xci-set-scenario.sh
441
442 - builder:
443     name: 'xci-merge-deploy-macro'
444     builders:
445       - shell:
446           !include-raw: ./xci-start-new-vm.sh
447
448       - shell:
449           !include-raw: ./xci-start-deployment.sh
450
451 - builder:
452     name: 'xci-merge-healthcheck-macro'
453     builders:
454       - shell:
455           !include-raw: ./xci-run-functest.sh
456
457 - builder:
458     name: 'xci-merge-promote-macro'
459     builders:
460       - shell:
461           !include-raw: ./xci-promote.sh