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