Merge "Add support for Bottlenecks' new framework and potential installers"
[releng.git] / jjb / compass4nfv / compass-ci-jobs.yml
1 - project:
2
3     name: compass-ci
4
5     installer: 'compass'
6
7     project: 'compass4nfv'
8
9     master: &master
10         stream: master
11         branch: '{stream}'
12         gs-pathname: ''
13         ppa-pathname: '/{stream}'
14         disabled: false
15         openstack-version: ocata
16     danube: &danube
17         stream: danube
18         branch: 'stable/{stream}'
19         gs-pathname: '/{stream}'
20         ppa-pathname: '/{stream}'
21         disabled: false
22         openstack-version: newton
23 #--------------------------------
24 # POD, INSTALLER, AND BRANCH MAPPING
25 #--------------------------------
26 #        CI PODs
27 #--------------------------------
28     pod:
29         - baremetal:
30             slave-label: compass-baremetal-master
31             os-version: 'xenial'
32             <<: *master
33         - virtual:
34             slave-label: compass-virtual-master
35             os-version: 'xenial'
36             <<: *master
37         - baremetal:
38             slave-label: compass-baremetal-branch
39             os-version: 'xenial'
40             <<: *danube
41         - virtual:
42             slave-label: compass-virtual-branch
43             os-version: 'xenial'
44             <<: *danube
45 #--------------------------------
46 #        master
47 #--------------------------------
48         - baremetal-centos:
49             slave-label: 'intel-pod8'
50             os-version: 'centos7'
51             <<: *master
52
53     scenario:
54         - 'os-nosdn-nofeature-ha':
55             disabled: false
56             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
57         - 'os-odl_l2-nofeature-ha':
58             disabled: false
59             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
60         - 'os-odl_l3-nofeature-ha':
61             disabled: false
62             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
63         - 'os-onos-nofeature-ha':
64             disabled: false
65             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
66         - 'os-ocl-nofeature-ha':
67             disabled: false
68             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
69         - 'os-onos-sfc-ha':
70             disabled: false
71             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
72         - 'os-odl_l2-moon-ha':
73             disabled: false
74             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
75         - 'os-nosdn-kvm-ha':
76             disabled: false
77             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
78         - 'os-nosdn-openo-ha':
79             disabled: false
80             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
81         - 'os-odl-sfc-ha':
82             disabled: false
83             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
84         - 'os-nosdn-dpdk-ha':
85             disabled: false
86             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
87         - 'k8-nosdn-nofeature-ha':
88             disabled: false
89             auto-trigger-name: 'compass-{scenario}-{pod}-{stream}-trigger'
90
91
92     jobs:
93         - 'compass-{scenario}-{pod}-daily-{stream}'
94         - 'compass-deploy-{pod}-daily-{stream}'
95
96 ########################
97 # job templates
98 ########################
99 - job-template:
100     name: 'compass-{scenario}-{pod}-daily-{stream}'
101
102     disabled: '{obj:disabled}'
103
104     concurrent: true
105
106     properties:
107         - logrotate-default
108         - throttle:
109             enabled: true
110             max-per-node: 1
111             option: 'project'
112         - build-blocker:
113             use-build-blocker: true
114             blocking-jobs:
115                 - 'compass-os-.*?-{pod}-daily-.*?'
116                 - 'compass-os-.*?-baremetal-daily-.*?'
117                 - 'compass-verify-[^-]*-[^-]*'
118             block-level: 'NODE'
119
120     wrappers:
121         - build-name:
122             name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
123         - fix-workspace-permissions
124
125     parameters:
126         - project-parameter:
127             project: '{project}'
128             branch: '{branch}'
129         - compass-ci-parameter:
130             installer: '{installer}'
131             gs-pathname: '{gs-pathname}'
132             ppa-pathname: '{ppa-pathname}'
133         - string:
134             name: DEPLOY_SCENARIO
135             default: '{scenario}'
136         - '{slave-label}-defaults'
137         - '{installer}-defaults'
138
139     triggers:
140         - '{auto-trigger-name}'
141
142     builders:
143         - description-setter:
144             description: "POD: $NODE_NAME"
145         - trigger-builds:
146             - project: 'compass-deploy-{pod}-daily-{stream}'
147               current-parameters: true
148               predefined-parameters: |
149                 DEPLOY_SCENARIO={scenario}
150                 COMPASS_OS_VERSION={os-version}
151                 COMPASS_OPENSTACK_VERSION={openstack-version}
152               same-node: true
153               block: true
154         - trigger-builds:
155             - project: 'functest-compass-{pod}-daily-{stream}'
156               current-parameters: false
157               predefined-parameters:
158                 DEPLOY_SCENARIO={scenario}
159               same-node: true
160               block: true
161               block-thresholds:
162                 build-step-failure-threshold: 'never'
163                 failure-threshold: 'never'
164                 unstable-threshold: 'FAILURE'
165         - trigger-builds:
166             - project: 'yardstick-compass-{pod}-daily-{stream}'
167               current-parameters: false
168               predefined-parameters:
169                 DEPLOY_SCENARIO={scenario}
170               block: true
171               same-node: true
172               block-thresholds:
173                 build-step-failure-threshold: 'never'
174                 failure-threshold: 'never'
175                 unstable-threshold: 'FAILURE'
176         # dovetail only master by now, not sync with A/B/C branches
177         # here the stream means the SUT stream, dovetail stream is defined in its own job
178         # only run on os-(nosdn|odl_l2|onos|odl_l3)-nofeature-ha scenario
179         # run against SUT master branch, dovetail docker image with latest tag
180         # run against SUT danube branch, dovetail docker image with latest tag(odd days)and cvp.X.X.X tag(even days)
181         - conditional-step:
182             condition-kind: and
183             condition-operands:
184                 - condition-kind: regex-match
185                   regex: danube
186                   label: '{stream}'
187                 - condition-kind: regex-match
188                   regex: os-(nosdn|odl_l2|onos|odl_l3)-nofeature-ha
189                   label: '{scenario}'
190                 - condition-kind: day-of-week
191                   day-selector: select-days
192                   days:
193                       MON: true
194                       WED: true
195                       FRI: true
196                       SUN: true
197                   use-build-time: true
198             steps:
199                 - trigger-builds:
200                     - project: 'dovetail-compass-{pod}-proposed_tests-{stream}'
201                       current-parameters: false
202                       predefined-parameters: |
203                         DOCKER_TAG=latest
204                         DEPLOY_SCENARIO={scenario}
205                       block: true
206                       same-node: true
207                       block-thresholds:
208                         build-step-failure-threshold: 'never'
209                         failure-threshold: 'never'
210                         unstable-threshold: 'FAILURE'
211         - conditional-step:
212             condition-kind: and
213             condition-operands:
214                 - condition-kind: regex-match
215                   regex: danube
216                   label: '{stream}'
217                 - condition-kind: regex-match
218                   regex: os-(nosdn|odl_l2|onos|odl_l3)-nofeature-ha
219                   label: '{scenario}'
220                 - condition-kind: day-of-week
221                   day-selector: select-days
222                   days:
223                       TUES: true
224                       THURS: true
225                       SAT: true
226                   use-build-time: true
227             steps:
228                 - trigger-builds:
229                     - project: 'dovetail-compass-{pod}-proposed_tests-{stream}'
230                       current-parameters: false
231                       predefined-parameters:
232                         DEPLOY_SCENARIO={scenario}
233                       block: true
234                       same-node: true
235                       block-thresholds:
236                         build-step-failure-threshold: 'never'
237                         failure-threshold: 'never'
238                         unstable-threshold: 'FAILURE'
239         - conditional-step:
240             condition-kind: and
241             condition-operands:
242                 - condition-kind: regex-match
243                   regex: os-(nosdn|odl_l2|onos|odl_l3)-nofeature-ha
244                   label: '{scenario}'
245                 - condition-kind: regex-match
246                   regex: master
247                   label: '{stream}'
248             steps:
249                 - trigger-builds:
250                     - project: 'dovetail-compass-{pod}-proposed_tests-{stream}'
251                       current-parameters: false
252                       predefined-parameters:
253                         DEPLOY_SCENARIO={scenario}
254                       block: true
255                       same-node: true
256                       block-thresholds:
257                         build-step-failure-threshold: 'never'
258                         failure-threshold: 'never'
259                         unstable-threshold: 'FAILURE'
260
261 - job-template:
262     name: 'compass-deploy-{pod}-daily-{stream}'
263
264     disabled: false
265
266     concurrent: true
267
268     properties:
269         - logrotate-default
270         - throttle:
271             enabled: true
272             max-per-node: 1
273             option: 'project'
274         - build-blocker:
275             use-build-blocker: true
276             blocking-jobs:
277                 - 'compass-deploy-{pod}-daily-.*?'
278                 - 'compass-verify-deploy-.*?'
279             block-level: 'NODE'
280
281     wrappers:
282         - build-name:
283             name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
284         - timeout:
285             timeout: 240
286             abort: true
287         - fix-workspace-permissions
288
289     parameters:
290         - project-parameter:
291             project: '{project}'
292             branch: '{branch}'
293         - compass-ci-parameter:
294             installer: '{installer}'
295             gs-pathname: '{gs-pathname}'
296             ppa-pathname: '{ppa-pathname}'
297         - '{slave-label}-defaults'
298         - '{installer}-defaults'
299
300     scm:
301         - git-scm
302
303     builders:
304         - description-setter:
305             description: "POD: $NODE_NAME"
306         - conditional-step:
307             condition-kind: regex-match
308             regex: master
309             label: '{stream}'
310             steps:
311                 - shell:
312                     !include-raw-escape: ./compass-build.sh
313                 - shell:
314                     !include-raw-escape: ./compass-deploy.sh
315         - conditional-step:
316             condition-kind: regex-match
317             regex: danube
318             label: '{stream}'
319             steps:
320                 - shell:
321                     !include-raw-escape: ./compass-download-artifact.sh
322                 - shell:
323                     !include-raw-escape: ./compass-deploy.sh
324
325
326 ########################
327 # parameter macros
328 ########################
329 - parameter:
330     name: compass-ci-parameter
331     parameters:
332         - string:
333             name: BUILD_DIRECTORY
334             default: $WORKSPACE/build_output
335             description: "Directory where the build artifact will be located upon the completion of the build."
336         - string:
337             name: GS_URL
338             default: '$GS_BASE{gs-pathname}'
339             description: "URL to Google Storage."
340         - string:
341             name: CACHE_DIRECTORY
342             default: "$HOME/opnfv/cache/$PROJECT{gs-pathname}"
343             description: "Directory where the cache to be used during the build is located."
344         - string:
345             name: PPA_REPO
346             default: "http://artifacts.opnfv.org/compass4nfv/package{ppa-pathname}"
347         - string:
348             name: PPA_CACHE
349             default: "$WORKSPACE/work/repo/"
350
351 ########################
352 # trigger macros
353 ########################
354 - trigger:
355     name: 'compass-os-nosdn-nofeature-ha-baremetal-centos-master-trigger'
356     triggers:
357         - timed: '0 19 * * *'
358 - trigger:
359     name: 'compass-os-nosdn-openo-ha-baremetal-centos-master-trigger'
360     triggers:
361         - timed: ''
362 - trigger:
363     name: 'compass-os-odl_l2-nofeature-ha-baremetal-centos-master-trigger'
364     triggers:
365         - timed: '0 23 * * *'
366 - trigger:
367     name: 'compass-os-odl_l3-nofeature-ha-baremetal-centos-master-trigger'
368     triggers:
369         - timed: '0 15 * * *'
370 - trigger:
371     name: 'compass-os-onos-nofeature-ha-baremetal-centos-master-trigger'
372     triggers:
373         - timed: ''
374 - trigger:
375     name: 'compass-os-ocl-nofeature-ha-baremetal-centos-master-trigger'
376     triggers:
377         - timed: ''
378 - trigger:
379     name: 'compass-os-onos-sfc-ha-baremetal-centos-master-trigger'
380     triggers:
381         - timed: ''
382 - trigger:
383     name: 'compass-os-odl_l2-moon-ha-baremetal-centos-master-trigger'
384     triggers:
385         - timed: ''
386 - trigger:
387     name: 'compass-os-nosdn-kvm-ha-baremetal-centos-master-trigger'
388     triggers:
389         - timed: ''
390 - trigger:
391     name: 'compass-os-nosdn-dpdk-ha-baremetal-centos-master-trigger'
392     triggers:
393         - timed: ''
394 - trigger:
395     name: 'compass-os-odl-sfc-ha-baremetal-centos-master-trigger'
396     triggers:
397         - timed: ''
398 - trigger:
399     name: 'compass-k8-nosdn-nofeature-ha-baremetal-centos-master-trigger'
400     triggers:
401         - timed: ''
402
403 - trigger:
404     name: 'compass-os-nosdn-nofeature-ha-baremetal-master-trigger'
405     triggers:
406         - timed: '0 2 * * *'
407 - trigger:
408     name: 'compass-os-nosdn-openo-ha-baremetal-master-trigger'
409     triggers:
410         - timed: ''
411 - trigger:
412     name: 'compass-os-odl_l2-nofeature-ha-baremetal-master-trigger'
413     triggers:
414         - timed: '0 22 * * *'
415 - trigger:
416     name: 'compass-os-odl_l3-nofeature-ha-baremetal-master-trigger'
417     triggers:
418         - timed: '0 18 * * *'
419 - trigger:
420     name: 'compass-os-onos-nofeature-ha-baremetal-master-trigger'
421     triggers:
422         - timed: ''
423 - trigger:
424     name: 'compass-os-ocl-nofeature-ha-baremetal-master-trigger'
425     triggers:
426         - timed: ''
427 - trigger:
428     name: 'compass-os-onos-sfc-ha-baremetal-master-trigger'
429     triggers:
430         - timed: ''
431 - trigger:
432     name: 'compass-os-odl_l2-moon-ha-baremetal-master-trigger'
433     triggers:
434         - timed: '0 12 * * *'
435 - trigger:
436     name: 'compass-os-nosdn-kvm-ha-baremetal-master-trigger'
437     triggers:
438         - timed: '0 14 * * *'
439 - trigger:
440     name: 'compass-os-nosdn-dpdk-ha-baremetal-master-trigger'
441     triggers:
442         - timed: '0 16 * * *'
443 - trigger:
444     name: 'compass-k8-nosdn-nofeature-ha-baremetal-master-trigger'
445     triggers:
446         - timed: ''
447 - trigger:
448     name: 'compass-os-odl-sfc-ha-baremetal-master-trigger'
449     triggers:
450         - timed: '0 4 * * *'
451
452
453 - trigger:
454     name: 'compass-os-nosdn-nofeature-ha-baremetal-danube-trigger'
455     triggers:
456         - timed: '0 9 * * *'
457 - trigger:
458     name: 'compass-os-nosdn-openo-ha-baremetal-danube-trigger'
459     triggers:
460         - timed: '0 13 * * *'
461 - trigger:
462     name: 'compass-os-odl_l2-nofeature-ha-baremetal-danube-trigger'
463     triggers:
464         - timed: '0 17 * * *'
465 - trigger:
466     name: 'compass-os-odl_l3-nofeature-ha-baremetal-danube-trigger'
467     triggers:
468         - timed: '0 21 * * *'
469 - trigger:
470     name: 'compass-os-onos-nofeature-ha-baremetal-danube-trigger'
471     triggers:
472         - timed: '0 1 * * *'
473 - trigger:
474     name: 'compass-os-ocl-nofeature-ha-baremetal-danube-trigger'
475     triggers:
476         - timed: ''
477 - trigger:
478     name: 'compass-os-onos-sfc-ha-baremetal-danube-trigger'
479     triggers:
480         - timed: '0 5 * * *'
481 - trigger:
482     name: 'compass-os-odl_l2-moon-ha-baremetal-danube-trigger'
483     triggers:
484         - timed: ''
485 - trigger:
486     name: 'compass-os-nosdn-kvm-ha-baremetal-danube-trigger'
487     triggers:
488         - timed: ''
489 - trigger:
490     name: 'compass-os-nosdn-dpdk-ha-baremetal-danube-trigger'
491     triggers:
492         - timed: ''
493 - trigger:
494     name: 'compass-k8-nosdn-nofeature-ha-baremetal-danube-trigger'
495     triggers:
496         - timed: ''
497 - trigger:
498     name: 'compass-os-odl-sfc-ha-baremetal-danube-trigger'
499     triggers:
500         - timed: ''
501
502
503 - trigger:
504     name: 'compass-os-nosdn-nofeature-ha-virtual-master-trigger'
505     triggers:
506         - timed: '0 21 * * *'
507 - trigger:
508     name: 'compass-os-nosdn-openo-ha-virtual-master-trigger'
509     triggers:
510         - timed: ''
511 - trigger:
512     name: 'compass-os-odl_l2-nofeature-ha-virtual-master-trigger'
513     triggers:
514         - timed: '0 20 * * *'
515 - trigger:
516     name: 'compass-os-odl_l3-nofeature-ha-virtual-master-trigger'
517     triggers:
518         - timed: '0 19 * * *'
519 - trigger:
520     name: 'compass-os-onos-nofeature-ha-virtual-master-trigger'
521     triggers:
522         - timed: ''
523 - trigger:
524     name: 'compass-os-ocl-nofeature-ha-virtual-master-trigger'
525     triggers:
526         - timed: ''
527 - trigger:
528     name: 'compass-os-onos-sfc-ha-virtual-master-trigger'
529     triggers:
530         - timed: ''
531 - trigger:
532     name: 'compass-os-odl_l2-moon-ha-virtual-master-trigger'
533     triggers:
534         - timed: '0 22 * * *'
535 - trigger:
536     name: 'compass-os-nosdn-kvm-ha-virtual-master-trigger'
537     triggers:
538         - timed: '0 23 * * *'
539 - trigger:
540     name: 'compass-os-nosdn-dpdk-ha-virtual-master-trigger'
541     triggers:
542         - timed: '0 17 * * *'
543 - trigger:
544     name: 'compass-k8-nosdn-nofeature-ha-virtual-master-trigger'
545     triggers:
546         - timed: ''
547 - trigger:
548     name: 'compass-os-odl-sfc-ha-virtual-master-trigger'
549     triggers:
550         - timed: '0 16 * * *'
551
552 - trigger:
553     name: 'compass-os-nosdn-nofeature-ha-virtual-danube-trigger'
554     triggers:
555         - timed: '0 21 * * *'
556 - trigger:
557     name: 'compass-os-nosdn-openo-ha-virtual-danube-trigger'
558     triggers:
559         - timed: '0 22 * * *'
560 - trigger:
561     name: 'compass-os-odl_l2-nofeature-ha-virtual-danube-trigger'
562     triggers:
563         - timed: '0 20 * * *'
564 - trigger:
565     name: 'compass-os-odl_l3-nofeature-ha-virtual-danube-trigger'
566     triggers:
567         - timed: '0 19 * * *'
568 - trigger:
569     name: 'compass-os-onos-nofeature-ha-virtual-danube-trigger'
570     triggers:
571         - timed: '0 18 * * *'
572 - trigger:
573     name: 'compass-os-ocl-nofeature-ha-virtual-danube-trigger'
574     triggers:
575         - timed: ''
576 - trigger:
577     name: 'compass-os-onos-sfc-ha-virtual-danube-trigger'
578     triggers:
579         - timed: '0 15 * * *'
580 - trigger:
581     name: 'compass-os-odl_l2-moon-ha-virtual-danube-trigger'
582     triggers:
583         - timed: '0 14 * * *'
584 - trigger:
585     name: 'compass-os-nosdn-kvm-ha-virtual-danube-trigger'
586     triggers:
587         - timed: ''
588 - trigger:
589     name: 'compass-os-nosdn-dpdk-ha-virtual-danube-trigger'
590     triggers:
591         - timed: ''
592 - trigger:
593     name: 'compass-os-odl-sfc-ha-virtual-danube-trigger'
594     triggers:
595         - timed: ''
596 - trigger:
597     name: 'compass-k8-nosdn-nofeature-ha-virtual-danube-trigger'
598     triggers:
599         - timed: ''