a9a0da2ee5448339d935322f75856ccd75371c01
[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       - 'testapi-parameter'
121       - 'daisy-project-parameter':
122           gs-pathname: '{gs-pathname}'
123
124     builders:
125       - description-setter:
126           description: "POD: $NODE_NAME"
127       - trigger-builds:
128           - project: 'daisy-deploy-{pod}-daily-{stream}'
129             current-parameters: false
130             predefined-parameters: |
131               DEPLOY_SCENARIO={scenario}
132               INSTALLER_VERSION={stream}
133               UPSTREAM_JOB_NAME=$JOB_NAME
134               UPSTREAM_BUILD_ID=$BUILD_ID
135             same-node: true
136             block: true
137       - trigger-builds:
138           - project: 'functest-daisy-{pod}-daily-{stream}'
139             current-parameters: false
140             predefined-parameters: |
141               DEPLOY_SCENARIO={scenario}
142               INSTALLER_VERSION={stream}
143               UPSTREAM_JOB_NAME=$JOB_NAME
144               UPSTREAM_BUILD_ID=$BUILD_ID
145             same-node: true
146             block: true
147             block-thresholds:
148               build-step-failure-threshold: 'never'
149               failure-threshold: 'never'
150               unstable-threshold: 'FAILURE'
151       - conditional-step:
152           condition-kind: and
153           condition-operands:
154             - condition-kind: regex-match
155               regex: 'baremetal'
156               label: '{pod}'
157             - condition-kind: regex-match
158               regex: 'master'
159               label: '{stream}'
160           steps:
161             - trigger-builds:
162                 - project: 'yardstick-daisy-{pod}-daily-{stream}'
163                   current-parameters: false
164                   predefined-parameters: |
165                     DEPLOY_SCENARIO={scenario}
166                     INSTALLER_VERSION={stream}
167                     UPSTREAM_JOB_NAME=$JOB_NAME
168                     UPSTREAM_BUILD_ID=$BUILD_ID
169                   block: true
170                   same-node: true
171                   block-thresholds:
172                     build-step-failure-threshold: 'never'
173                     failure-threshold: 'never'
174                     unstable-threshold: 'FAILURE'
175
176 - job-template:
177     name: '{project}-deploy-{pod}-daily-{stream}'
178
179     disabled: '{obj:disabled}'
180
181     concurrent: true
182
183     properties:
184       - logrotate-default
185       - throttle:
186           enabled: true
187           max-total: 4
188           max-per-node: 1
189           option: 'project'
190       - build-blocker:
191           use-build-blocker: true
192           blocking-jobs:
193             - 'daisy.*-deploy-({pod})?-daily-.*'
194             - 'daisy-kolla-build-.*'
195           block-level: 'NODE'
196
197     parameters:
198       - project-parameter:
199           project: '{project}'
200           branch: '{branch}'
201       - '{installer}-defaults'
202       - '{slave-label}-defaults':
203           installer: '{installer}'
204       - 'testapi-parameter'
205       - 'daisy-project-parameter':
206           gs-pathname: '{gs-pathname}'
207       - string:
208           name: DEPLOY_TIMEOUT
209           default: '150'
210           description: 'Deployment timeout in minutes'
211
212     scm:
213       - git-scm
214
215     wrappers:
216       - build-name:
217           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
218
219     builders:
220       - description-setter:
221           description: "POD: $NODE_NAME"
222       - 'track-begin-timestamp'
223       - shell:
224           !include-raw-escape: ./daisy4nfv-download-artifact.sh
225       - shell:
226           !include-raw-escape: ./daisy-deploy.sh
227     publishers:
228       - 'report-provision-result'
229
230 ########################
231 # trigger macros
232 ########################
233 # ----------------------------------------------
234 # Triggers for job running on daisy-baremetal against master branch
235 # ----------------------------------------------
236 # Basic HA Scenarios
237 - trigger:
238     name: 'daisy-os-nosdn-nofeature-ha-baremetal-daily-master-trigger'
239     triggers:
240       - timed: '0 12 * * *'
241 # Basic NOHA Scenarios
242 - trigger:
243     name: 'daisy-os-nosdn-nofeature-noha-baremetal-daily-master-trigger'
244     triggers:
245       - timed: ''
246 # ODL Scenarios
247 - trigger:
248     name: 'daisy-os-odl-nofeature-ha-baremetal-daily-master-trigger'
249     triggers:
250       - timed: '0 18 * * *'
251 # ovs_dpdk Scenarios
252 - trigger:
253     name: 'daisy-os-nosdn-ovs_dpdk-noha-baremetal-daily-master-trigger'
254     triggers:
255       - timed: ''
256
257 # ----------------------------------------------
258 # Triggers for job running on daisy-virtual against master branch
259 # ----------------------------------------------
260 # Basic HA Scenarios
261 - trigger:
262     name: 'daisy-os-nosdn-nofeature-ha-virtual-daily-master-trigger'
263     triggers:
264       - timed: '0 16 * * *'
265 # Basic NOHA Scenarios
266 - trigger:
267     name: 'daisy-os-nosdn-nofeature-noha-virtual-daily-master-trigger'
268     triggers:
269       - timed: ''
270 # ODL Scenarios
271 - trigger:
272     name: 'daisy-os-odl-nofeature-ha-virtual-daily-master-trigger'
273     triggers:
274       - timed: '0 12 * * *'
275 # ovs_dpdk Scenarios
276 - trigger:
277     name: 'daisy-os-nosdn-ovs_dpdk-noha-virtual-daily-master-trigger'
278     triggers:
279       - timed: ''
280
281 # ----------------------------------------------
282 # Triggers for job running on daisy-baremetal against euphrates branch
283 # ----------------------------------------------
284 # Basic HA Scenarios
285 - trigger:
286     name: 'daisy-os-nosdn-nofeature-ha-baremetal-daily-euphrates-trigger'
287     triggers:
288       - timed: '0 0 * * *'
289 # Basic NOHA Scenarios
290 - trigger:
291     name: 'daisy-os-nosdn-nofeature-noha-baremetal-daily-euphrates-trigger'
292     triggers:
293       - timed: ''
294 # ODL Scenarios
295 - trigger:
296     name: 'daisy-os-odl-nofeature-ha-baremetal-daily-euphrates-trigger'
297     triggers:
298       - timed: '0 20 * * *'
299 # ovs_dpdk Scenarios
300 - trigger:
301     name: 'daisy-os-nosdn-ovs_dpdk-noha-baremetal-daily-euphrates-trigger'
302     triggers:
303       - timed: ''
304
305 # ----------------------------------------------
306 # Triggers for job running on daisy-virtual against euphrates branch
307 # ----------------------------------------------
308 # Basic HA Scenarios
309 - trigger:
310     name: 'daisy-os-nosdn-nofeature-ha-virtual-daily-euphrates-trigger'
311     triggers:
312       - timed: '0 0 * * *'
313 # Basic NOHA Scenarios
314 - trigger:
315     name: 'daisy-os-nosdn-nofeature-noha-virtual-daily-euphrates-trigger'
316     triggers:
317       - timed: ''
318 # ODL Scenarios
319 - trigger:
320     name: 'daisy-os-odl-nofeature-ha-virtual-daily-euphrates-trigger'
321     triggers:
322       - timed: '0 20 * * *'
323 # ovs_dpdk Scenarios
324 - trigger:
325     name: 'daisy-os-nosdn-ovs_dpdk-noha-virtual-daily-euphrates-trigger'
326     triggers:
327       - timed: ''
328
329 # ----------------------------------------------
330 # ZTE POD9 Triggers running against master branch
331 # ----------------------------------------------
332 # ovs_dpdk Scenarios
333 - trigger:
334     name: 'daisy-os-nosdn-ovs_dpdk-noha-zte-pod9-daily-master-trigger'
335     triggers:
336       - timed: '0 10 * * *'
337 # Basic HA Scenarios
338 - trigger:
339     name: 'daisy-os-nosdn-nofeature-ha-zte-pod9-daily-master-trigger'
340     triggers:
341       - timed: ''
342 # Basic NOHA Scenarios
343 - trigger:
344     name: 'daisy-os-nosdn-nofeature-noha-zte-pod9-daily-master-trigger'
345     triggers:
346       - timed: ''
347 # ODL Scenarios
348 - trigger:
349     name: 'daisy-os-odl-nofeature-ha-zte-pod9-daily-master-trigger'
350     triggers:
351       - timed: ''