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