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