Merge "Add docker update builder to jenkins job"
[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: true
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 #--------------------------------
60 #        master
61 #--------------------------------
62         - arm-pod2:
63             slave-label: arm-pod2
64             installer: fuel
65             <<: *master
66         - arm-pod3:
67             slave-label: arm-pod3
68             installer: fuel
69             <<: *master
70 #--------------------------------
71 #       scenarios
72 #--------------------------------
73     scenario:
74         # HA scenarios
75         - 'os-nosdn-nofeature-ha':
76             auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
77         - 'os-odl_l2-nofeature-ha':
78             auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
79         - 'os-odl_l3-nofeature-ha':
80             auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
81         - 'os-odl_l2-bgpvpn-ha':
82             auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
83         - 'os-odl_l2-sfc-ha':
84             auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
85
86         # NOHA scenarios
87         - 'os-odl_l2-nofeature-noha':
88             auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
89         - 'os-odl_l2-sfc-noha':
90             auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
91
92     jobs:
93         - '{installer}-{scenario}-{pod}-daily-{stream}'
94         - '{installer}-deploy-{pod}-daily-{stream}'
95
96 ########################
97 # job templates
98 ########################
99 - job-template:
100     name: '{installer}-{scenario}-{pod}-daily-{stream}'
101
102     disabled: '{obj:disabled}'
103
104     concurrent: false
105
106     properties:
107         - throttle:
108             enabled: true
109             max-total: 4
110             max-per-node: 1
111             option: 'project'
112         - build-blocker:
113             use-build-blocker: true
114             blocking-jobs:
115                 - '{installer}-os-.*?-{pod}-daily-.*'
116             block-level: 'NODE'
117
118     wrappers:
119         - build-name:
120             name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
121
122     triggers:
123         - '{auto-trigger-name}'
124
125     parameters:
126         - project-parameter:
127             project: '{project}'
128         - '{installer}-defaults'
129         - '{slave-label}-defaults':
130             installer: '{installer}'
131         - string:
132             name: DEPLOY_SCENARIO
133             default: '{scenario}'
134         - armband-ci-parameter:
135             gs-pathname: '{gs-pathname}'
136
137     builders:
138         - trigger-builds:
139             - project: '{installer}-deploy-{pod}-daily-{stream}'
140               current-parameters: false
141               predefined-parameters:
142                 DEPLOY_SCENARIO={scenario}
143               same-node: true
144               block: true
145         - trigger-builds:
146             - project: 'functest-{installer}-{pod}-daily-{stream}'
147               current-parameters: false
148               predefined-parameters:
149                 DEPLOY_SCENARIO={scenario}
150               block: true
151               same-node: true
152               block-thresholds:
153                 build-step-failure-threshold: 'never'
154                 failure-threshold: 'never'
155                 unstable-threshold: 'FAILURE'
156         - trigger-builds:
157             - project: 'yardstick-{installer}-{pod}-daily-{stream}'
158               current-parameters: false
159               predefined-parameters:
160                 DEPLOY_SCENARIO={scenario}
161               block: true
162               same-node: true
163               block-thresholds:
164                 build-step-failure-threshold: 'never'
165                 failure-threshold: 'never'
166                 unstable-threshold: 'FAILURE'
167         # 1.dovetail only master by now, not sync with A/B/C branches
168         # 2.here the stream means the SUT stream, dovetail stream is defined in its own job
169         # 3.only debug testsuite here(includes 3 basic testcase,
170         #   i.e. one tempest smoke ipv6, two vping from functest)
171         # 4.not used for release criteria or compliance,
172         #   only to debug the dovetail tool bugs with arm pods
173         - trigger-builds:
174             - project: 'dovetail-{installer}-{pod}-debug-{stream}'
175               current-parameters: false
176               predefined-parameters:
177                 DEPLOY_SCENARIO={scenario}
178               block: true
179               same-node: true
180               block-thresholds:
181                 build-step-failure-threshold: 'never'
182                 failure-threshold: 'never'
183                 unstable-threshold: 'FAILURE'
184
185 - job-template:
186     name: '{installer}-deploy-{pod}-daily-{stream}'
187
188     concurrent: true
189
190     properties:
191         - throttle:
192             enabled: true
193             max-total: 4
194             max-per-node: 1
195             option: 'project'
196         - build-blocker:
197             use-build-blocker: true
198             blocking-jobs:
199                 - '{installer}-deploy-{pod}-daily-{stream}'
200                 - '{installer}-deploy-generic-daily-.*'
201             block-level: 'NODE'
202
203     parameters:
204         - project-parameter:
205             project: '{project}'
206         - gerrit-parameter:
207             branch: '{branch}'
208         - '{installer}-defaults'
209         - '{slave-label}-defaults':
210             installer: '{installer}'
211         - string:
212             name: DEPLOY_SCENARIO
213             default: 'os-odl_l2-nofeature-ha'
214         - armband-ci-parameter:
215             gs-pathname: '{gs-pathname}'
216
217     scm:
218         - git-scm
219
220     wrappers:
221         - build-name:
222             name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
223
224     builders:
225         - shell:
226             !include-raw-escape: ./armband-download-artifact.sh
227         - shell:
228             !include-raw-escape: ./armband-deploy.sh
229
230     publishers:
231         - email:
232             recipients: armband@enea.com
233
234 ########################
235 # parameter macros
236 ########################
237 - parameter:
238     name: armband-ci-parameter
239     parameters:
240         - string:
241             name: BUILD_DIRECTORY
242             default: $WORKSPACE/build_output
243             description: "Directory where the build artifact will be located upon the completion of the build."
244         - string:
245             name: CACHE_DIRECTORY
246             default: $HOME/opnfv/cache/$INSTALLER_TYPE
247             description: "Directory where the cache to be used during the build is located."
248         - string:
249             name: GS_URL
250             default: artifacts.opnfv.org/$PROJECT{gs-pathname}
251             description: "URL to Google Storage."
252
253 ########################
254 # trigger macros
255 ########################
256 # CI PODs
257 #-----------------------------------------------------------------
258 # Enea Armband CI Baremetal Triggers running against master branch
259 #-----------------------------------------------------------------
260 - trigger:
261     name: 'fuel-os-odl_l2-nofeature-ha-armband-baremetal-master-trigger'
262     triggers:
263         - timed: '0 8 * * 1,3,5,7'
264 - trigger:
265     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger'
266     triggers:
267         - timed: '0 16 * * 2,7'
268 - trigger:
269     name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-master-trigger'
270     triggers:
271         - timed: '0 16 * * 1,4,6'
272 - trigger:
273     name: 'fuel-os-odl_l2-bgpvpn-ha-armband-baremetal-master-trigger'
274     triggers:
275         - timed: '0 8 * * 2,4,6'
276 - trigger:
277     name: 'fuel-os-odl_l2-nofeature-noha-armband-baremetal-master-trigger'
278     triggers:
279         - timed: '0 16 * * 3,5'
280 - trigger:
281     name: 'fuel-os-odl_l2-sfc-ha-armband-baremetal-master-trigger'
282     triggers:
283         - timed: '0 0 * * 6'
284 - trigger:
285     name: 'fuel-os-odl_l2-sfc-noha-armband-baremetal-master-trigger'
286     triggers:
287         - timed: '0 0 * * 7'
288
289 #----------------------------------------------------------------------
290 # Enea Armband CI Baremetal Triggers running against danube branch
291 #----------------------------------------------------------------------
292 - trigger:
293     name: 'fuel-os-odl_l2-nofeature-ha-armband-baremetal-danube-trigger'
294     triggers:
295         - timed: '0 0 * * 1'
296 - trigger:
297     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-danube-trigger'
298     triggers:
299         - timed: '0 0 * * 2'
300 - trigger:
301     name: 'fuel-os-odl_l2-bgpvpn-ha-armband-baremetal-danube-trigger'
302     triggers:
303         - timed: '0 0 * * 4'
304 - trigger:
305     name: 'fuel-os-odl_l3-nofeature-ha-armband-baremetal-danube-trigger'
306     triggers:
307         - timed: '0 0 * * 3'
308 - trigger:
309     name: 'fuel-os-odl_l2-nofeature-noha-armband-baremetal-danube-trigger'
310     triggers:
311         - timed: '0 0 * * 5'
312 - trigger:
313     name: 'fuel-os-odl_l2-sfc-ha-armband-baremetal-danube-trigger'
314     triggers:
315         - timed: ''
316 - trigger:
317     name: 'fuel-os-odl_l2-sfc-noha-armband-baremetal-danube-trigger'
318     triggers:
319         - timed: ''
320 #---------------------------------------------------------------
321 # Enea Armband CI Virtual Triggers running against master branch
322 #---------------------------------------------------------------
323 - trigger:
324     name: 'fuel-os-odl_l2-nofeature-ha-armband-virtual-master-trigger'
325     triggers:
326         - timed: '0 2 * * 1'
327 - trigger:
328     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-master-trigger'
329     triggers:
330         - timed: '0 2 * * 2'
331 - trigger:
332     name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-master-trigger'
333     triggers:
334         - timed: '0 2 * * 3'
335 - trigger:
336     name: 'fuel-os-odl_l2-bgpvpn-ha-armband-virtual-master-trigger'
337     triggers:
338         - timed: '0 2 * * 4'
339 - trigger:
340     name: 'fuel-os-odl_l2-nofeature-noha-armband-virtual-master-trigger'
341     triggers:
342         - timed: '0 2 * * 5'
343 - trigger:
344     name: 'fuel-os-odl_l2-sfc-ha-armband-virtual-master-trigger'
345     triggers:
346         - timed: '0 2 * * 6'
347 - trigger:
348     name: 'fuel-os-odl_l2-sfc-noha-armband-virtual-master-trigger'
349     triggers:
350         - timed: '0 2 * * 7'
351 #--------------------------------------------------------------------
352 # Enea Armband CI Virtual Triggers running against danube branch
353 #--------------------------------------------------------------------
354 - trigger:
355     name: 'fuel-os-odl_l2-nofeature-ha-armband-virtual-danube-trigger'
356     triggers:
357         - timed: ''
358 - trigger:
359     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-danube-trigger'
360     triggers:
361         - timed: ''
362 - trigger:
363     name: 'fuel-os-odl_l3-nofeature-ha-armband-virtual-danube-trigger'
364     triggers:
365         - timed: ''
366 - trigger:
367     name: 'fuel-os-odl_l2-bgpvpn-ha-armband-virtual-danube-trigger'
368     triggers:
369         - timed: ''
370 - trigger:
371     name: 'fuel-os-odl_l2-nofeature-noha-armband-virtual-danube-trigger'
372     triggers:
373         - timed: ''
374 - trigger:
375     name: 'fuel-os-odl_l2-sfc-ha-armband-virtual-danube-trigger'
376     triggers:
377         - timed: ''
378 - trigger:
379     name: 'fuel-os-odl_l2-sfc-noha-armband-virtual-danube-trigger'
380     triggers:
381         - timed: ''
382 #----------------------------------------------------------
383 # Enea Armband POD 2 Triggers running against master branch
384 #----------------------------------------------------------
385 - trigger:
386     name: 'fuel-os-odl_l2-nofeature-ha-arm-pod2-master-trigger'
387     triggers:
388         - timed: ''
389 - trigger:
390     name: 'fuel-os-nosdn-nofeature-ha-arm-pod2-master-trigger'
391     triggers:
392         - timed: ''
393 - trigger:
394     name: 'fuel-os-odl_l3-nofeature-ha-arm-pod2-master-trigger'
395     triggers:
396         - timed: ''
397 - trigger:
398     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod2-master-trigger'
399     triggers:
400         - timed: ''
401 - trigger:
402     name: 'fuel-os-odl_l2-nofeature-noha-arm-pod2-master-trigger'
403     triggers:
404         - timed: ''
405 - trigger:
406     name: 'fuel-os-odl_l2-sfc-ha-arm-pod2-master-trigger'
407     triggers:
408         - timed: ''
409 - trigger:
410     name: 'fuel-os-odl_l2-sfc-noha-arm-pod2-master-trigger'
411     triggers:
412         - timed: ''
413 #---------------------------------------------------------------
414 # Enea Armband POD 2 Triggers running against danube branch
415 #---------------------------------------------------------------
416 - trigger:
417     name: 'fuel-os-odl_l2-nofeature-ha-arm-pod2-danube-trigger'
418     triggers:
419         - timed: ''
420 - trigger:
421     name: 'fuel-os-nosdn-nofeature-ha-arm-pod2-danube-trigger'
422     triggers:
423         - timed: ''
424 - trigger:
425     name: 'fuel-os-odl_l3-nofeature-ha-arm-pod2-danube-trigger'
426     triggers:
427         - timed: ''
428 - trigger:
429     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod2-danube-trigger'
430     triggers:
431         - timed: ''
432 - trigger:
433     name: 'fuel-os-odl_l2-nofeature-noha-arm-pod2-danube-trigger'
434     triggers:
435         - timed: ''
436 - trigger:
437     name: 'fuel-os-odl_l2-sfc-ha-arm-pod2-danube-trigger'
438     triggers:
439         - timed: ''
440 - trigger:
441     name: 'fuel-os-odl_l2-sfc-noha-arm-pod2-danube-trigger'
442     triggers:
443         - timed: ''
444 #----------------------------------------------------------
445 # Enea Armband POD 3 Triggers running against master branch
446 #----------------------------------------------------------
447 - trigger:
448     name: 'fuel-os-odl_l2-nofeature-ha-arm-pod3-master-trigger'
449     triggers:
450         - timed: ''
451 - trigger:
452     name: 'fuel-os-nosdn-nofeature-ha-arm-pod3-master-trigger'
453     triggers:
454         - timed: ''
455 - trigger:
456     name: 'fuel-os-odl_l3-nofeature-ha-arm-pod3-master-trigger'
457     triggers:
458         - timed: ''
459 - trigger:
460     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod3-master-trigger'
461     triggers:
462         - timed: ''
463 - trigger:
464     name: 'fuel-os-odl_l2-nofeature-noha-arm-pod3-master-trigger'
465     triggers:
466         - timed: ''
467 - trigger:
468     name: 'fuel-os-odl_l2-sfc-ha-arm-pod3-master-trigger'
469     triggers:
470         - timed: ''
471 - trigger:
472     name: 'fuel-os-odl_l2-sfc-noha-arm-pod3-master-trigger'
473     triggers:
474         - timed: ''
475 #---------------------------------------------------------------
476 # Enea Armband POD 3 Triggers running against danube branch
477 #---------------------------------------------------------------
478 - trigger:
479     name: 'fuel-os-odl_l2-nofeature-ha-arm-pod3-danube-trigger'
480     triggers:
481         - timed: ''
482 - trigger:
483     name: 'fuel-os-nosdn-nofeature-ha-arm-pod3-danube-trigger'
484     triggers:
485         - timed: ''
486 - trigger:
487     name: 'fuel-os-odl_l3-nofeature-ha-arm-pod3-danube-trigger'
488     triggers:
489         - timed: ''
490 - trigger:
491     name: 'fuel-os-odl_l2-bgpvpn-ha-arm-pod3-danube-trigger'
492     triggers:
493         - timed: ''
494 - trigger:
495     name: 'fuel-os-odl_l2-nofeature-noha-arm-pod3-danube-trigger'
496     triggers:
497         - timed: ''
498 - trigger:
499     name: 'fuel-os-odl_l2-sfc-ha-arm-pod3-danube-trigger'
500     triggers:
501         - timed: ''
502 - trigger:
503     name: 'fuel-os-odl_l2-sfc-noha-arm-pod3-danube-trigger'
504     triggers:
505         - timed: ''