4eaa39ae9dff2a0123457c2ce45fe460c99092d8
[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       # - baremetal:
52       #     slave-label: zte-pod3
53       #     <<: *master
54       - zte-pod9:
55           slave-label: zte-pod9
56           <<: *master
57       - zte-pod9:
58           slave-label: zte-pod9
59           <<: *fraser
60
61     # -------------------------------
62     #       scenarios
63     # -------------------------------
64     scenario:
65       # HA scenarios
66       - 'os-nosdn-nofeature-ha':
67           auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger'
68       # NOHA scenarios
69       - 'os-nosdn-nofeature-noha':
70           auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger'
71       # ODL_L3 scenarios
72       - 'os-odl-nofeature-ha':
73           auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger'
74       # ovs_dpdk scenarios
75       - 'os-nosdn-ovs_dpdk-noha':
76           auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger'
77
78     jobs:
79       - '{project}-{scenario}-{pod}-daily-{stream}'
80       - '{project}-deploy-{pod}-daily-{stream}'
81
82 ########################
83 # job templates
84 ########################
85 - job-template:
86     name: '{project}-{scenario}-{pod}-daily-{stream}'
87
88     disabled: '{obj:disabled}'
89
90     concurrent: false
91
92     properties:
93       - logrotate-default
94       - throttle:
95           enabled: true
96           max-total: 4
97           max-per-node: 1
98           option: 'project'
99       - build-blocker:
100           use-build-blocker: true
101           blocking-jobs:
102             - 'daisy-os-.*?-{pod}-daily-.*?'
103             - 'daisy-daily-.*'
104             - 'daisy-kolla-build-.*'
105           block-level: 'NODE'
106
107     wrappers:
108       - build-name:
109           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
110
111     triggers:
112       - '{auto-trigger-name}'
113
114     parameters:
115       - project-parameter:
116           project: '{project}'
117           branch: '{branch}'
118       - '{installer}-defaults'
119       - '{slave-label}-defaults':
120           installer: '{installer}'
121       - 'testapi-parameter'
122       - 'daisy-project-parameter':
123           gs-pathname: '{gs-pathname}'
124       - 'deploy-scenario'
125
126     builders:
127       - description-setter:
128           description: "POD: $NODE_NAME"
129       - trigger-builds:
130           - project: 'daisy-deploy-{pod}-daily-{stream}'
131             current-parameters: false
132             predefined-parameters: |
133               DEPLOY_SCENARIO={scenario}
134               INSTALLER_VERSION={stream}
135               UPSTREAM_JOB_NAME=$JOB_NAME
136               UPSTREAM_BUILD_ID=$BUILD_ID
137             same-node: true
138             block: true
139       - trigger-builds:
140           - project: 'functest-daisy-{pod}-daily-{stream}'
141             current-parameters: false
142             predefined-parameters: |
143               DEPLOY_SCENARIO={scenario}
144               INSTALLER_VERSION={stream}
145               UPSTREAM_JOB_NAME=$JOB_NAME
146               UPSTREAM_BUILD_ID=$BUILD_ID
147             same-node: true
148             block: true
149             block-thresholds:
150               build-step-failure-threshold: 'never'
151               failure-threshold: 'never'
152               unstable-threshold: 'FAILURE'
153       - conditional-step:
154           condition-kind: and
155           condition-operands:
156             - condition-kind: regex-match
157               regex: 'baremetal'
158               label: '{pod}'
159           steps:
160             - trigger-builds:
161                 - project: 'yardstick-daisy-{pod}-daily-{stream}'
162                   current-parameters: false
163                   predefined-parameters: |
164                     DEPLOY_SCENARIO={scenario}
165                     INSTALLER_VERSION={stream}
166                     UPSTREAM_JOB_NAME=$JOB_NAME
167                     UPSTREAM_BUILD_ID=$BUILD_ID
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
175 - job-template:
176     name: '{project}-deploy-{pod}-daily-{stream}'
177
178     disabled: '{obj:disabled}'
179
180     concurrent: true
181
182     properties:
183       - logrotate-default
184       - throttle:
185           enabled: true
186           max-total: 4
187           max-per-node: 1
188           option: 'project'
189       - build-blocker:
190           use-build-blocker: true
191           blocking-jobs:
192             - 'daisy-kolla-build-.*'
193             - '{installer}-(build|deploy|test)-daily-(fraser|master)'
194             - '{installer}-deploy-(baremetal|virtual|zte-pod9)-daily-(fraser|master)'
195             - '(functest|yardstick)-{installer}-(baremetal|virtual|zte-pod9)-daily-(fraser|master)'
196           block-level: 'NODE'
197
198     parameters:
199       - project-parameter:
200           project: '{project}'
201           branch: '{branch}'
202       - '{installer}-defaults'
203       - '{slave-label}-defaults':
204           installer: '{installer}'
205       - 'testapi-parameter'
206       - 'daisy-project-parameter':
207           gs-pathname: '{gs-pathname}'
208       - 'deploy-scenario'
209       - string:
210           name: DEPLOY_TIMEOUT
211           default: '150'
212           description: 'Deployment timeout in minutes'
213
214     scm:
215       - git-scm
216
217     wrappers:
218       - build-name:
219           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
220
221     builders:
222       - description-setter:
223           description: "POD: $NODE_NAME"
224       - 'track-begin-timestamp'
225       - shell:
226           !include-raw-escape: ./daisy4nfv-download-artifact.sh
227       - shell:
228           !include-raw-escape: ./daisy-deploy.sh
229     publishers:
230       - 'report-provision-result'
231
232 ########################
233 # trigger macros
234 ########################
235 # ----------------------------------------------
236 # Triggers for job running on daisy-baremetal against master branch
237 # ----------------------------------------------
238 # Basic HA Scenarios
239 - trigger:
240     name: 'daisy-os-nosdn-nofeature-ha-baremetal-daily-master-trigger'
241     triggers:
242       - timed: ''
243 # Basic NOHA Scenarios
244 - trigger:
245     name: 'daisy-os-nosdn-nofeature-noha-baremetal-daily-master-trigger'
246     triggers:
247       - timed: ''
248 # ODL Scenarios
249 - trigger:
250     name: 'daisy-os-odl-nofeature-ha-baremetal-daily-master-trigger'
251     triggers:
252       - timed: ''
253 # ovs_dpdk Scenarios
254 - trigger:
255     name: 'daisy-os-nosdn-ovs_dpdk-noha-baremetal-daily-master-trigger'
256     triggers:
257       - timed: ''
258
259 # ----------------------------------------------
260 # Triggers for job running on daisy-virtual against master branch
261 # ----------------------------------------------
262 # Basic HA Scenarios
263 - trigger:
264     name: 'daisy-os-nosdn-nofeature-ha-virtual-daily-master-trigger'
265     triggers:
266       - timed: '0 16 * * *'
267 # Basic NOHA Scenarios
268 - trigger:
269     name: 'daisy-os-nosdn-nofeature-noha-virtual-daily-master-trigger'
270     triggers:
271       - timed: ''
272 # ODL Scenarios
273 - trigger:
274     name: 'daisy-os-odl-nofeature-ha-virtual-daily-master-trigger'
275     triggers:
276       - timed: '0 12 * * *'
277 # ovs_dpdk Scenarios
278 - trigger:
279     name: 'daisy-os-nosdn-ovs_dpdk-noha-virtual-daily-master-trigger'
280     triggers:
281       - timed: ''
282
283 # ----------------------------------------------
284 # Triggers for job running on daisy-baremetal against fraser branch
285 # ----------------------------------------------
286 # Basic HA Scenarios
287 - trigger:
288     name: 'daisy-os-nosdn-nofeature-ha-baremetal-daily-fraser-trigger'
289     triggers:
290       - timed: '0 0,6 * * *'
291 # Basic NOHA Scenarios
292 - trigger:
293     name: 'daisy-os-nosdn-nofeature-noha-baremetal-daily-fraser-trigger'
294     triggers:
295       - timed: ''
296 # ODL Scenarios
297 - trigger:
298     name: 'daisy-os-odl-nofeature-ha-baremetal-daily-fraser-trigger'
299     triggers:
300       - timed: '0 12,18 * * *'
301 # ovs_dpdk Scenarios
302 - trigger:
303     name: 'daisy-os-nosdn-ovs_dpdk-noha-baremetal-daily-fraser-trigger'
304     triggers:
305       - timed: ''
306
307 # ----------------------------------------------
308 # Triggers for job running on daisy-virtual against fraser branch
309 # ----------------------------------------------
310 # Basic HA Scenarios
311 - trigger:
312     name: 'daisy-os-nosdn-nofeature-ha-virtual-daily-fraser-trigger'
313     triggers:
314       - timed: '0 0 * * *'
315 # Basic NOHA Scenarios
316 - trigger:
317     name: 'daisy-os-nosdn-nofeature-noha-virtual-daily-fraser-trigger'
318     triggers:
319       - timed: ''
320 # ODL Scenarios
321 - trigger:
322     name: 'daisy-os-odl-nofeature-ha-virtual-daily-fraser-trigger'
323     triggers:
324       - timed: '0 20 * * *'
325 # ovs_dpdk Scenarios
326 - trigger:
327     name: 'daisy-os-nosdn-ovs_dpdk-noha-virtual-daily-fraser-trigger'
328     triggers:
329       - timed: ''
330
331 # ----------------------------------------------
332 # ZTE POD9 Triggers running against master branch
333 # ----------------------------------------------
334 # ovs_dpdk Scenarios
335 - trigger:
336     name: 'daisy-os-nosdn-ovs_dpdk-noha-zte-pod9-daily-master-trigger'
337     triggers:
338       - timed: '0 20 * * *'
339 # Basic HA Scenarios
340 - trigger:
341     name: 'daisy-os-nosdn-nofeature-ha-zte-pod9-daily-master-trigger'
342     triggers:
343       - timed: ''
344 # Basic NOHA Scenarios
345 - trigger:
346     name: 'daisy-os-nosdn-nofeature-noha-zte-pod9-daily-master-trigger'
347     triggers:
348       - timed: ''
349 # ODL Scenarios
350 - trigger:
351     name: 'daisy-os-odl-nofeature-ha-zte-pod9-daily-master-trigger'
352     triggers:
353       - timed: ''
354
355 # ----------------------------------------------
356 # ZTE POD9 Triggers running against fraser branch
357 # ----------------------------------------------
358 # ovs_dpdk Scenarios
359 - trigger:
360     name: 'daisy-os-nosdn-ovs_dpdk-noha-zte-pod9-daily-fraser-trigger'
361     triggers:
362       - timed: '0 10 * * *'
363 # Basic HA Scenarios
364 - trigger:
365     name: 'daisy-os-nosdn-nofeature-ha-zte-pod9-daily-fraser-trigger'
366     triggers:
367       - timed: ''
368 # Basic NOHA Scenarios
369 - trigger:
370     name: 'daisy-os-nosdn-nofeature-noha-zte-pod9-daily-fraser-trigger'
371     triggers:
372       - timed: ''
373 # ODL Scenarios
374 - trigger:
375     name: 'daisy-os-odl-nofeature-ha-zte-pod9-daily-fraser-trigger'
376     triggers:
377       - timed: ''