3925450934ef5570b945a58797d48f1980e4d43f
[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 #--------------------------------
100 #        None-CI PODs
101 #--------------------------------
102         - orange-pod1:
103             slave-label: '{pod}'
104             installer: joid
105             <<: *master
106         - orange-pod5:
107             slave-label: '{pod}'
108             installer: fuel
109             <<: *master
110         - orange-pod2:
111             slave-label: '{pod}'
112             installer: joid
113             <<: *master
114         - huawei-pod2:
115             slave-label: '{pod}'
116             installer: compass
117             <<: *master
118         - nokia-pod1:
119             slave-label: '{pod}'
120             installer: apex
121             <<: *master
122         - arm-pod1:
123             slave-label: '{pod}'
124             installer: fuel
125             <<: *master
126         - zte-pod1:
127             slave-label: '{pod}'
128             installer: fuel
129             <<: *master
130         - zte-pod1:
131             slave-label: '{pod}'
132             installer: fuel
133             <<: *colorado
134         - zte-pod2:
135             slave-label: '{pod}'
136             installer: fuel
137             <<: *master
138         - zte-pod3:
139             slave-label: '{pod}'
140             installer: fuel
141             <<: *master
142         - zte-pod3:
143             slave-label: '{pod}'
144             installer: fuel
145             <<: *colorado
146         - arm-pod1:
147             slave-label: '{pod}'
148             installer: fuel
149             <<: *colorado
150 #--------------------------------
151
152     testsuite:
153         - 'suite':
154             job-timeout: 60
155         - 'daily':
156             job-timeout: 180
157         - 'weekly':
158             job-timeout: 400
159
160     jobs:
161         - 'functest-{installer}-{pod}-{testsuite}-{stream}'
162
163 ################################
164 # job template
165 ################################
166 - job-template:
167     name: 'functest-{installer}-{pod}-{testsuite}-{stream}'
168
169     concurrent: true
170
171     properties:
172         - throttle:
173             enabled: true
174             max-per-node: 1
175             option: 'project'
176
177     wrappers:
178         - build-name:
179             name: '$BUILD_NUMBER Suite: $FUNCTEST_SUITE_NAME Scenario: $DEPLOY_SCENARIO'
180         - timeout:
181             timeout: '{job-timeout}'
182             abort: true
183
184     parameters:
185         - project-parameter:
186             project: '{project}'
187         - '{installer}-defaults'
188         - '{slave-label}-defaults'
189         - 'functest-{testsuite}-parameter'
190         - string:
191             name: DEPLOY_SCENARIO
192             default: 'os-odl_l2-nofeature-ha'
193         - string:
194             name: DOCKER_TAG
195             default: '{docker-tag}'
196             description: 'Tag to pull docker image'
197         - functest-parameter:
198             gs-pathname: '{gs-pathname}'
199
200     scm:
201         - git-scm:
202             credentials-id: '{ssh-credentials}'
203             refspec: ''
204             branch: '{branch}'
205
206     builders:
207         - description-setter:
208             description: "POD: $NODE_NAME"
209         - 'functest-{testsuite}-builder'
210
211 ########################
212 # parameter macros
213 ########################
214 - parameter:
215     name: functest-daily-parameter
216     parameters:
217         - string:
218             name: FUNCTEST_SUITE_NAME
219             default: 'daily'
220             description: "Daily suite name to run"
221 - parameter:
222     name: functest-weekly-parameter
223     parameters:
224         - string:
225             name: FUNCTEST_SUITE_NAME
226             default: 'weekly'
227             description: "Weekly suite name to run"
228 - parameter:
229     name: functest-suite-parameter
230     parameters:
231         - choice:
232             name: FUNCTEST_SUITE_NAME
233             choices:
234                 - 'healthcheck'
235                 - 'vping_userdata'
236                 - 'vping_ssh'
237                 - 'tempest_smoke_serial'
238                 - 'rally_sanity'
239                 - 'odl'
240                 - 'onos'
241                 - 'promise'
242                 - 'doctor'
243                 - 'bgpvpn'
244                 - 'security_scan'
245                 - 'tempest_full_parallel'
246                 - 'rally_full'
247                 - 'vims'
248                 - 'multisite'
249                 - 'parser'
250 - parameter:
251     name: functest-parameter
252     parameters:
253         - string:
254             name: GS_PATHNAME
255             default: '{gs-pathname}'
256             description: "Version directory where the opnfv documents will be stored in gs repository"
257         - string:
258             name: FUNCTEST_REPO_DIR
259             default: "/home/opnfv/repos/functest"
260             description: "Directory where the Functest repository is cloned"
261         - string:
262             name: PUSH_RESULTS_TO_DB
263             default: "true"
264             description: "Push the results of all the tests to the resultDB"
265         - string:
266             name: CI_DEBUG
267             default: 'false'
268             description: "Show debug output information"
269 ########################
270 # trigger macros
271 ########################
272 - trigger:
273     name: 'functest-master'
274     triggers:
275         - pollscm:
276             cron: "H 9 * * *"
277 ########################
278 # builder macros
279 ########################
280 - builder:
281     name: functest-daily-builder
282     builders:
283         - 'functest-cleanup'
284         - 'set-functest-env'
285         - 'functest-daily'
286         - 'functest-store-results'
287         - 'functest-exit'
288
289 - builder:
290     name: functest-weekly-builder
291     builders:
292         - 'functest-cleanup'
293         - 'set-functest-env'
294         - 'functest-weekly'
295         - 'functest-store-results'
296         - 'functest-exit'
297
298 - builder:
299     name: functest-suite-builder
300     builders:
301         - 'functest-cleanup'
302         - 'set-functest-env'
303         - 'functest-suite'
304
305 - builder:
306     name: functest-daily
307     builders:
308         - shell:
309             !include-raw: ./functest-loop.sh
310
311 - builder:
312     name: functest-weekly
313     builders:
314         - shell:
315             !include-raw: ./functest-loop.sh
316
317 - builder:
318     name: functest-suite
319     builders:
320         - shell:
321             !include-raw: ./functest-suite.sh
322
323 - builder:
324     name: set-functest-env
325     builders:
326         - shell:
327             !include-raw: ./set-functest-env.sh
328
329 - builder:
330     name: functest-store-results
331     builders:
332         - shell:
333             !include-raw: ../../utils/push-test-logs.sh
334
335 - builder:
336     name: functest-cleanup
337     builders:
338         - shell:
339             !include-raw: ./functest-cleanup.sh
340
341 - builder:
342     name: functest-exit
343     builders:
344         - shell:
345             !include-raw: ./functest-exit.sh