functest,doctor: CLEAN_DOCKER_IMAGES
[releng.git] / jjb / functest / functest-ci-jobs.yml
1 ###################################
2 # job configuration for functest
3 ###################################
4 - project:
5     name: functest
6
7     project: '{name}'
8
9 #--------------------------------
10 # BRANCH ANCHORS
11 #--------------------------------
12     master: &master
13         stream: master
14         branch: '{stream}'
15         gs-pathname: ''
16         docker-tag: 'latest'
17     colorado: &colorado
18         stream: colorado
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             <<: *colorado
44         - virtual:
45             slave-label: fuel-virtual
46             installer: fuel
47             <<: *colorado
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             <<: *colorado
61         - virtual:
62             slave-label: joid-virtual
63             installer: joid
64             <<: *colorado
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             <<: *colorado
78         - virtual:
79             slave-label: compass-virtual
80             installer: compass
81             <<: *colorado
82 # apex CI PODs
83         - apex-verify-master:
84             slave-label: '{pod}'
85             installer: apex
86             <<: *master
87         - apex-daily-master:
88             slave-label: '{pod}'
89             installer: apex
90             <<: *master
91         - apex-verify-colorado:
92             slave-label: '{pod}'
93             installer: apex
94             <<: *colorado
95         - apex-daily-colorado:
96             slave-label: '{pod}'
97             installer: apex
98             <<: *colorado
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             <<: *colorado
112         - armband-virtual:
113             slave-label: armband-virtual
114             installer: fuel
115             <<: *colorado
116 #--------------------------------
117 #        None-CI PODs
118 #--------------------------------
119         - orange-pod1:
120             slave-label: '{pod}'
121             installer: joid
122             <<: *master
123         - orange-pod5:
124             slave-label: '{pod}'
125             installer: fuel
126             <<: *master
127         - orange-pod2:
128             slave-label: '{pod}'
129             installer: joid
130             <<: *master
131         - huawei-pod5:
132             slave-label: '{pod}'
133             installer: compass
134             <<: *master
135         - nokia-pod1:
136             slave-label: '{pod}'
137             installer: apex
138             <<: *master
139         - arm-pod2:
140             slave-label: '{pod}'
141             installer: fuel
142             <<: *master
143         - arm-pod3:
144             slave-label: '{pod}'
145             installer: fuel
146             <<: *master
147         - zte-pod1:
148             slave-label: '{pod}'
149             installer: fuel
150             <<: *master
151         - zte-pod1:
152             slave-label: '{pod}'
153             installer: fuel
154             <<: *colorado
155         - zte-pod2:
156             slave-label: '{pod}'
157             installer: fuel
158             <<: *master
159         - zte-pod3:
160             slave-label: '{pod}'
161             installer: fuel
162             <<: *master
163         - zte-pod3:
164             slave-label: '{pod}'
165             installer: fuel
166             <<: *colorado
167         - arm-pod2:
168             slave-label: '{pod}'
169             installer: fuel
170             <<: *colorado
171         - arm-pod3:
172             slave-label: '{pod}'
173             installer: fuel
174             <<: *colorado
175 # PODs for verify jobs triggered by each patch upload
176         - ool-virtual1:
177             slave-label: '{pod}'
178             installer: apex
179             <<: *master
180 #--------------------------------
181
182     testsuite:
183         - 'suite':
184             job-timeout: 60
185         - 'daily':
186             job-timeout: 180
187         - 'weekly':
188             job-timeout: 400
189
190     jobs:
191         - 'functest-{installer}-{pod}-{testsuite}-{stream}'
192
193 ################################
194 # job template
195 ################################
196 - job-template:
197     name: 'functest-{installer}-{pod}-{testsuite}-{stream}'
198
199     concurrent: true
200
201     properties:
202         - throttle:
203             enabled: true
204             max-per-node: 1
205             option: 'project'
206
207     wrappers:
208         - build-name:
209             name: '$BUILD_NUMBER Suite: $FUNCTEST_SUITE_NAME Scenario: $DEPLOY_SCENARIO'
210         - timeout:
211             timeout: '{job-timeout}'
212             abort: true
213
214     parameters:
215         - project-parameter:
216             project: '{project}'
217         - '{installer}-defaults'
218         - '{slave-label}-defaults'
219         - 'functest-{testsuite}-parameter'
220         - string:
221             name: DEPLOY_SCENARIO
222             default: 'os-odl_l2-nofeature-ha'
223         - string:
224             name: DOCKER_TAG
225             default: '{docker-tag}'
226             description: 'Tag to pull docker image'
227         - string:
228             name: CLEAN_DOCKER_IMAGES
229             default: 'true'
230             description: 'Remove downloaded docker images (opnfv/functest:*)'
231         - functest-parameter:
232             gs-pathname: '{gs-pathname}'
233
234     scm:
235         - git-scm:
236             credentials-id: '{ssh-credentials}'
237             refspec: ''
238             branch: '{branch}'
239
240     builders:
241         - description-setter:
242             description: "POD: $NODE_NAME"
243         - 'functest-{testsuite}-builder'
244
245 ########################
246 # parameter macros
247 ########################
248 - parameter:
249     name: functest-daily-parameter
250     parameters:
251         - string:
252             name: FUNCTEST_SUITE_NAME
253             default: 'daily'
254             description: "Daily suite name to run"
255 - parameter:
256     name: functest-weekly-parameter
257     parameters:
258         - string:
259             name: FUNCTEST_SUITE_NAME
260             default: 'weekly'
261             description: "Weekly suite name to run"
262 - parameter:
263     name: functest-suite-parameter
264     parameters:
265         - choice:
266             name: FUNCTEST_SUITE_NAME
267             choices:
268                 - 'healthcheck'
269                 - 'vping_userdata'
270                 - 'vping_ssh'
271                 - 'tempest_smoke_serial'
272                 - 'rally_sanity'
273                 - 'odl'
274                 - 'onos'
275                 - 'promise'
276                 - 'doctor'
277                 - 'bgpvpn'
278                 - 'security_scan'
279                 - 'tempest_full_parallel'
280                 - 'rally_full'
281                 - 'vims'
282                 - 'multisite'
283                 - 'parser'
284         - string:
285             name: TESTCASE_OPTIONS
286             default: ''
287             description: 'Additional parameters specific to test case(s)'
288 - parameter:
289     name: functest-parameter
290     parameters:
291         - string:
292             name: GS_PATHNAME
293             default: '{gs-pathname}'
294             description: "Version directory where the opnfv documents will be stored in gs repository"
295         - string:
296             name: FUNCTEST_REPO_DIR
297             default: "/home/opnfv/repos/functest"
298             description: "Directory where the Functest repository is cloned"
299         - string:
300             name: PUSH_RESULTS_TO_DB
301             default: "true"
302             description: "Push the results of all the tests to the resultDB"
303         - string:
304             name: CI_DEBUG
305             default: 'false'
306             description: "Show debug output information"
307         - string:
308             name: RC_FILE_PATH
309             default: ''
310             description: "Path to the OS credentials file if given"
311 ########################
312 # trigger macros
313 ########################
314 - trigger:
315     name: 'functest-master'
316     triggers:
317         - pollscm:
318             cron: "H 9 * * *"
319 ########################
320 # builder macros
321 ########################
322 - builder:
323     name: functest-daily-builder
324     builders:
325         - 'functest-cleanup'
326         - 'set-functest-env'
327         - 'functest-daily'
328         - 'functest-store-results'
329         - 'functest-exit'
330
331 - builder:
332     name: functest-weekly-builder
333     builders:
334         - 'functest-cleanup'
335         - 'set-functest-env'
336         - 'functest-weekly'
337         - 'functest-store-results'
338         - 'functest-exit'
339
340 - builder:
341     name: functest-suite-builder
342     builders:
343         - 'functest-cleanup'
344         - 'set-functest-env'
345         - 'functest-suite'
346
347 - builder:
348     name: functest-daily
349     builders:
350         - shell:
351             !include-raw: ./functest-loop.sh
352
353 - builder:
354     name: functest-weekly
355     builders:
356         - shell:
357             !include-raw: ./functest-loop.sh
358
359 - builder:
360     name: functest-suite
361     builders:
362         - shell:
363             !include-raw: ./functest-suite.sh
364
365 - builder:
366     name: set-functest-env
367     builders:
368         - shell:
369             !include-raw: ./set-functest-env.sh
370
371 - builder:
372     name: functest-store-results
373     builders:
374         - shell:
375             !include-raw: ../../utils/push-test-logs.sh
376
377 - builder:
378     name: functest-cleanup
379     builders:
380         - shell:
381             !include-raw: ./functest-cleanup.sh
382
383 - builder:
384     name: functest-exit
385     builders:
386         - shell:
387             !include-raw: ./functest-exit.sh