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