ac172813df491ad67f44cba28a05733ffa54782d
[releng.git] / jjb / daisy4nfv / daisy-daily-jobs.yml
1 ---
2 # jenkins job templates for Daisy
3 # TODO
4 # [ ] enable baremetal jobs after baremetal deployment finish
5 # [ ] enable jobs in danuble
6 # [ ] add more scenarios
7 # [ ] integration with yardstick
8
9 - project:
10
11     name: 'daisy'
12     project: '{name}'
13     installer: '{name}'
14
15     # -------------------------------
16     # BRANCH ANCHORS
17     # -------------------------------
18     master: &master
19       stream: master
20       branch: '{stream}'
21       disabled: false
22       gs-pathname: ''
23     fraser: &fraser
24       stream: fraser
25       branch: 'stable/{stream}'
26       gs-pathname: '/{stream}'
27       disabled: false
28
29     # -------------------------------
30     # POD, INSTALLER, AND BRANCH MAPPING
31     # -------------------------------
32     pod:
33       # -------------------------------
34       #        CI PODs
35       # -------------------------------
36       - baremetal:
37           slave-label: daisy-baremetal
38           <<: *master
39       - virtual:
40           slave-label: daisy-virtual
41           <<: *master
42       - baremetal:
43           slave-label: daisy-baremetal
44           <<: *fraser
45       - virtual:
46           slave-label: daisy-virtual
47           <<: *fraser
48       # -------------------------------
49       #        None-CI PODs
50       # -------------------------------
51       - zte-pod3:
52           slave-label: zte-pod3
53           <<: *master
54       - zte-pod3:
55           slave-label: zte-pod3
56           <<: *fraser
57       - zte-pod9:
58           slave-label: zte-pod9
59           <<: *master
60       - zte-pod9:
61           slave-label: zte-pod9
62           <<: *fraser
63
64     # -------------------------------
65     #       scenarios
66     # -------------------------------
67     scenario:
68       # HA scenarios
69       - 'os-nosdn-nofeature-ha':
70           auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger'
71       # NOHA scenarios
72       - 'os-nosdn-nofeature-noha':
73           auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger'
74       # ODL_L3 scenarios
75       - 'os-odl-nofeature-ha':
76           auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger'
77       # ovs_dpdk scenarios
78       - 'os-nosdn-ovs_dpdk-noha':
79           auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger'
80
81     jobs:
82       - '{project}-{scenario}-{pod}-daily-{stream}'
83       - '{project}-deploy-{pod}-daily-{stream}'
84
85 ########################
86 # job templates
87 ########################
88 - job-template:
89     name: '{project}-{scenario}-{pod}-daily-{stream}'
90
91     disabled: '{obj:disabled}'
92
93     concurrent: false
94
95     properties:
96       - logrotate-default
97       - throttle:
98           enabled: true
99           max-total: 4
100           max-per-node: 1
101           option: 'project'
102       - build-blocker:
103           use-build-blocker: true
104           blocking-jobs:
105             - 'daisy-os-.*?-{pod}-daily-.*?'
106             - 'daisy-daily-.*'
107             - 'daisy-kolla-build-.*'
108           block-level: 'NODE'
109
110     wrappers:
111       - build-name:
112           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
113
114     triggers:
115       - '{auto-trigger-name}'
116
117     parameters:
118       - project-parameter:
119           project: '{project}'
120           branch: '{branch}'
121       - '{installer}-defaults'
122       - '{slave-label}-defaults':
123           installer: '{installer}'
124       - 'testapi-parameter'
125       - 'daisy-project-parameter':
126           gs-pathname: '{gs-pathname}'
127       - 'deploy-scenario'
128
129     builders:
130       - description-setter:
131           description: "POD: $NODE_NAME"
132       - trigger-builds:
133           - project: 'daisy-deploy-{pod}-daily-{stream}'
134             current-parameters: false
135             predefined-parameters: |
136               DEPLOY_SCENARIO={scenario}
137               INSTALLER_VERSION={stream}
138               UPSTREAM_JOB_NAME=$JOB_NAME
139               UPSTREAM_BUILD_ID=$BUILD_ID
140             same-node: true
141             block: true
142       - trigger-builds:
143           - project: 'functest-daisy-{pod}-daily-{stream}'
144             current-parameters: false
145             predefined-parameters: |
146               DEPLOY_SCENARIO={scenario}
147               INSTALLER_VERSION={stream}
148               UPSTREAM_JOB_NAME=$JOB_NAME
149               UPSTREAM_BUILD_ID=$BUILD_ID
150             same-node: true
151             block: true
152             block-thresholds:
153               build-step-failure-threshold: 'never'
154               failure-threshold: 'never'
155               unstable-threshold: 'FAILURE'
156       - conditional-step:
157           condition-kind: and
158           condition-operands:
159             - condition-kind: regex-match
160               regex: 'baremetal'
161               label: '{pod}'
162           steps:
163             - trigger-builds:
164                 - project: 'yardstick-daisy-{pod}-daily-{stream}'
165                   current-parameters: false
166                   predefined-parameters: |
167                     DEPLOY_SCENARIO={scenario}
168                     INSTALLER_VERSION={stream}
169                     UPSTREAM_JOB_NAME=$JOB_NAME
170                     UPSTREAM_BUILD_ID=$BUILD_ID
171                   block: true
172                   same-node: true
173                   block-thresholds:
174                     build-step-failure-threshold: 'never'
175                     failure-threshold: 'never'
176                     unstable-threshold: 'FAILURE'
177
178 - job-template:
179     name: '{project}-deploy-{pod}-daily-{stream}'
180
181     disabled: '{obj:disabled}'
182
183     concurrent: true
184
185     properties:
186       - logrotate-default
187       - throttle:
188           enabled: true
189           max-total: 4
190           max-per-node: 1
191           option: 'project'
192       - build-blocker:
193           use-build-blocker: true
194           blocking-jobs:
195             - 'daisy-kolla-build-.*'
196             - '{installer}-(build|deploy|test)-daily-(fraser|master)'
197             - '{installer}-deploy-(baremetal|virtual|zte-pod3|zte-pod9)-daily-(fraser|master)'
198             - '(functest|yardstick)-{installer}-(baremetal|virtual|zte-pod3|zte-pod9)-daily-(fraser|master)'
199           block-level: 'NODE'
200
201     parameters:
202       - project-parameter:
203           project: '{project}'
204           branch: '{branch}'
205       - '{installer}-defaults'
206       - '{slave-label}-defaults':
207           installer: '{installer}'
208       - 'testapi-parameter'
209       - 'daisy-project-parameter':
210           gs-pathname: '{gs-pathname}'
211       - 'deploy-scenario'
212       - string:
213           name: DEPLOY_TIMEOUT
214           default: '150'
215           description: 'Deployment timeout in minutes'
216
217     scm:
218       - git-scm
219
220     wrappers:
221       - build-name:
222           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
223
224     builders:
225       - description-setter:
226           description: "POD: $NODE_NAME"
227       - 'track-begin-timestamp'
228       - shell:
229           !include-raw-escape: ./daisy4nfv-download-artifact.sh
230       - shell:
231           !include-raw-escape: ./daisy-deploy.sh
232     publishers:
233       - 'report-provision-result'
234
235 ########################
236 # trigger macros
237 ########################
238 # ----------------------------------------------
239 # Triggers for job running on daisy-baremetal against master branch
240 # ----------------------------------------------
241 # Basic HA Scenarios
242 - trigger:
243     name: 'daisy-os-nosdn-nofeature-ha-baremetal-daily-master-trigger'
244     triggers:
245       - timed: ''
246 # Basic NOHA Scenarios
247 - trigger:
248     name: 'daisy-os-nosdn-nofeature-noha-baremetal-daily-master-trigger'
249     triggers:
250       - timed: ''
251 # ODL Scenarios
252 - trigger:
253     name: 'daisy-os-odl-nofeature-ha-baremetal-daily-master-trigger'
254     triggers:
255       - timed: ''
256 # ovs_dpdk Scenarios
257 - trigger:
258     name: 'daisy-os-nosdn-ovs_dpdk-noha-baremetal-daily-master-trigger'
259     triggers:
260       - timed: ''
261
262 # ----------------------------------------------
263 # Triggers for job running on daisy-virtual against master branch
264 # ----------------------------------------------
265 # Basic HA Scenarios
266 - trigger:
267     name: 'daisy-os-nosdn-nofeature-ha-virtual-daily-master-trigger'
268     triggers:
269       - timed: '0 16 * * *'
270 # Basic NOHA Scenarios
271 - trigger:
272     name: 'daisy-os-nosdn-nofeature-noha-virtual-daily-master-trigger'
273     triggers:
274       - timed: ''
275 # ODL Scenarios
276 - trigger:
277     name: 'daisy-os-odl-nofeature-ha-virtual-daily-master-trigger'
278     triggers:
279       - timed: '0 12 * * *'
280 # ovs_dpdk Scenarios
281 - trigger:
282     name: 'daisy-os-nosdn-ovs_dpdk-noha-virtual-daily-master-trigger'
283     triggers:
284       - timed: ''
285
286 # ----------------------------------------------
287 # Triggers for job running on daisy-baremetal against fraser branch
288 # ----------------------------------------------
289 # Basic HA Scenarios
290 - trigger:
291     name: 'daisy-os-nosdn-nofeature-ha-baremetal-daily-fraser-trigger'
292     triggers:
293       - timed: '0 0,6 * * *'
294 # Basic NOHA Scenarios
295 - trigger:
296     name: 'daisy-os-nosdn-nofeature-noha-baremetal-daily-fraser-trigger'
297     triggers:
298       - timed: ''
299 # ODL Scenarios
300 - trigger:
301     name: 'daisy-os-odl-nofeature-ha-baremetal-daily-fraser-trigger'
302     triggers:
303       - timed: '0 12,18 * * *'
304 # ovs_dpdk Scenarios
305 - trigger:
306     name: 'daisy-os-nosdn-ovs_dpdk-noha-baremetal-daily-fraser-trigger'
307     triggers:
308       - timed: ''
309
310 # ----------------------------------------------
311 # Triggers for job running on daisy-virtual against fraser branch
312 # ----------------------------------------------
313 # Basic HA Scenarios
314 - trigger:
315     name: 'daisy-os-nosdn-nofeature-ha-virtual-daily-fraser-trigger'
316     triggers:
317       - timed: '0 0 * * *'
318 # Basic NOHA Scenarios
319 - trigger:
320     name: 'daisy-os-nosdn-nofeature-noha-virtual-daily-fraser-trigger'
321     triggers:
322       - timed: ''
323 # ODL Scenarios
324 - trigger:
325     name: 'daisy-os-odl-nofeature-ha-virtual-daily-fraser-trigger'
326     triggers:
327       - timed: '0 20 * * *'
328 # ovs_dpdk Scenarios
329 - trigger:
330     name: 'daisy-os-nosdn-ovs_dpdk-noha-virtual-daily-fraser-trigger'
331     triggers:
332       - timed: ''
333
334 # ----------------------------------------------
335 # Triggers for job running on zte-pod3 against master branch
336 # ----------------------------------------------
337 # Basic HA Scenarios
338 - trigger:
339     name: 'daisy-os-nosdn-nofeature-ha-zte-pod3-daily-master-trigger'
340     triggers:
341       - timed: ''
342 # Basic NOHA Scenarios
343 - trigger:
344     name: 'daisy-os-nosdn-nofeature-noha-zte-pod3-daily-master-trigger'
345     triggers:
346       - timed: ''
347 # ODL Scenarios
348 - trigger:
349     name: 'daisy-os-odl-nofeature-ha-zte-pod3-daily-master-trigger'
350     triggers:
351       - timed: ''
352 # ovs_dpdk Scenarios
353 - trigger:
354     name: 'daisy-os-nosdn-ovs_dpdk-noha-zte-pod3-daily-master-trigger'
355     triggers:
356       - timed: ''
357
358 # ----------------------------------------------
359 # Triggers for job running on zte-pod3 against fraser branch
360 # ----------------------------------------------
361 # Basic HA Scenarios
362 - trigger:
363     name: 'daisy-os-nosdn-nofeature-ha-zte-pod3-daily-fraser-trigger'
364     triggers:
365       - timed: ''
366 # Basic NOHA Scenarios
367 - trigger:
368     name: 'daisy-os-nosdn-nofeature-noha-zte-pod3-daily-fraser-trigger'
369     triggers:
370       - timed: ''
371 # ODL Scenarios
372 - trigger:
373     name: 'daisy-os-odl-nofeature-ha-zte-pod3-daily-fraser-trigger'
374     triggers:
375       - timed: '0 16,22 * * *'
376 # ovs_dpdk Scenarios
377 - trigger:
378     name: 'daisy-os-nosdn-ovs_dpdk-noha-zte-pod3-daily-fraser-trigger'
379     triggers:
380       - timed: ''
381
382 # ----------------------------------------------
383 # ZTE POD9 Triggers running against master branch
384 # ----------------------------------------------
385 # ovs_dpdk Scenarios
386 - trigger:
387     name: 'daisy-os-nosdn-ovs_dpdk-noha-zte-pod9-daily-master-trigger'
388     triggers:
389       - timed: '0 20 * * *'
390 # Basic HA Scenarios
391 - trigger:
392     name: 'daisy-os-nosdn-nofeature-ha-zte-pod9-daily-master-trigger'
393     triggers:
394       - timed: ''
395 # Basic NOHA Scenarios
396 - trigger:
397     name: 'daisy-os-nosdn-nofeature-noha-zte-pod9-daily-master-trigger'
398     triggers:
399       - timed: ''
400 # ODL Scenarios
401 - trigger:
402     name: 'daisy-os-odl-nofeature-ha-zte-pod9-daily-master-trigger'
403     triggers:
404       - timed: ''
405
406 # ----------------------------------------------
407 # ZTE POD9 Triggers running against fraser branch
408 # ----------------------------------------------
409 # ovs_dpdk Scenarios
410 - trigger:
411     name: 'daisy-os-nosdn-ovs_dpdk-noha-zte-pod9-daily-fraser-trigger'
412     triggers:
413       - timed: '0 10 * * *'
414 # Basic HA Scenarios
415 - trigger:
416     name: 'daisy-os-nosdn-nofeature-ha-zte-pod9-daily-fraser-trigger'
417     triggers:
418       - timed: ''
419 # Basic NOHA Scenarios
420 - trigger:
421     name: 'daisy-os-nosdn-nofeature-noha-zte-pod9-daily-fraser-trigger'
422     triggers:
423       - timed: ''
424 # ODL Scenarios
425 - trigger:
426     name: 'daisy-os-odl-nofeature-ha-zte-pod9-daily-fraser-trigger'
427     triggers:
428       - timed: ''