[fuel, armband] Add os-ovn-nofeature-ha scenario
[releng.git] / jjb / armband / armband-ci-jobs.yml
1 ---
2 # jenkins job templates for Armband
3 - project:
4     name: 'armband-ci'
5     project: 'armband'
6
7     # -------------------------------
8     # BRANCH ANCHORS
9     # -------------------------------
10     master: &master
11       stream: master
12       branch: '{stream}'
13       gs-pathname: ''
14       disabled: false
15     euphrates: &euphrates
16       stream: euphrates
17       branch: 'stable/{stream}'
18       gs-pathname: '/{stream}'
19       disabled: false
20     # -------------------------------
21     # DEPLOY TYPE ANCHORS
22     # -------------------------------
23     baremetal: &baremetal
24       installer: 'fuel'
25       deploy-type: 'baremetal'
26       slave-label: 'armband-{deploy-type}'
27     virtual: &virtual
28       installer: 'fuel'
29       deploy-type: 'virtual'
30       slave-label: 'armband-{deploy-type}'
31     # -------------------------------
32     # POD, INSTALLER, AND BRANCH MAPPING
33     # -------------------------------
34     # CI POD's
35     # -------------------------------
36     #        euphrates
37     # -------------------------------
38     pod:
39       # yamllint disable rule:key-duplicates
40       - armband-baremetal:
41           <<: *baremetal
42           <<: *euphrates
43       - armband-virtual:
44           <<: *virtual
45           <<: *euphrates
46       # -------------------------------
47       #        master
48       # -------------------------------
49       - armband-baremetal:
50           <<: *baremetal
51           <<: *master
52       - armband-virtual:
53           <<: *virtual
54           <<: *master
55     # yamllint enable rule:key-duplicates
56     # -------------------------------
57     #       scenarios
58     # -------------------------------
59     scenario:
60       # HA scenarios
61       - 'os-nosdn-nofeature-ha':
62           auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
63       - 'os-odl-nofeature-ha':
64           auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
65       - 'os-ovn-nofeature-ha':
66           auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
67       - 'os-nosdn-ovs-ha':
68           auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
69
70       # NOHA scenarios
71       - 'os-nosdn-nofeature-noha':
72           auto-trigger-name: '{installer}-{scenario}-{pod}-{stream}-trigger'
73
74     exclude:
75       - scenario: os-ovn-nofeature-ha
76         stream: euphrates
77
78     jobs:
79       - '{installer}-{scenario}-{pod}-daily-{stream}'
80       - '{installer}-deploy-{pod}-daily-{stream}'
81
82 ########################
83 # job templates
84 ########################
85 - job-template:
86     name: '{installer}-{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             - '{installer}-os-.*?-{pod}-daily-.*'
103             - 'armband-verify-.*'
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           gs-pathname: '{gs-pathname}'
119       - '{slave-label}-defaults':
120           installer: '{installer}'
121       - string:
122           name: DEPLOY_SCENARIO
123           default: '{scenario}'
124
125     builders:
126       - trigger-builds:
127           - project: '{installer}-deploy-{pod}-daily-{stream}'
128             current-parameters: false
129             predefined-parameters:
130               DEPLOY_SCENARIO={scenario}
131             same-node: true
132             block: true
133       - conditional-step:
134           condition-kind: not
135           condition-operand:
136             condition-kind: regex-match
137             regex: 'danube'
138             label: '{stream}'
139           steps:
140             - trigger-builds:
141                 - project: 'functest-{installer}-{pod}-arm-daily-{stream}'
142                   current-parameters: false
143                   predefined-parameters:
144                     DEPLOY_SCENARIO={scenario}
145                   block: true
146                   same-node: true
147                   block-thresholds:
148                     build-step-failure-threshold: 'never'
149                     failure-threshold: 'never'
150                     unstable-threshold: 'FAILURE'
151       - conditional-step:
152           condition-kind: not
153           condition-operand:
154             condition-kind: regex-match
155             regex: 'danube'
156             label: '{stream}'
157           steps:
158             - trigger-builds:
159                 - project: 'yardstick-{installer}-{pod}-daily-{stream}'
160                   current-parameters: false
161                   predefined-parameters:
162                     DEPLOY_SCENARIO={scenario}
163                   block: true
164                   same-node: true
165                   block-thresholds:
166                     build-step-failure-threshold: 'never'
167                     failure-threshold: 'never'
168                     unstable-threshold: 'FAILURE'
169       # 1.here the stream means the SUT stream, dovetail stream is defined in its own job
170       # 2.testsuite proposed_tests here is for new test cases planning to add into OVP
171       # 3.run proposed_tests on Monday, Wednesday and Friday against ha scenario
172       # 4.testsuite default here is for the test cases already added into OVP
173       # 5.run default testsuite on Tuesday against ha scenario
174       # 6.not used for release criteria or compliance,
175       #   only to debug the dovetail tool bugs with arm pods
176       - conditional-step:
177           condition-kind: and
178           condition-operands:
179             - condition-kind: regex-match
180               regex: '-ha$'
181               label: '{scenario}'
182             - condition-kind: day-of-week
183               day-selector: select-days
184               days:
185                 MON: true
186                 WED: true
187                 FRI: true
188               use-build-time: true
189           steps:
190             - trigger-builds:
191                 - project: 'dovetail-{installer}-{pod}-proposed_tests-{stream}'
192                   current-parameters: false
193                   predefined-parameters:
194                     DEPLOY_SCENARIO={scenario}
195                   block: true
196                   same-node: true
197                   block-thresholds:
198                     build-step-failure-threshold: 'never'
199                     failure-threshold: 'never'
200                     unstable-threshold: 'FAILURE'
201       - conditional-step:
202           condition-kind: and
203           condition-operands:
204             - condition-kind: regex-match
205               regex: '-ha$'
206               label: '{scenario}'
207             - condition-kind: day-of-week
208               day-selector: select-days
209               days:
210                 TUES: true
211               use-build-time: true
212           steps:
213             - trigger-builds:
214                 - project: 'dovetail-{installer}-{pod}-default-{stream}'
215                   current-parameters: false
216                   predefined-parameters:
217                     DEPLOY_SCENARIO={scenario}
218                   block: true
219                   same-node: true
220                   block-thresholds:
221                     build-step-failure-threshold: 'never'
222                     failure-threshold: 'never'
223                     unstable-threshold: 'FAILURE'
224       # Armband uses Fuel's log collection project job, no need to duplicate
225       - conditional-step:
226           condition-kind: not
227           condition-operand:
228             condition-kind: regex-match
229             regex: 'danube'
230             label: '{stream}'
231           steps:
232             - trigger-builds:
233                 - project: 'fuel-collect-logs-{deploy-type}-daily-{stream}'
234                   current-parameters: false
235                   predefined-parameters:
236                     DEPLOY_SCENARIO={scenario}
237                   block: true
238                   same-node: true
239                   block-thresholds:
240                     build-step-failure-threshold: 'never'
241                     failure-threshold: 'never'
242                     unstable-threshold: 'FAILURE'
243
244 - job-template:
245     name: '{installer}-deploy-{pod}-daily-{stream}'
246
247     concurrent: true
248
249     properties:
250       - logrotate-default
251       - throttle:
252           enabled: true
253           max-total: 4
254           max-per-node: 1
255           option: 'project'
256       - build-blocker:
257           use-build-blocker: true
258           blocking-jobs:
259             - '{installer}-deploy-{pod}-daily-{stream}'
260             - '{installer}-deploy-generic-daily-.*'
261           block-level: 'NODE'
262
263     parameters:
264       - project-parameter:
265           project: '{project}'
266           branch: '{branch}'
267       - '{installer}-defaults':
268           gs-pathname: '{gs-pathname}'
269       - '{slave-label}-defaults':
270           installer: '{installer}'
271       - string:
272           name: DEPLOY_SCENARIO
273           default: 'os-odl-nofeature-ha'
274
275     scm:
276       - git-scm
277
278     wrappers:
279       - build-name:
280           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
281
282     builders:
283       - shell:
284           !include-raw-escape: ../fuel/fuel-deploy.sh
285
286     publishers:
287       - email:
288           recipients: armband@enea.com
289       - email-jenkins-admins-on-failure
290
291 ########################
292 # trigger macros
293 ########################
294 # CI PODs
295 # ----------------------------------------------------------------
296 # Enea Armband CI Baremetal Triggers running against master branch
297 # ----------------------------------------------------------------
298 - trigger:
299     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger'
300     triggers:
301       - timed: '0 1 * * 4,6'
302 - trigger:
303     name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-master-trigger'
304     triggers:
305       - timed: ''
306 - trigger:
307     name: 'fuel-os-odl-nofeature-ha-armband-baremetal-master-trigger'
308     triggers:
309       - timed: '0 1 * * 2,5,7'
310 - trigger:
311     name: 'fuel-os-ovn-nofeature-ha-armband-baremetal-master-trigger'
312     triggers:
313       - timed: ''
314 - trigger:
315     name: 'fuel-os-nosdn-ovs-ha-armband-baremetal-master-trigger'
316     triggers:
317       - timed: '0 1 * * 1,3'
318 # ---------------------------------------------------------------------
319 # Enea Armband CI Baremetal Triggers running against euphrates branch
320 # ---------------------------------------------------------------------
321 - trigger:
322     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-euphrates-trigger'
323     triggers:
324       - timed: ''
325 - trigger:
326     name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-euphrates-trigger'
327     triggers:
328       - timed: ''
329 - trigger:
330     name: 'fuel-os-odl-nofeature-ha-armband-baremetal-euphrates-trigger'
331     triggers:
332       - timed: ''
333 - trigger:
334     name: 'fuel-os-nosdn-ovs-ha-armband-baremetal-euphrates-trigger'
335     triggers:
336       - timed: ''
337
338 # --------------------------------------------------------------
339 # Enea Armband CI Virtual Triggers running against master branch
340 # --------------------------------------------------------------
341 - trigger:
342     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-master-trigger'
343     triggers:
344       - timed: ''
345 - trigger:
346     name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-master-trigger'
347     triggers:
348       - timed: ''
349 - trigger:
350     name: 'fuel-os-odl-nofeature-ha-armband-virtual-master-trigger'
351     triggers:
352       - timed: ''
353 - trigger:
354     name: 'fuel-os-ovn-nofeature-ha-armband-virtual-master-trigger'
355     triggers:
356       - timed: ''
357 - trigger:
358     name: 'fuel-os-nosdn-ovs-ha-armband-virtual-master-trigger'
359     triggers:
360       - timed: ''
361 # -------------------------------------------------------------------
362 # Enea Armband CI Virtual Triggers running against euphrates branch
363 # -------------------------------------------------------------------
364 - trigger:
365     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-euphrates-trigger'
366     triggers:
367       - timed: ''
368 - trigger:
369     name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-euphrates-trigger'
370     triggers:
371       - timed: ''
372 - trigger:
373     name: 'fuel-os-odl-nofeature-ha-armband-virtual-euphrates-trigger'
374     triggers:
375       - timed: ''
376 - trigger:
377     name: 'fuel-os-nosdn-ovs-ha-armband-virtual-euphrates-trigger'
378     triggers:
379       - timed: ''