cdc14e4e0a28d489c0bd55425ce79a95ef91a769
[releng.git] / jjb / armband / armband-ci-jobs.yml
1 # jenkins job templates for Armband
2 - project:
3     name: 'armband-ci'
4     project: 'armband'
5
6 #--------------------------------
7 # BRANCH ANCHORS
8 #--------------------------------
9     master: &master
10         stream: master
11         branch: '{stream}'
12         gs-pathname: ''
13         disabled: false
14     euphrates: &euphrates
15         stream: euphrates
16         branch: 'stable/{stream}'
17         gs-pathname: '/{stream}'
18         disabled: true
19 #--------------------------------
20 # POD, INSTALLER, AND BRANCH MAPPING
21 #--------------------------------
22 # CI POD's
23 #--------------------------------
24 #        euphrates
25 #--------------------------------
26     pod:
27         - armband-baremetal:
28             slave-label: armband-baremetal
29             installer: fuel
30             <<: *euphrates
31         - armband-virtual:
32             slave-label: armband-virtual
33             installer: fuel
34             <<: *euphrates
35 #--------------------------------
36 #        master
37 #--------------------------------
38         - armband-baremetal:
39             slave-label: armband-baremetal
40             installer: fuel
41             <<: *master
42         - armband-virtual:
43             slave-label: armband-virtual
44             installer: fuel
45             <<: *master
46 #--------------------------------
47 # NONE-CI POD's
48 #--------------------------------
49 #        euphrates
50 #--------------------------------
51         - arm-pod2:
52             slave-label: arm-pod2
53             installer: fuel
54             <<: *euphrates
55         - arm-pod3:
56             slave-label: arm-pod3
57             installer: fuel
58             <<: *euphrates
59         - arm-pod4:
60             slave-label: arm-pod4
61             installer: fuel
62             <<: *euphrates
63         - arm-virtual1:
64             slave-label: arm-virtual1
65             installer: fuel
66             <<: *euphrates
67 #--------------------------------
68 #        master
69 #--------------------------------
70         - arm-pod2:
71             slave-label: arm-pod2
72             installer: fuel
73             <<: *master
74         - arm-pod3:
75             slave-label: arm-pod3
76             installer: fuel
77             <<: *master
78         - arm-pod4:
79             slave-label: arm-pod4
80             installer: fuel
81             <<: *master
82         - arm-virtual1:
83             slave-label: arm-virtual1
84             installer: fuel
85             <<: *master
86 #--------------------------------
87 #       scenarios
88 #--------------------------------
89     scenario:
90         # HA scenarios
91         - 'os-nosdn-nofeature-ha':
92             auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
93         - 'os-odl_l2-nofeature-ha':
94             auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
95         - 'os-odl_l3-nofeature-ha':
96             auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
97         - 'os-odl_l2-bgpvpn-ha':
98             auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
99         - 'os-odl_l2-sfc-ha':
100             auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
101
102         # NOHA scenarios
103         - 'os-odl_l2-nofeature-noha':
104             auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
105         - 'os-odl_l2-sfc-noha':
106             auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
107
108     jobs:
109         - '{installer}-{scenario}-{pod}-daily-{stream}'
110         - '{installer}-deploy-{pod}-daily-{stream}'
111
112 ########################
113 # job templates
114 ########################
115 - job-template:
116     name: '{installer}-{scenario}-{pod}-daily-{stream}'
117
118     disabled: '{obj:disabled}'
119
120     concurrent: false
121
122     properties:
123         - logrotate-default
124         - throttle:
125             enabled: true
126             max-total: 4
127             max-per-node: 1
128             option: 'project'
129         - build-blocker:
130             use-build-blocker: true
131             blocking-jobs:
132                 - '{installer}-os-.*?-{pod}-daily-.*'
133             block-level: 'NODE'
134
135     wrappers:
136         - build-name:
137             name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
138
139     triggers:
140         - '{auto-trigger-name}'
141
142     parameters:
143         - project-parameter:
144             project: '{project}'
145             branch: '{branch}'
146         - '{installer}-defaults'
147         - '{slave-label}-defaults':
148             installer: '{installer}'
149         - string:
150             name: DEPLOY_SCENARIO
151             default: '{scenario}'
152         - armband-ci-parameter:
153             gs-pathname: '{gs-pathname}'
154
155     builders:
156         - trigger-builds:
157             - project: '{installer}-deploy-{pod}-daily-{stream}'
158               current-parameters: false
159               predefined-parameters:
160                 DEPLOY_SCENARIO={scenario}
161               same-node: true
162               block: true
163         - trigger-builds:
164             - project: 'functest-{installer}-{pod}-daily-{stream}'
165               current-parameters: false
166               predefined-parameters:
167                 DEPLOY_SCENARIO={scenario}
168               block: true
169               same-node: true
170               block-thresholds:
171                 build-step-failure-threshold: 'never'
172                 failure-threshold: 'never'
173                 unstable-threshold: 'FAILURE'
174         - trigger-builds:
175             - project: 'yardstick-{installer}-{pod}-daily-{stream}'
176               current-parameters: false
177               predefined-parameters:
178                 DEPLOY_SCENARIO={scenario}
179               block: true
180               same-node: true
181               block-thresholds:
182                 build-step-failure-threshold: 'never'
183                 failure-threshold: 'never'
184                 unstable-threshold: 'FAILURE'
185         # 1.dovetail only master, based on D release
186         # 2.here the stream means the SUT stream, dovetail stream is defined in its own job
187         # 3.only proposed_tests testsuite here(refstack, ha, ipv6, bgpvpn)
188         # 4.not used for release criteria or compliance,
189         #   only to debug the dovetail tool bugs with arm pods
190         # 5.only run against scenario os-(nosdn|odl_l2)-(nofeature-bgpvpn)-ha
191         - conditional-step:
192             condition-kind: regex-match
193             regex: os-(nosdn|odl_l2)-(nofeature|bgpvpn)-ha
194             label: '{scenario}'
195             steps:
196                 - trigger-builds:
197                     - project: 'dovetail-{installer}-{pod}-proposed_tests-{stream}'
198                       current-parameters: false
199                       predefined-parameters:
200                         DEPLOY_SCENARIO={scenario}
201                       block: true
202                       same-node: true
203                       block-thresholds:
204                         build-step-failure-threshold: 'never'
205                         failure-threshold: 'never'
206                         unstable-threshold: 'FAILURE'
207
208 - job-template:
209     name: '{installer}-deploy-{pod}-daily-{stream}'
210
211     concurrent: true
212
213     properties:
214         - logrotate-default
215         - throttle:
216             enabled: true
217             max-total: 4
218             max-per-node: 1
219             option: 'project'
220         - build-blocker:
221             use-build-blocker: true
222             blocking-jobs:
223                 - '{installer}-deploy-{pod}-daily-{stream}'
224                 - '{installer}-deploy-generic-daily-.*'
225             block-level: 'NODE'
226
227     parameters:
228         - project-parameter:
229             project: '{project}'
230             branch: '{branch}'
231         - '{installer}-defaults'
232         - '{slave-label}-defaults':
233             installer: '{installer}'
234         - string:
235             name: DEPLOY_SCENARIO
236             default: 'os-odl_l2-nofeature-ha'
237         - armband-ci-parameter:
238             gs-pathname: '{gs-pathname}'
239
240     scm:
241         - git-scm
242
243     wrappers:
244         - build-name:
245             name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
246
247     builders:
248         - shell:
249             !include-raw-escape: ./armband-download-artifact.sh
250         - shell:
251             !include-raw-escape: ./armband-deploy.sh
252
253     publishers:
254         - email:
255             recipients: armband@enea.com
256         - email-jenkins-admins-on-failure
257
258 ########################
259 # parameter macros
260 ########################
261 - parameter:
262     name: armband-ci-parameter
263     parameters:
264         - string:
265             name: BUILD_DIRECTORY
266             default: $WORKSPACE/build_output
267             description: "Directory where the build artifact will be located upon the completion of the build."
268         - string:
269             name: CACHE_DIRECTORY
270             default: $HOME/opnfv/cache/$INSTALLER_TYPE
271             description: "Directory where the cache to be used during the build is located."
272         - string:
273             name: GS_URL
274             default: artifacts.opnfv.org/$PROJECT{gs-pathname}
275             description: "URL to Google Storage."
276         - string:
277             name: SSH_KEY
278             default: "/tmp/mcp.rsa"
279             description: "Path to private SSH key to access environment nodes. For MCP deployments only."
280
281 ########################
282 # trigger macros
283 ########################
284 # CI PODs
285 #-----------------------------------------------------------------
286 # Enea Armband CI Baremetal Triggers running against master branch
287 #-----------------------------------------------------------------
288 - trigger:
289     name: 'fuel-os-odl_l2-nofeature-ha-armband-baremetal-master-trigger'
290     triggers:
291         - timed: ''
292 - trigger:
293     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger'
294     triggers:
295         - timed: '0 1 * * *'
296 - trigger:
297     name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-master-trigger'
298     triggers:
299         - timed: '0 16 * * *'
300 - trigger:
301     name: 'fuel-os-odl_l2-bgpvpn-ha-armband-baremetal-master-trigger'
302     triggers:
303         - timed: ''
304 - trigger:
305     name: 'fuel-os-odl_l2-nofeature-noha-armband-baremetal-master-trigger'
306     triggers:
307         - timed: ''
308 - trigger:
309     name: 'fuel-os-odl_l2-sfc-ha-armband-baremetal-master-trigger'
310     triggers:
311         - timed: ''
312 - trigger:
313     name: 'fuel-os-odl_l2-sfc-noha-armband-baremetal-master-trigger'
314     triggers:
315         - timed: ''
316
317 #----------------------------------------------------------------------
318 # Enea Armband CI Baremetal Triggers running against euphrates branch
319 #----------------------------------------------------------------------
320 - trigger:
321     name: 'fuel-os-odl_l2-nofeature-ha-armband-baremetal-euphrates-trigger'
322     triggers:
323         - timed: ''
324 - trigger:
325     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-euphrates-trigger'
326     triggers:
327         - timed: ''
328 - trigger:
329     name: 'fuel-os-odl_l2-bgpvpn-ha-armband-baremetal-euphrates-trigger'
330     triggers:
331         - timed: ''
332 - trigger:
333     name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-euphrates-trigger'
334     triggers:
335         - timed: ''
336 - trigger:
337     name: 'fuel-os-odl_l2-nofeature-noha-armband-baremetal-euphrates-trigger'
338     triggers:
339         - timed: ''
340 - trigger:
341     name: 'fuel-os-odl_l2-sfc-ha-armband-baremetal-euphrates-trigger'
342     triggers:
343         - timed: ''
344 - trigger:
345     name: 'fuel-os-odl_l2-sfc-noha-armband-baremetal-euphrates-trigger'
346     triggers:
347         - timed: ''
348 #---------------------------------------------------------------
349 # Enea Armband CI Virtual Triggers running against master branch
350 #---------------------------------------------------------------
351 - trigger:
352     name: 'fuel-os-odl_l2-nofeature-ha-armband-virtual-master-trigger'
353     triggers:
354         - timed: ''
355 - trigger:
356     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-master-trigger'
357     triggers:
358         - timed: ''
359 - trigger:
360     name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-master-trigger'
361     triggers:
362         - timed: ''
363 - trigger:
364     name: 'fuel-os-odl_l2-bgpvpn-ha-armband-virtual-master-trigger'
365     triggers:
366         - timed: ''
367 - trigger:
368     name: 'fuel-os-odl_l2-nofeature-noha-armband-virtual-master-trigger'
369     triggers:
370         - timed: ''
371 - trigger:
372     name: 'fuel-os-odl_l2-sfc-ha-armband-virtual-master-trigger'
373     triggers:
374         - timed: ''
375 - trigger:
376     name: 'fuel-os-odl_l2-sfc-noha-armband-virtual-master-trigger'
377     triggers:
378         - timed: ''
379 #--------------------------------------------------------------------
380 # Enea Armband CI Virtual Triggers running against euphrates branch
381 #--------------------------------------------------------------------
382 - trigger:
383     name: 'fuel-os-odl_l2-nofeature-ha-armband-virtual-euphrates-trigger'
384     triggers:
385         - timed: ''
386 - trigger:
387     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-euphrates-trigger'
388     triggers:
389         - timed: ''
390 - trigger:
391     name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-euphrates-trigger'
392     triggers:
393         - timed: ''
394 - trigger:
395     name: 'fuel-os-odl_l2-bgpvpn-ha-armband-virtual-euphrates-trigger'
396     triggers:
397         - timed: ''
398 - trigger:
399     name: 'fuel-os-odl_l2-nofeature-noha-armband-virtual-euphrates-trigger'
400     triggers:
401         - timed: ''
402 - trigger:
403     name: 'fuel-os-odl_l2-sfc-ha-armband-virtual-euphrates-trigger'
404     triggers:
405         - timed: ''
406 - trigger:
407     name: 'fuel-os-odl_l2-sfc-noha-armband-virtual-euphrates-trigger'
408     triggers:
409         - timed: ''
410
411 #--------------------------------------------------------------------
412 # Enea Armband Non CI Virtual Triggers running against euphrates branch
413 #--------------------------------------------------------------------
414 - trigger:
415     name: 'fuel-os-odl_l2-nofeature-ha-arm-virtual1-euphrates-trigger'
416     triggers:
417         - timed: ''
418 - trigger:
419     name: 'fuel-os-nosdn-nofeature-ha-arm-virtual1-euphrates-trigger'
420     triggers:
421         - timed: ''
422 - trigger:
423     name: 'fuel-os-odl_l3-nofeature-ha-arm-virtual1-euphrates-trigger'
424     triggers:
425         - timed: ''
426 - trigger:
427     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-virtual1-euphrates-trigger'
428     triggers:
429         - timed: ''
430 - trigger:
431     name: 'fuel-os-odl_l2-nofeature-noha-arm-virtual1-euphrates-trigger'
432     triggers:
433         - timed: ''
434 - trigger:
435     name: 'fuel-os-odl_l2-sfc-ha-arm-virtual1-euphrates-trigger'
436     triggers:
437         - timed: ''
438 - trigger:
439     name: 'fuel-os-odl_l2-sfc-noha-arm-virtual1-euphrates-trigger'
440     triggers:
441         - timed: ''
442
443 #--------------------------------------------------------------------
444 # Enea Armband Non CI Virtual Triggers running against master branch
445 #--------------------------------------------------------------------
446 - trigger:
447     name: 'fuel-os-odl_l2-nofeature-ha-arm-virtual1-master-trigger'
448     triggers:
449         - timed: ''
450 - trigger:
451     name: 'fuel-os-nosdn-nofeature-ha-arm-virtual1-master-trigger'
452     triggers:
453         - timed: ''
454 - trigger:
455     name: 'fuel-os-odl_l3-nofeature-ha-arm-virtual1-master-trigger'
456     triggers:
457         - timed: ''
458 - trigger:
459     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-virtual1-master-trigger'
460     triggers:
461         - timed: ''
462 - trigger:
463     name: 'fuel-os-odl_l2-nofeature-noha-arm-virtual1-master-trigger'
464     triggers:
465         - timed: ''
466 - trigger:
467     name: 'fuel-os-odl_l2-sfc-ha-arm-virtual1-master-trigger'
468     triggers:
469         - timed: ''
470 - trigger:
471     name: 'fuel-os-odl_l2-sfc-noha-arm-virtual1-master-trigger'
472     triggers:
473         - timed: ''
474
475 #----------------------------------------------------------
476 # Enea Armband POD 2 Triggers running against master branch
477 #----------------------------------------------------------
478 - trigger:
479     name: 'fuel-os-odl_l2-nofeature-ha-arm-pod2-master-trigger'
480     triggers:
481         - timed: ''
482 - trigger:
483     name: 'fuel-os-nosdn-nofeature-ha-arm-pod2-master-trigger'
484     triggers:
485         - timed: ''
486 - trigger:
487     name: 'fuel-os-odl_l3-nofeature-ha-arm-pod2-master-trigger'
488     triggers:
489         - timed: ''
490 - trigger:
491     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod2-master-trigger'
492     triggers:
493         - timed: ''
494 - trigger:
495     name: 'fuel-os-odl_l2-nofeature-noha-arm-pod2-master-trigger'
496     triggers:
497         - timed: ''
498 - trigger:
499     name: 'fuel-os-odl_l2-sfc-ha-arm-pod2-master-trigger'
500     triggers:
501         - timed: ''
502 - trigger:
503     name: 'fuel-os-odl_l2-sfc-noha-arm-pod2-master-trigger'
504     triggers:
505         - timed: ''
506 #---------------------------------------------------------------
507 # Enea Armband POD 2 Triggers running against euphrates branch
508 #---------------------------------------------------------------
509 - trigger:
510     name: 'fuel-os-odl_l2-nofeature-ha-arm-pod2-euphrates-trigger'
511     triggers:
512         - timed: ''
513 - trigger:
514     name: 'fuel-os-nosdn-nofeature-ha-arm-pod2-euphrates-trigger'
515     triggers:
516         - timed: ''
517 - trigger:
518     name: 'fuel-os-odl_l3-nofeature-ha-arm-pod2-euphrates-trigger'
519     triggers:
520         - timed: ''
521 - trigger:
522     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod2-euphrates-trigger'
523     triggers:
524         - timed: ''
525 - trigger:
526     name: 'fuel-os-odl_l2-nofeature-noha-arm-pod2-euphrates-trigger'
527     triggers:
528         - timed: ''
529 - trigger:
530     name: 'fuel-os-odl_l2-sfc-ha-arm-pod2-euphrates-trigger'
531     triggers:
532         - timed: ''
533 - trigger:
534     name: 'fuel-os-odl_l2-sfc-noha-arm-pod2-euphrates-trigger'
535     triggers:
536         - timed: ''
537 #----------------------------------------------------------
538 # Enea Armband POD 3 Triggers running against master branch
539 #----------------------------------------------------------
540 - trigger:
541     name: 'fuel-os-odl_l2-nofeature-ha-arm-pod3-master-trigger'
542     triggers:
543         - timed: ''
544 - trigger:
545     name: 'fuel-os-nosdn-nofeature-ha-arm-pod3-master-trigger'
546     triggers:
547         - timed: ''
548 - trigger:
549     name: 'fuel-os-odl_l3-nofeature-ha-arm-pod3-master-trigger'
550     triggers:
551         - timed: ''
552 - trigger:
553     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod3-master-trigger'
554     triggers:
555         - timed: ''
556 - trigger:
557     name: 'fuel-os-odl_l2-nofeature-noha-arm-pod3-master-trigger'
558     triggers:
559         - timed: ''
560 - trigger:
561     name: 'fuel-os-odl_l2-sfc-ha-arm-pod3-master-trigger'
562     triggers:
563         - timed: ''
564 - trigger:
565     name: 'fuel-os-odl_l2-sfc-noha-arm-pod3-master-trigger'
566     triggers:
567         - timed: ''
568 #---------------------------------------------------------------
569 # Enea Armband POD 3 Triggers running against euphrates branch
570 #---------------------------------------------------------------
571 - trigger:
572     name: 'fuel-os-odl_l2-nofeature-ha-arm-pod3-euphrates-trigger'
573     triggers:
574         - timed: ''
575 - trigger:
576     name: 'fuel-os-nosdn-nofeature-ha-arm-pod3-euphrates-trigger'
577     triggers:
578         - timed: ''
579 - trigger:
580     name: 'fuel-os-odl_l3-nofeature-ha-arm-pod3-euphrates-trigger'
581     triggers:
582         - timed: ''
583 - trigger:
584     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod3-euphrates-trigger'
585     triggers:
586         - timed: ''
587 - trigger:
588     name: 'fuel-os-odl_l2-nofeature-noha-arm-pod3-euphrates-trigger'
589     triggers:
590         - timed: ''
591 - trigger:
592     name: 'fuel-os-odl_l2-sfc-ha-arm-pod3-euphrates-trigger'
593     triggers:
594         - timed: ''
595 - trigger:
596     name: 'fuel-os-odl_l2-sfc-noha-arm-pod3-euphrates-trigger'
597     triggers:
598         - timed: ''
599 #--------------------------------------------------------------------------
600 # Enea Armband POD 3 Triggers running against master branch (aarch64 slave)
601 #--------------------------------------------------------------------------
602 - trigger:
603     name: 'fuel-os-odl_l2-nofeature-ha-arm-pod4-master-trigger'
604     triggers:
605         - timed: ''
606 - trigger:
607     name: 'fuel-os-nosdn-nofeature-ha-arm-pod4-master-trigger'
608     triggers:
609         - timed: ''
610 - trigger:
611     name: 'fuel-os-odl_l3-nofeature-ha-arm-pod4-master-trigger'
612     triggers:
613         - timed: ''
614 - trigger:
615     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod4-master-trigger'
616     triggers:
617         - timed: ''
618 - trigger:
619     name: 'fuel-os-odl_l2-nofeature-noha-arm-pod4-master-trigger'
620     triggers:
621         - timed: ''
622 - trigger:
623     name: 'fuel-os-odl_l2-sfc-ha-arm-pod4-master-trigger'
624     triggers:
625         - timed: ''
626 - trigger:
627     name: 'fuel-os-odl_l2-sfc-noha-arm-pod4-master-trigger'
628     triggers:
629         - timed: ''
630 #--------------------------------------------------------------------------
631 # Enea Armband POD 3 Triggers running against euphrates branch (aarch64 slave)
632 #--------------------------------------------------------------------------
633 - trigger:
634     name: 'fuel-os-odl_l2-nofeature-ha-arm-pod4-euphrates-trigger'
635     triggers:
636         - timed: ''
637 - trigger:
638     name: 'fuel-os-nosdn-nofeature-ha-arm-pod4-euphrates-trigger'
639     triggers:
640         - timed: ''
641 - trigger:
642     name: 'fuel-os-odl_l3-nofeature-ha-arm-pod4-euphrates-trigger'
643     triggers:
644         - timed: ''
645 - trigger:
646     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod4-euphrates-trigger'
647     triggers:
648         - timed: ''
649 - trigger:
650     name: 'fuel-os-odl_l2-nofeature-noha-arm-pod4-euphrates-trigger'
651     triggers:
652         - timed: ''
653 - trigger:
654     name: 'fuel-os-odl_l2-sfc-ha-arm-pod4-euphrates-trigger'
655     triggers:
656         - timed: ''
657 - trigger:
658     name: 'fuel-os-odl_l2-sfc-noha-arm-pod4-euphrates-trigger'
659     triggers:
660         - timed: ''