Merge "Integrate yardstick on daisy master branch"
[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
54     # -------------------------------
55     #        None-CI PODs
56     # -------------------------------
57
58     # -------------------------------
59     #       scenarios
60     # -------------------------------
61     scenario:
62       # HA scenarios
63       - 'os-nosdn-nofeature-ha':
64           auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger'
65       # NOHA scenarios
66       - 'os-nosdn-nofeature-noha':
67           auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger'
68       # ODL_L3 scenarios
69       - 'os-odl-nofeature-ha':
70           auto-trigger-name: 'daisy-{scenario}-{pod}-daily-{stream}-trigger'
71
72     jobs:
73       - '{project}-{scenario}-{pod}-daily-{stream}'
74       - '{project}-deploy-{pod}-daily-{stream}'
75
76 ########################
77 # job templates
78 ########################
79 - job-template:
80     name: '{project}-{scenario}-{pod}-daily-{stream}'
81
82     disabled: '{obj:disabled}'
83
84     concurrent: false
85
86     properties:
87       - logrotate-default
88       - throttle:
89           enabled: true
90           max-total: 4
91           max-per-node: 1
92           option: 'project'
93       - build-blocker:
94           use-build-blocker: true
95           blocking-jobs:
96             - 'daisy-daily-.*'
97           block-level: 'NODE'
98
99     wrappers:
100       - build-name:
101           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
102
103     triggers:
104       - '{auto-trigger-name}'
105
106     parameters:
107       - project-parameter:
108           project: '{project}'
109           branch: '{branch}'
110       - '{installer}-defaults'
111       - '{slave-label}-defaults':
112           installer: '{installer}'
113       - string:
114           name: DEPLOY_SCENARIO
115           default: '{scenario}'
116       - 'daisy-project-parameter':
117           gs-pathname: '{gs-pathname}'
118
119     builders:
120       - description-setter:
121           description: "POD: $NODE_NAME"
122       - trigger-builds:
123           - project: 'daisy-deploy-{pod}-daily-{stream}'
124             current-parameters: false
125             predefined-parameters:
126               DEPLOY_SCENARIO={scenario}
127             same-node: true
128             block: true
129       - trigger-builds:
130           - project: 'functest-daisy-{pod}-daily-{stream}'
131             current-parameters: false
132             predefined-parameters:
133               DEPLOY_SCENARIO={scenario}
134             same-node: true
135             block: true
136             block-thresholds:
137               build-step-failure-threshold: 'never'
138               failure-threshold: 'never'
139               unstable-threshold: 'FAILURE'
140       - conditional-step:
141           condition-kind: and
142           condition-operands:
143             - condition-kind: regex-match
144               regex: 'baremetal'
145               label: '{pod}'
146             - condition-kind: regex-match
147               regex: 'master'
148               label: '{stream}'
149           steps:
150             - trigger-builds:
151                 - project: 'yardstick-daisy-{pod}-daily-{stream}'
152                   current-parameters: false
153                   predefined-parameters:
154                     DEPLOY_SCENARIO={scenario}
155                   block: true
156                   same-node: true
157                   block-thresholds:
158                     build-step-failure-threshold: 'never'
159                     failure-threshold: 'never'
160                     unstable-threshold: 'FAILURE'
161
162 - job-template:
163     name: '{project}-deploy-{pod}-daily-{stream}'
164
165     disabled: '{obj:disabled}'
166
167     concurrent: true
168
169     properties:
170       - logrotate-default
171       - throttle:
172           enabled: true
173           max-total: 4
174           max-per-node: 1
175           option: 'project'
176       - build-blocker:
177           use-build-blocker: true
178           blocking-jobs:
179             - 'daisy.*-deploy-({pod})?-daily-.*'
180           block-level: 'NODE'
181
182     parameters:
183       - project-parameter:
184           project: '{project}'
185           branch: '{branch}'
186       - '{installer}-defaults'
187       - '{slave-label}-defaults':
188           installer: '{installer}'
189       - string:
190           name: DEPLOY_SCENARIO
191           default: 'os-nosdn-nofeature-ha'
192       - 'daisy-project-parameter':
193           gs-pathname: '{gs-pathname}'
194       - string:
195           name: DEPLOY_TIMEOUT
196           default: '150'
197           description: 'Deployment timeout in minutes'
198
199     scm:
200       - git-scm
201
202     wrappers:
203       - build-name:
204           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
205
206     builders:
207       - description-setter:
208           description: "POD: $NODE_NAME"
209       - shell:
210           !include-raw-escape: ./daisy4nfv-download-artifact.sh
211       - shell:
212           !include-raw-escape: ./daisy-deploy.sh
213
214 ########################
215 # trigger macros
216 ########################
217 # ----------------------------------------------
218 # Triggers for job running on daisy-baremetal against master branch
219 # ----------------------------------------------
220 # Basic HA Scenarios
221 - trigger:
222     name: 'daisy-os-nosdn-nofeature-ha-baremetal-daily-master-trigger'
223     triggers:
224       - timed: '0 18 * * *'
225 # Basic NOHA Scenarios
226 - trigger:
227     name: 'daisy-os-nosdn-nofeature-noha-baremetal-daily-master-trigger'
228     triggers:
229       - timed: ''
230 # ODL Scenarios
231 - trigger:
232     name: 'daisy-os-odl-nofeature-ha-baremetal-daily-master-trigger'
233     triggers:
234       - timed: '0 12 * * *'
235
236 # ----------------------------------------------
237 # Triggers for job running on daisy-virtual against master branch
238 # ----------------------------------------------
239 # Basic HA Scenarios
240 - trigger:
241     name: 'daisy-os-nosdn-nofeature-ha-virtual-daily-master-trigger'
242     triggers:
243       - timed: '0 16 * * *'
244 # Basic NOHA Scenarios
245 - trigger:
246     name: 'daisy-os-nosdn-nofeature-noha-virtual-daily-master-trigger'
247     triggers:
248       - timed: ''
249 # ODL Scenarios
250 - trigger:
251     name: 'daisy-os-odl-nofeature-ha-virtual-daily-master-trigger'
252     triggers:
253       - timed: '0 12 * * *'
254
255 # ----------------------------------------------
256 # Triggers for job running on daisy-baremetal against euphrates branch
257 # ----------------------------------------------
258 # Basic HA Scenarios
259 - trigger:
260     name: 'daisy-os-nosdn-nofeature-ha-baremetal-daily-euphrates-trigger'
261     triggers:
262       - timed: '0 0 * * *'
263 # Basic NOHA Scenarios
264 - trigger:
265     name: 'daisy-os-nosdn-nofeature-noha-baremetal-daily-euphrates-trigger'
266     triggers:
267       - timed: ''
268 # ODL Scenarios
269 - trigger:
270     name: 'daisy-os-odl-nofeature-ha-baremetal-daily-euphrates-trigger'
271     triggers:
272       - timed: '0 20 * * *'
273
274 # ----------------------------------------------
275 # Triggers for job running on daisy-virtual against euphrates branch
276 # ----------------------------------------------
277 # Basic HA Scenarios
278 - trigger:
279     name: 'daisy-os-nosdn-nofeature-ha-virtual-daily-euphrates-trigger'
280     triggers:
281       - timed: '0 0 * * *'
282 # Basic NOHA Scenarios
283 - trigger:
284     name: 'daisy-os-nosdn-nofeature-noha-virtual-daily-euphrates-trigger'
285     triggers:
286       - timed: ''
287 # ODL Scenarios
288 - trigger:
289     name: 'daisy-os-odl-nofeature-ha-virtual-daily-euphrates-trigger'
290     triggers:
291       - timed: '0 20 * * *'