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