0bf750be36d16ebc99ac74b784cb6764506f44e1
[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     fraser: &fraser
16       stream: fraser
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     #        fraser
37     # -------------------------------
38     pod:
39       # yamllint disable rule:key-duplicates
40       - armband-baremetal:
41           <<: *baremetal
42           <<: *fraser
43       - armband-virtual:
44           <<: *virtual
45           <<: *fraser
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     jobs:
75       - '{installer}-{scenario}-{pod}-daily-{stream}'
76       - '{installer}-deploy-{pod}-daily-{stream}'
77
78 ########################
79 # job templates
80 ########################
81 - job-template:
82     name: '{installer}-{scenario}-{pod}-daily-{stream}'
83
84     disabled: '{obj:disabled}'
85
86     concurrent: false
87
88     properties:
89       - logrotate-default
90       - throttle:
91           enabled: true
92           max-total: 4
93           max-per-node: 1
94           option: 'project'
95       - build-blocker:
96           use-build-blocker: true
97           blocking-jobs:
98             - '{installer}-os-.*?-{pod}-daily-.*'
99             - 'armband-verify-.*'
100           block-level: 'NODE'
101
102     wrappers:
103       - build-name:
104           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
105
106     triggers:
107       - '{auto-trigger-name}'
108
109     parameters:
110       - project-parameter:
111           project: '{project}'
112           branch: '{branch}'
113       - '{installer}-defaults':
114           gs-pathname: '{gs-pathname}'
115       - '{slave-label}-defaults':
116           installer: '{installer}'
117       - string:
118           name: DEPLOY_SCENARIO
119           default: '{scenario}'
120
121     builders:
122       - trigger-builds:
123           - project: '{installer}-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-{installer}-{pod}-arm-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       - trigger-builds:
141           - project: 'yardstick-{installer}-{pod}-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       # 1.here the stream means the SUT stream, dovetail stream is defined in its own job
152       # 2.testsuite proposed_tests here is for new test cases planning to add into OVP
153       # 3.run proposed_tests on Monday, Wednesday and Friday against ha scenario
154       # 4.testsuite default here is for the test cases already added into OVP
155       # 5.run default testsuite on Tuesday against ha scenario
156       # 6.not used for release criteria or compliance,
157       #   only to debug the dovetail tool bugs with arm pods
158       - conditional-step:
159           condition-kind: and
160           condition-operands:
161             - condition-kind: regex-match
162               regex: '.*-ha'
163               label: '{scenario}'
164             - condition-kind: day-of-week
165               day-selector: select-days
166               days:
167                 MON: true
168                 WED: true
169                 FRI: true
170               use-build-time: true
171           steps:
172             - trigger-builds:
173                 - project: 'dovetail-{installer}-{pod}-proposed_tests-{stream}'
174                   current-parameters: false
175                   predefined-parameters:
176                     DEPLOY_SCENARIO={scenario}
177                   block: true
178                   same-node: true
179                   block-thresholds:
180                     build-step-failure-threshold: 'never'
181                     failure-threshold: 'never'
182                     unstable-threshold: 'FAILURE'
183       - conditional-step:
184           condition-kind: and
185           condition-operands:
186             - condition-kind: regex-match
187               regex: '.*-ha'
188               label: '{scenario}'
189             - condition-kind: day-of-week
190               day-selector: select-days
191               days:
192                 TUES: true
193               use-build-time: true
194           steps:
195             - trigger-builds:
196                 - project: 'dovetail-{installer}-{pod}-default-{stream}'
197                   current-parameters: false
198                   predefined-parameters:
199                     DEPLOY_SCENARIO={scenario}
200                   block: true
201                   same-node: true
202                   block-thresholds:
203                     build-step-failure-threshold: 'never'
204                     failure-threshold: 'never'
205                     unstable-threshold: 'FAILURE'
206       # Armband uses Fuel's log collection project job, no need to duplicate
207       - conditional-step:
208           condition-kind: not
209           condition-operand:
210             condition-kind: regex-match
211             regex: 'danube'
212             label: '{stream}'
213           steps:
214             - trigger-builds:
215                 - project: 'fuel-collect-logs-{deploy-type}-daily-{stream}'
216                   current-parameters: false
217                   predefined-parameters:
218                     DEPLOY_SCENARIO={scenario}
219                   block: true
220                   same-node: true
221                   block-thresholds:
222                     build-step-failure-threshold: 'never'
223                     failure-threshold: 'never'
224                     unstable-threshold: 'FAILURE'
225
226 - job-template:
227     name: '{installer}-deploy-{pod}-daily-{stream}'
228
229     concurrent: true
230
231     properties:
232       - logrotate-default
233       - throttle:
234           enabled: true
235           max-total: 4
236           max-per-node: 1
237           option: 'project'
238       - build-blocker:
239           use-build-blocker: true
240           blocking-jobs:
241             - '{installer}-deploy-{pod}-daily-{stream}'
242             - '{installer}-deploy-generic-daily-.*'
243           block-level: 'NODE'
244
245     parameters:
246       - project-parameter:
247           project: '{project}'
248           branch: '{branch}'
249       - '{installer}-defaults':
250           gs-pathname: '{gs-pathname}'
251       - '{slave-label}-defaults':
252           installer: '{installer}'
253       - testapi-parameter
254       - string:
255           name: DEPLOY_SCENARIO
256           default: 'os-odl-nofeature-ha'
257
258     scm:
259       - git-scm
260
261     wrappers:
262       - build-name:
263           name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
264
265     builders:
266       - track-begin-timestamp
267       - shell:
268           !include-raw-escape: ../fuel/fuel-deploy.sh
269
270     publishers:
271       - email:
272           recipients: armband@enea.com
273       - email-jenkins-admins-on-failure
274       - report-provision-result
275
276 ########################
277 # trigger macros
278 ########################
279 # CI PODs
280 # ----------------------------------------------------------------
281 # Enea Armband CI Baremetal Triggers running against master branch
282 # ----------------------------------------------------------------
283 - trigger:
284     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger'
285     triggers:
286       - timed: '0 1 * * 4,6'
287 - trigger:
288     name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-master-trigger'
289     triggers:
290       - timed: ''
291 - trigger:
292     name: 'fuel-os-odl-nofeature-ha-armband-baremetal-master-trigger'
293     triggers:
294       - timed: '0 1 * * 2,5,7'
295 - trigger:
296     name: 'fuel-os-ovn-nofeature-ha-armband-baremetal-master-trigger'
297     triggers:
298       - timed: ''
299 - trigger:
300     name: 'fuel-os-nosdn-ovs-ha-armband-baremetal-master-trigger'
301     triggers:
302       - timed: '0 1 * * 1,3'
303 # ---------------------------------------------------------------------
304 # Enea Armband CI Baremetal Triggers running against fraser branch
305 # ---------------------------------------------------------------------
306 - trigger:
307     name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-fraser-trigger'
308     triggers:
309       - timed: '0 1 * * 4,6'
310 - trigger:
311     name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-fraser-trigger'
312     triggers:
313       - timed: ''
314 - trigger:
315     name: 'fuel-os-odl-nofeature-ha-armband-baremetal-fraser-trigger'
316     triggers:
317       - timed: '0 1 * * 2,5,7'
318 - trigger:
319     name: 'fuel-os-ovn-nofeature-ha-armband-baremetal-fraser-trigger'
320     triggers:
321       - timed: ''
322 - trigger:
323     name: 'fuel-os-nosdn-ovs-ha-armband-baremetal-fraser-trigger'
324     triggers:
325       - timed: '0 1 * * 1,3'
326
327 # --------------------------------------------------------------
328 # Enea Armband CI Virtual Triggers running against master branch
329 # --------------------------------------------------------------
330 - trigger:
331     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-master-trigger'
332     triggers:
333       - timed: ''
334 - trigger:
335     name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-master-trigger'
336     triggers:
337       - timed: ''
338 - trigger:
339     name: 'fuel-os-odl-nofeature-ha-armband-virtual-master-trigger'
340     triggers:
341       - timed: ''
342 - trigger:
343     name: 'fuel-os-ovn-nofeature-ha-armband-virtual-master-trigger'
344     triggers:
345       - timed: ''
346 - trigger:
347     name: 'fuel-os-nosdn-ovs-ha-armband-virtual-master-trigger'
348     triggers:
349       - timed: ''
350 # -------------------------------------------------------------------
351 # Enea Armband CI Virtual Triggers running against fraser branch
352 # -------------------------------------------------------------------
353 - trigger:
354     name: 'fuel-os-nosdn-nofeature-ha-armband-virtual-fraser-trigger'
355     triggers:
356       - timed: ''
357 - trigger:
358     name: 'fuel-os-nosdn-nofeature-noha-armband-virtual-fraser-trigger'
359     triggers:
360       - timed: ''
361 - trigger:
362     name: 'fuel-os-odl-nofeature-ha-armband-virtual-fraser-trigger'
363     triggers:
364       - timed: ''
365 - trigger:
366     name: 'fuel-os-ovn-nofeature-ha-armband-virtual-fraser-trigger'
367     triggers:
368       - timed: ''
369 - trigger:
370     name: 'fuel-os-nosdn-ovs-ha-armband-virtual-fraser-trigger'
371     triggers:
372       - timed: ''