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