84bdac6dbe2925d26c7cc3c7646e227619ad57df
[releng.git] / jjb / functest / functest-daily-jobs.yml
1 ---
2 ###################################
3 # job configuration for functest
4 ###################################
5 - project:
6     name: functest-daily
7
8     project: functest
9
10     # -------------------------------
11     # BRANCH ANCHORS
12     # -------------------------------
13     master: &master
14       stream: master
15       branch: '{stream}'
16       gs-pathname: ''
17     euphrates: &euphrates
18       stream: euphrates
19       branch: 'stable/{stream}'
20       gs-pathname: '/{stream}'
21     # -------------------------------
22     # POD, INSTALLER, AND BRANCH MAPPING
23     # -------------------------------
24     #    Installers using labels
25     #            CI PODs
26     # This section should only contain the installers
27     # that have been switched using labels for slaves
28     # -------------------------------
29     pod:
30       # fuel CI PODs
31       - baremetal:
32           slave-label: fuel-baremetal
33           installer: fuel
34           <<: *master
35       - virtual:
36           slave-label: fuel-virtual
37           installer: fuel
38           <<: *master
39       - baremetal:
40           slave-label: fuel-baremetal
41           installer: fuel
42           <<: *euphrates
43       - virtual:
44           slave-label: fuel-virtual
45           installer: fuel
46           <<: *euphrates
47       # joid CI PODs
48       - baremetal:
49           slave-label: joid-baremetal
50           installer: joid
51           <<: *master
52       - virtual:
53           slave-label: joid-virtual
54           installer: joid
55           <<: *master
56       - baremetal:
57           slave-label: joid-baremetal
58           installer: joid
59           <<: *euphrates
60       - virtual:
61           slave-label: joid-virtual
62           installer: joid
63           <<: *euphrates
64       # compass CI PODs
65       - baremetal:
66           slave-label: compass-baremetal
67           installer: compass
68           <<: *master
69       - virtual:
70           slave-label: compass-virtual
71           installer: compass
72           <<: *master
73       - baremetal:
74           slave-label: compass-baremetal
75           installer: compass
76           <<: *euphrates
77       - virtual:
78           slave-label: compass-virtual
79           installer: compass
80           <<: *euphrates
81       # apex CI PODs
82       - virtual:
83           slave-label: apex-virtual-master
84           installer: apex
85           <<: *master
86       - baremetal:
87           slave-label: apex-baremetal-master
88           installer: apex
89           <<: *master
90       - virtual:
91           slave-label: apex-virtual-euphrates
92           installer: apex
93           <<: *euphrates
94       - baremetal:
95           slave-label: apex-baremetal-euphrates
96           installer: apex
97           <<: *euphrates
98       # armband CI PODs
99       - armband-baremetal:
100           slave-label: armband-baremetal
101           installer: fuel
102           <<: *master
103       - armband-virtual:
104           slave-label: armband-virtual
105           installer: fuel
106           <<: *master
107       - armband-baremetal:
108           slave-label: armband-baremetal
109           installer: fuel
110           <<: *euphrates
111       - armband-virtual:
112           slave-label: armband-virtual
113           installer: fuel
114           <<: *euphrates
115       # daisy CI PODs
116       - baremetal:
117           slave-label: daisy-baremetal
118           installer: daisy
119           <<: *master
120       - virtual:
121           slave-label: daisy-virtual
122           installer: daisy
123           <<: *master
124       - baremetal:
125           slave-label: daisy-baremetal
126           installer: daisy
127           <<: *euphrates
128       - virtual:
129           slave-label: daisy-virtual
130           installer: daisy
131           <<: *euphrates
132       # netvirt 3rd party ci
133       - virtual:
134           slave-label: odl-netvirt-virtual
135           installer: netvirt
136           <<: *master
137       # -------------------------------
138       #        None-CI PODs
139       # -------------------------------
140       - orange-pod1:
141           slave-label: '{pod}'
142           installer: joid
143           <<: *master
144       - orange-pod5:
145           slave-label: '{pod}'
146           installer: fuel
147           <<: *master
148       - orange-pod2:
149           slave-label: '{pod}'
150           installer: joid
151           <<: *master
152       - baremetal-centos:
153           slave-label: 'intel-pod8'
154           installer: compass
155           <<: *master
156       - nokia-pod1:
157           slave-label: '{pod}'
158           installer: apex
159           <<: *master
160       - zte-pod1:
161           slave-label: '{pod}'
162           installer: fuel
163           <<: *master
164       - zte-pod1:
165           slave-label: '{pod}'
166           installer: fuel
167           <<: *euphrates
168       - zte-pod2:
169           slave-label: '{pod}'
170           installer: daisy
171           <<: *master
172       - zte-pod2:
173           slave-label: '{pod}'
174           installer: daisy
175           <<: *euphrates
176       - zte-pod3:
177           slave-label: '{pod}'
178           installer: daisy
179           <<: *master
180       - zte-pod3:
181           slave-label: '{pod}'
182           installer: daisy
183           <<: *euphrates
184       - zte-pod9:
185           slave-label: '{pod}'
186           installer: daisy
187           <<: *master
188     # -------------------------------
189     # PODs for verify jobs triggered by each patch upload
190     #   - ool-virtual1:
191     #       slave-label: '{pod}'
192     #       installer: apex
193     #       <<: *master
194     # -------------------------------
195
196     testsuite:
197       - 'suite':
198           job-timeout: 60
199       - 'daily':
200           job-timeout: 300
201       - 'arm-daily':
202           job-timeout: 300
203
204     jobs:
205       - 'functest-{installer}-{pod}-{testsuite}-{stream}'
206
207 ################################
208 # job template
209 ################################
210 - job-template:
211     name: 'functest-{installer}-{pod}-{testsuite}-{stream}'
212
213     concurrent: true
214
215     properties:
216       - logrotate-default
217       - throttle:
218           enabled: true
219           max-per-node: 1
220           option: 'project'
221
222     wrappers:
223       - build-name:
224           name: '$BUILD_NUMBER Suite: $FUNCTEST_MODE Scenario: $DEPLOY_SCENARIO'
225       - timeout:
226           timeout: '{job-timeout}'
227           abort: true
228
229     parameters:
230       - project-parameter:
231           project: '{project}'
232           branch: '{branch}'
233       - '{installer}-defaults'
234       - '{slave-label}-defaults'
235       - 'functest-{testsuite}-parameter'
236       - string:
237           name: DEPLOY_SCENARIO
238           default: 'os-odl_l2-nofeature-ha'
239       - string:
240           name: CLEAN_DOCKER_IMAGES
241           default: 'false'
242           description: 'Remove downloaded docker images (opnfv/functest*:*)'
243       - functest-parameter:
244           gs-pathname: '{gs-pathname}'
245
246     scm:
247       - git-scm
248
249     builders:
250       - description-setter:
251           description: "Built on $NODE_NAME"
252       - conditional-step:
253           condition-kind: regex-match
254           regex: "os-*"
255           label: 'DEPLOY_SCENARIO'
256           steps:
257             - 'functest-{testsuite}-builder'
258       - conditional-step:
259           condition-kind: regex-match
260           regex: "k8-*"
261           label: 'DEPLOY_SCENARIO'
262           steps:
263             - 'functest-k8-builder'
264
265
266 ########################
267 # parameter macros
268 ########################
269 - parameter:
270     name: functest-k8-parameter
271     parameters:
272       - string:
273           name: FUNCTEST_MODE
274           default: 'daily'
275           description: "Daily suite name to run on K8 deployment"
276
277 - parameter:
278     name: functest-daily-parameter
279     parameters:
280       - string:
281           name: FUNCTEST_MODE
282           default: 'daily'
283           description: "Daily suite name to run"
284
285 - parameter:
286     name: functest-arm-daily-parameter
287     parameters:
288       - string:
289           name: FUNCTEST_MODE
290           default: 'arm-daily'
291           description: "Daily suite name (Aarch64) to run"
292
293 - parameter:
294     name: functest-suite-parameter
295     parameters:
296       - choice:
297           name: FUNCTEST_MODE
298           choices:
299             - 'tier'
300             - 'testcase'
301           default: 'tier'
302           description: "Test case or Tier to be run"
303       - choice:
304           name: FUNCTEST_SUITE_NAME
305           choices:
306             - 'connection_check'
307             - 'api_check'
308             - 'snaps_health_check'
309             - 'vping_userdata'
310             - 'vping_ssh'
311             - 'tempest_smoke_serial'
312             - 'rally_sanity'
313             - 'odl'
314             - 'odl_netvirt'
315             - 'snaps_smoke'
316             - 'refstack_defcore'
317             - 'promise'
318             - 'doctor'
319             - 'bgpvpn'
320             - 'parser'
321             - 'security_scan'
322             - 'tempest_full_parallel'
323             - 'rally_full'
324             - 'cloudify_ims'
325             - 'cloudify_vrouter'
326             - 'orchestra_openims'
327             - 'orchestra_clearwaterims'
328           default: 'connection_check'
329       - choice:
330           name: FUNCTEST_TIER
331           choices:
332             - 'healthcheck'
333             - 'smoke'
334             - 'features'
335             - 'components'
336             - 'vnf'
337           default: 'healthcheck'
338       - string:
339           name: TESTCASE_OPTIONS
340           default: ''
341           description: 'Additional parameters specific to test case(s)'
342
343 - parameter:
344     name: functest-parameter
345     parameters:
346       - string:
347           name: GS_PATHNAME
348           default: '{gs-pathname}'
349           description: "Version directory where the opnfv documents will be stored in gs repository"
350       - string:
351           name: FUNCTEST_REPO_DIR
352           default: "/home/opnfv/repos/functest"
353           description: "Directory where the Functest repository is cloned"
354       - string:
355           name: PUSH_RESULTS_TO_DB
356           default: "true"
357           description: "Push the results of all the tests to the resultDB"
358       - string:
359           name: CI_DEBUG
360           default: 'false'
361           description: "Show debug output information"
362       - string:
363           name: RC_FILE_PATH
364           default: ''
365           description: "Path to the OS credentials file if given"
366 ########################
367 # trigger macros
368 ########################
369 - trigger:
370     name: 'functest-master'
371     triggers:
372       - pollscm:
373           cron: "H 9 * * *"
374 ########################
375 # builder macros
376 ########################
377 - builder:
378     name: functest-daily-builder
379     builders:
380       - 'functest-cleanup'
381       - 'functest-daily'
382       - 'functest-store-results'
383       - 'functest-exit'
384
385 - builder:
386     name: functest-arm-daily-builder
387     builders:
388       - 'functest-cleanup'
389       - 'functest-arm-daily'
390       - 'functest-store-results'
391       - 'functest-exit'
392
393 - builder:
394     name: functest-suite-builder
395     builders:
396       - 'functest-cleanup'
397       - 'functest-daily'
398       - 'functest-store-results'
399       - 'functest-exit'
400
401 - builder:
402     name: functest-k8-builder
403     builders:
404       - 'functest-cleanup'
405       - 'functest-daily-k8'
406       - 'functest-store-results'
407       - 'functest-exit'
408
409 - builder:
410     name: functest-daily-k8
411     builders:
412       # yamllint disable rule:indentation
413       - shell:
414           !include-raw:
415               - ../../utils/fetch_k8_conf.sh
416               - ./functest-k8.sh
417
418 - builder:
419     name: functest-daily
420     builders:
421       # yamllint disable rule:indentation
422       - shell:
423           !include-raw:
424               - ./functest-env-presetup.sh
425               - ../../utils/fetch_os_creds.sh
426               - ./functest-alpine.sh
427
428 # yamllint enable rule:indentation
429 - builder:
430     name: functest-arm-daily
431     builders:
432       # yamllint disable rule:indentation
433       - shell:
434           !include-raw:
435               - ./functest-env-presetup.sh
436               - ../../utils/fetch_os_creds.sh
437               - ./functest-alpine.sh
438
439 # yamllint enable rule:indentation
440 - builder:
441     name: functest-store-results
442     builders:
443       - shell:
444           !include-raw: ../../utils/push-test-logs.sh
445
446 - builder:
447     name: functest-cleanup
448     builders:
449       - shell:
450           !include-raw: ./functest-cleanup.sh
451
452 - builder:
453     name: functest-exit
454     builders:
455       - shell:
456           !include-raw: ./functest-exit.sh