Merge "Fix missing python packages for password generation"
[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     danube: &danube
15         stream: danube
16         branch: 'stable/{stream}'
17         gs-pathname: '/{stream}'
18         disabled: false
19 #--------------------------------
20 # POD, INSTALLER, AND BRANCH MAPPING
21 #--------------------------------
22 # CI POD's
23 #--------------------------------
24 #        danube
25 #--------------------------------
26     pod:
27         - armband-baremetal:
28             slave-label: armband-baremetal
29             installer: fuel
30             <<: *danube
31         - armband-virtual:
32             slave-label: armband-virtual
33             installer: fuel
34             <<: *danube
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 #        danube
50 #--------------------------------
51         - arm-pod2:
52             slave-label: arm-pod2
53             installer: fuel
54             <<: *danube
55         - arm-pod3:
56             slave-label: arm-pod3
57             installer: fuel
58             <<: *danube
59         - arm-pod4:
60             slave-label: arm-pod4
61             installer: fuel
62             <<: *danube
63         - arm-virtual1:
64             slave-label: arm-virtual1
65             installer: fuel
66             <<: *danube
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
257 ########################
258 # parameter macros
259 ########################
260 - parameter:
261     name: armband-ci-parameter
262     parameters:
263         - string:
264             name: BUILD_DIRECTORY
265             default: $WORKSPACE/build_output
266             description: "Directory where the build artifact will be located upon the completion of the build."
267         - string:
268             name: CACHE_DIRECTORY
269             default: $HOME/opnfv/cache/$INSTALLER_TYPE
270             description: "Directory where the cache to be used during the build is located."
271         - string:
272             name: GS_URL
273             default: artifacts.opnfv.org/$PROJECT{gs-pathname}
274             description: "URL to Google Storage."
275         - string:
276             name: SSH_KEY
277             default: "/tmp/mcp.rsa"
278             description: "Path to private SSH key to access environment nodes. For MCP deployments only."
279
280 ########################
281 # trigger macros
282 ########################
283 # CI PODs
284 #-----------------------------------------------------------------
285 # Enea Armband CI Baremetal Triggers running against master branch
286 #-----------------------------------------------------------------
287 - trigger:
288     name: 'fuel-os-odl_l2-nofeature-ha-armband-baremetal-master-trigger'
289     triggers:
290         - timed: ''
291 - trigger:
292     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger'
293     triggers:
294         - timed: ''
295 - trigger:
296     name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-master-trigger'
297     triggers:
298         - timed: ''
299 - trigger:
300     name: 'fuel-os-odl_l2-bgpvpn-ha-armband-baremetal-master-trigger'
301     triggers:
302         - timed: ''
303 - trigger:
304     name: 'fuel-os-odl_l2-nofeature-noha-armband-baremetal-master-trigger'
305     triggers:
306         - timed: ''
307 - trigger:
308     name: 'fuel-os-odl_l2-sfc-ha-armband-baremetal-master-trigger'
309     triggers:
310         - timed: ''
311 - trigger:
312     name: 'fuel-os-odl_l2-sfc-noha-armband-baremetal-master-trigger'
313     triggers:
314         - timed: ''
315
316 #----------------------------------------------------------------------
317 # Enea Armband CI Baremetal Triggers running against danube branch
318 #----------------------------------------------------------------------
319 - trigger:
320     name: 'fuel-os-odl_l2-nofeature-ha-armband-baremetal-danube-trigger'
321     triggers:
322         - timed: '0 0,16 * * 2,4'
323 - trigger:
324     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-danube-trigger'
325     triggers:
326         - timed: '0 0 * * 1,5,7'
327 - trigger:
328     name: 'fuel-os-odl_l2-bgpvpn-ha-armband-baremetal-danube-trigger'
329     triggers:
330         - timed: '0 16 * * 1,5,7'
331 - trigger:
332     name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-danube-trigger'
333     triggers:
334         - timed: '0 8 * * 2,4,6'
335 - trigger:
336     name: 'fuel-os-odl_l2-nofeature-noha-armband-baremetal-danube-trigger'
337     triggers:
338         - timed: '0 8 * * 1,3,5,7'
339 - trigger:
340     name: 'fuel-os-odl_l2-sfc-ha-armband-baremetal-danube-trigger'
341     triggers:
342         - timed: '0 0 * * 3,6'
343 - trigger:
344     name: 'fuel-os-odl_l2-sfc-noha-armband-baremetal-danube-trigger'
345     triggers:
346         - timed: '0 16 * * 3,6'
347 #---------------------------------------------------------------
348 # Enea Armband CI Virtual Triggers running against master branch
349 #---------------------------------------------------------------
350 - trigger:
351     name: 'fuel-os-odl_l2-nofeature-ha-armband-virtual-master-trigger'
352     triggers:
353         - timed: ''
354 - trigger:
355     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-master-trigger'
356     triggers:
357         - timed: ''
358 - trigger:
359     name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-master-trigger'
360     triggers:
361         - timed: ''
362 - trigger:
363     name: 'fuel-os-odl_l2-bgpvpn-ha-armband-virtual-master-trigger'
364     triggers:
365         - timed: ''
366 - trigger:
367     name: 'fuel-os-odl_l2-nofeature-noha-armband-virtual-master-trigger'
368     triggers:
369         - timed: ''
370 - trigger:
371     name: 'fuel-os-odl_l2-sfc-ha-armband-virtual-master-trigger'
372     triggers:
373         - timed: ''
374 - trigger:
375     name: 'fuel-os-odl_l2-sfc-noha-armband-virtual-master-trigger'
376     triggers:
377         - timed: ''
378 #--------------------------------------------------------------------
379 # Enea Armband CI Virtual Triggers running against danube branch
380 #--------------------------------------------------------------------
381 - trigger:
382     name: 'fuel-os-odl_l2-nofeature-ha-armband-virtual-danube-trigger'
383     triggers:
384         - timed: ''
385 - trigger:
386     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-danube-trigger'
387     triggers:
388         - timed: ''
389 - trigger:
390     name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-danube-trigger'
391     triggers:
392         - timed: ''
393 - trigger:
394     name: 'fuel-os-odl_l2-bgpvpn-ha-armband-virtual-danube-trigger'
395     triggers:
396         - timed: ''
397 - trigger:
398     name: 'fuel-os-odl_l2-nofeature-noha-armband-virtual-danube-trigger'
399     triggers:
400         - timed: ''
401 - trigger:
402     name: 'fuel-os-odl_l2-sfc-ha-armband-virtual-danube-trigger'
403     triggers:
404         - timed: ''
405 - trigger:
406     name: 'fuel-os-odl_l2-sfc-noha-armband-virtual-danube-trigger'
407     triggers:
408         - timed: ''
409
410 #--------------------------------------------------------------------
411 # Enea Armband Non CI Virtual Triggers running against danube branch
412 #--------------------------------------------------------------------
413 - trigger:
414     name: 'fuel-os-odl_l2-nofeature-ha-arm-virtual1-danube-trigger'
415     triggers:
416         - timed: ''
417 - trigger:
418     name: 'fuel-os-nosdn-nofeature-ha-arm-virtual1-danube-trigger'
419     triggers:
420         - timed: ''
421 - trigger:
422     name: 'fuel-os-odl_l3-nofeature-ha-arm-virtual1-danube-trigger'
423     triggers:
424         - timed: ''
425 - trigger:
426     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-virtual1-danube-trigger'
427     triggers:
428         - timed: ''
429 - trigger:
430     name: 'fuel-os-odl_l2-nofeature-noha-arm-virtual1-danube-trigger'
431     triggers:
432         - timed: ''
433 - trigger:
434     name: 'fuel-os-odl_l2-sfc-ha-arm-virtual1-danube-trigger'
435     triggers:
436         - timed: ''
437 - trigger:
438     name: 'fuel-os-odl_l2-sfc-noha-arm-virtual1-danube-trigger'
439     triggers:
440         - timed: ''
441
442 #--------------------------------------------------------------------
443 # Enea Armband Non CI Virtual Triggers running against master branch
444 #--------------------------------------------------------------------
445 - trigger:
446     name: 'fuel-os-odl_l2-nofeature-ha-arm-virtual1-master-trigger'
447     triggers:
448         - timed: ''
449 - trigger:
450     name: 'fuel-os-nosdn-nofeature-ha-arm-virtual1-master-trigger'
451     triggers:
452         - timed: ''
453 - trigger:
454     name: 'fuel-os-odl_l3-nofeature-ha-arm-virtual1-master-trigger'
455     triggers:
456         - timed: ''
457 - trigger:
458     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-virtual1-master-trigger'
459     triggers:
460         - timed: ''
461 - trigger:
462     name: 'fuel-os-odl_l2-nofeature-noha-arm-virtual1-master-trigger'
463     triggers:
464         - timed: ''
465 - trigger:
466     name: 'fuel-os-odl_l2-sfc-ha-arm-virtual1-master-trigger'
467     triggers:
468         - timed: ''
469 - trigger:
470     name: 'fuel-os-odl_l2-sfc-noha-arm-virtual1-master-trigger'
471     triggers:
472         - timed: ''
473
474 #----------------------------------------------------------
475 # Enea Armband POD 2 Triggers running against master branch
476 #----------------------------------------------------------
477 - trigger:
478     name: 'fuel-os-odl_l2-nofeature-ha-arm-pod2-master-trigger'
479     triggers:
480         - timed: ''
481 - trigger:
482     name: 'fuel-os-nosdn-nofeature-ha-arm-pod2-master-trigger'
483     triggers:
484         - timed: ''
485 - trigger:
486     name: 'fuel-os-odl_l3-nofeature-ha-arm-pod2-master-trigger'
487     triggers:
488         - timed: ''
489 - trigger:
490     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod2-master-trigger'
491     triggers:
492         - timed: ''
493 - trigger:
494     name: 'fuel-os-odl_l2-nofeature-noha-arm-pod2-master-trigger'
495     triggers:
496         - timed: ''
497 - trigger:
498     name: 'fuel-os-odl_l2-sfc-ha-arm-pod2-master-trigger'
499     triggers:
500         - timed: ''
501 - trigger:
502     name: 'fuel-os-odl_l2-sfc-noha-arm-pod2-master-trigger'
503     triggers:
504         - timed: ''
505 #---------------------------------------------------------------
506 # Enea Armband POD 2 Triggers running against danube branch
507 #---------------------------------------------------------------
508 - trigger:
509     name: 'fuel-os-odl_l2-nofeature-ha-arm-pod2-danube-trigger'
510     triggers:
511         - timed: ''
512 - trigger:
513     name: 'fuel-os-nosdn-nofeature-ha-arm-pod2-danube-trigger'
514     triggers:
515         - timed: ''
516 - trigger:
517     name: 'fuel-os-odl_l3-nofeature-ha-arm-pod2-danube-trigger'
518     triggers:
519         - timed: ''
520 - trigger:
521     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod2-danube-trigger'
522     triggers:
523         - timed: ''
524 - trigger:
525     name: 'fuel-os-odl_l2-nofeature-noha-arm-pod2-danube-trigger'
526     triggers:
527         - timed: ''
528 - trigger:
529     name: 'fuel-os-odl_l2-sfc-ha-arm-pod2-danube-trigger'
530     triggers:
531         - timed: ''
532 - trigger:
533     name: 'fuel-os-odl_l2-sfc-noha-arm-pod2-danube-trigger'
534     triggers:
535         - timed: ''
536 #----------------------------------------------------------
537 # Enea Armband POD 3 Triggers running against master branch
538 #----------------------------------------------------------
539 - trigger:
540     name: 'fuel-os-odl_l2-nofeature-ha-arm-pod3-master-trigger'
541     triggers:
542         - timed: ''
543 - trigger:
544     name: 'fuel-os-nosdn-nofeature-ha-arm-pod3-master-trigger'
545     triggers:
546         - timed: ''
547 - trigger:
548     name: 'fuel-os-odl_l3-nofeature-ha-arm-pod3-master-trigger'
549     triggers:
550         - timed: ''
551 - trigger:
552     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod3-master-trigger'
553     triggers:
554         - timed: ''
555 - trigger:
556     name: 'fuel-os-odl_l2-nofeature-noha-arm-pod3-master-trigger'
557     triggers:
558         - timed: ''
559 - trigger:
560     name: 'fuel-os-odl_l2-sfc-ha-arm-pod3-master-trigger'
561     triggers:
562         - timed: ''
563 - trigger:
564     name: 'fuel-os-odl_l2-sfc-noha-arm-pod3-master-trigger'
565     triggers:
566         - timed: ''
567 #---------------------------------------------------------------
568 # Enea Armband POD 3 Triggers running against danube branch
569 #---------------------------------------------------------------
570 - trigger:
571     name: 'fuel-os-odl_l2-nofeature-ha-arm-pod3-danube-trigger'
572     triggers:
573         - timed: ''
574 - trigger:
575     name: 'fuel-os-nosdn-nofeature-ha-arm-pod3-danube-trigger'
576     triggers:
577         - timed: ''
578 - trigger:
579     name: 'fuel-os-odl_l3-nofeature-ha-arm-pod3-danube-trigger'
580     triggers:
581         - timed: ''
582 - trigger:
583     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod3-danube-trigger'
584     triggers:
585         - timed: ''
586 - trigger:
587     name: 'fuel-os-odl_l2-nofeature-noha-arm-pod3-danube-trigger'
588     triggers:
589         - timed: ''
590 - trigger:
591     name: 'fuel-os-odl_l2-sfc-ha-arm-pod3-danube-trigger'
592     triggers:
593         - timed: ''
594 - trigger:
595     name: 'fuel-os-odl_l2-sfc-noha-arm-pod3-danube-trigger'
596     triggers:
597         - timed: ''
598 #--------------------------------------------------------------------------
599 # Enea Armband POD 3 Triggers running against master branch (aarch64 slave)
600 #--------------------------------------------------------------------------
601 - trigger:
602     name: 'fuel-os-odl_l2-nofeature-ha-arm-pod4-master-trigger'
603     triggers:
604         - timed: ''
605 - trigger:
606     name: 'fuel-os-nosdn-nofeature-ha-arm-pod4-master-trigger'
607     triggers:
608         - timed: ''
609 - trigger:
610     name: 'fuel-os-odl_l3-nofeature-ha-arm-pod4-master-trigger'
611     triggers:
612         - timed: ''
613 - trigger:
614     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod4-master-trigger'
615     triggers:
616         - timed: ''
617 - trigger:
618     name: 'fuel-os-odl_l2-nofeature-noha-arm-pod4-master-trigger'
619     triggers:
620         - timed: ''
621 - trigger:
622     name: 'fuel-os-odl_l2-sfc-ha-arm-pod4-master-trigger'
623     triggers:
624         - timed: ''
625 - trigger:
626     name: 'fuel-os-odl_l2-sfc-noha-arm-pod4-master-trigger'
627     triggers:
628         - timed: ''
629 #--------------------------------------------------------------------------
630 # Enea Armband POD 3 Triggers running against danube branch (aarch64 slave)
631 #--------------------------------------------------------------------------
632 - trigger:
633     name: 'fuel-os-odl_l2-nofeature-ha-arm-pod4-danube-trigger'
634     triggers:
635         - timed: ''
636 - trigger:
637     name: 'fuel-os-nosdn-nofeature-ha-arm-pod4-danube-trigger'
638     triggers:
639         - timed: ''
640 - trigger:
641     name: 'fuel-os-odl_l3-nofeature-ha-arm-pod4-danube-trigger'
642     triggers:
643         - timed: ''
644 - trigger:
645     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod4-danube-trigger'
646     triggers:
647         - timed: ''
648 - trigger:
649     name: 'fuel-os-odl_l2-nofeature-noha-arm-pod4-danube-trigger'
650     triggers:
651         - timed: ''
652 - trigger:
653     name: 'fuel-os-odl_l2-sfc-ha-arm-pod4-danube-trigger'
654     triggers:
655         - timed: ''
656 - trigger:
657     name: 'fuel-os-odl_l2-sfc-noha-arm-pod4-danube-trigger'
658     triggers:
659         - timed: ''