Add macro for reporting the provision result
[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       - 'daisy-project-parameter':
124           gs-pathname: '{gs-pathname}'
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             - condition-kind: regex-match
160               regex: 'master'
161               label: '{stream}'
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.*-deploy-({pod})?-daily-.*'
196             - 'daisy-kolla-build-.*'
197           block-level: 'NODE'
198
199     parameters:
200       - project-parameter:
201           project: '{project}'
202           branch: '{branch}'
203       - '{installer}-defaults'
204       - '{slave-label}-defaults':
205           installer: '{installer}'
206       - string:
207           name: DEPLOY_SCENARIO
208           default: 'os-nosdn-nofeature-ha'
209       - 'daisy-project-parameter':
210           gs-pathname: '{gs-pathname}'
211       - string:
212           name: DEPLOY_TIMEOUT
213           default: '150'
214           description: 'Deployment timeout in minutes'
215
216     scm:
217       - git-scm
218
219     wrappers:
220       - build-name:
221           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
222
223     builders:
224       - description-setter:
225           description: "POD: $NODE_NAME"
226       - 'track-begin-timestamp'
227       - shell:
228           !include-raw-escape: ./daisy4nfv-download-artifact.sh
229       - shell:
230           !include-raw-escape: ./daisy-deploy.sh
231     publishers:
232       - 'report-provision-result'
233
234 ########################
235 # trigger macros
236 ########################
237 # ----------------------------------------------
238 # Triggers for job running on daisy-baremetal against master branch
239 # ----------------------------------------------
240 # Basic HA Scenarios
241 - trigger:
242     name: 'daisy-os-nosdn-nofeature-ha-baremetal-daily-master-trigger'
243     triggers:
244       - timed: '0 12 * * *'
245 # Basic NOHA Scenarios
246 - trigger:
247     name: 'daisy-os-nosdn-nofeature-noha-baremetal-daily-master-trigger'
248     triggers:
249       - timed: ''
250 # ODL Scenarios
251 - trigger:
252     name: 'daisy-os-odl-nofeature-ha-baremetal-daily-master-trigger'
253     triggers:
254       - timed: '0 18 * * *'
255 # ovs_dpdk Scenarios
256 - trigger:
257     name: 'daisy-os-nosdn-ovs_dpdk-noha-baremetal-daily-master-trigger'
258     triggers:
259       - timed: ''
260
261 # ----------------------------------------------
262 # Triggers for job running on daisy-virtual against master branch
263 # ----------------------------------------------
264 # Basic HA Scenarios
265 - trigger:
266     name: 'daisy-os-nosdn-nofeature-ha-virtual-daily-master-trigger'
267     triggers:
268       - timed: '0 16 * * *'
269 # Basic NOHA Scenarios
270 - trigger:
271     name: 'daisy-os-nosdn-nofeature-noha-virtual-daily-master-trigger'
272     triggers:
273       - timed: ''
274 # ODL Scenarios
275 - trigger:
276     name: 'daisy-os-odl-nofeature-ha-virtual-daily-master-trigger'
277     triggers:
278       - timed: '0 12 * * *'
279 # ovs_dpdk Scenarios
280 - trigger:
281     name: 'daisy-os-nosdn-ovs_dpdk-noha-virtual-daily-master-trigger'
282     triggers:
283       - timed: ''
284
285 # ----------------------------------------------
286 # Triggers for job running on daisy-baremetal against euphrates branch
287 # ----------------------------------------------
288 # Basic HA Scenarios
289 - trigger:
290     name: 'daisy-os-nosdn-nofeature-ha-baremetal-daily-euphrates-trigger'
291     triggers:
292       - timed: '0 0 * * *'
293 # Basic NOHA Scenarios
294 - trigger:
295     name: 'daisy-os-nosdn-nofeature-noha-baremetal-daily-euphrates-trigger'
296     triggers:
297       - timed: ''
298 # ODL Scenarios
299 - trigger:
300     name: 'daisy-os-odl-nofeature-ha-baremetal-daily-euphrates-trigger'
301     triggers:
302       - timed: '0 20 * * *'
303 # ovs_dpdk Scenarios
304 - trigger:
305     name: 'daisy-os-nosdn-ovs_dpdk-noha-baremetal-daily-euphrates-trigger'
306     triggers:
307       - timed: ''
308
309 # ----------------------------------------------
310 # Triggers for job running on daisy-virtual against euphrates branch
311 # ----------------------------------------------
312 # Basic HA Scenarios
313 - trigger:
314     name: 'daisy-os-nosdn-nofeature-ha-virtual-daily-euphrates-trigger'
315     triggers:
316       - timed: '0 0 * * *'
317 # Basic NOHA Scenarios
318 - trigger:
319     name: 'daisy-os-nosdn-nofeature-noha-virtual-daily-euphrates-trigger'
320     triggers:
321       - timed: ''
322 # ODL Scenarios
323 - trigger:
324     name: 'daisy-os-odl-nofeature-ha-virtual-daily-euphrates-trigger'
325     triggers:
326       - timed: '0 20 * * *'
327 # ovs_dpdk Scenarios
328 - trigger:
329     name: 'daisy-os-nosdn-ovs_dpdk-noha-virtual-daily-euphrates-trigger'
330     triggers:
331       - timed: ''
332
333 # ----------------------------------------------
334 # ZTE POD9 Triggers running against master branch
335 # ----------------------------------------------
336 # ovs_dpdk Scenarios
337 - trigger:
338     name: 'daisy-os-nosdn-ovs_dpdk-noha-zte-pod9-daily-master-trigger'
339     triggers:
340       - timed: '0 10 * * *'
341 # Basic HA Scenarios
342 - trigger:
343     name: 'daisy-os-nosdn-nofeature-ha-zte-pod9-daily-master-trigger'
344     triggers:
345       - timed: ''
346 # Basic NOHA Scenarios
347 - trigger:
348     name: 'daisy-os-nosdn-nofeature-noha-zte-pod9-daily-master-trigger'
349     triggers:
350       - timed: ''
351 # ODL Scenarios
352 - trigger:
353     name: 'daisy-os-odl-nofeature-ha-zte-pod9-daily-master-trigger'
354     triggers:
355       - timed: ''