Merge "arm-pod2: Adding arm-pod2 to jenkins"
[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     brahmaputra: &brahmaputra
18         stream: brahmaputra
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             <<: *brahmaputra
44         - virtual:
45             slave-label: fuel-virtual
46             installer: fuel
47             <<: *brahmaputra
48
49 # just in case if things go wrong
50         - lf-pod2:
51             slave-label: fuel-baremetal
52             installer: fuel
53             <<: *master
54
55 # joid CI PODs
56         - baremetal:
57             slave-label: joid-baremetal
58             installer: joid
59             <<: *master
60         - virtual:
61             slave-label: joid-virtual
62             installer: joid
63             <<: *master
64         - baremetal:
65             slave-label: joid-baremetal
66             installer: joid
67             <<: *brahmaputra
68         - virtual:
69             slave-label: joid-virtual
70             installer: joid
71             <<: *brahmaputra
72 # compass CI PODs
73         - baremetal:
74             slave-label: compass-baremetal
75             installer: compass
76             <<: *master
77         - virtual:
78             slave-label: compass-virtual
79             installer: compass
80             <<: *master
81         - baremetal:
82             slave-label: compass-baremetal
83             installer: compass
84             <<: *brahmaputra
85         - virtual:
86             slave-label: compass-virtual
87             installer: compass
88             <<: *brahmaputra
89 # apex CI PODs
90         - apex-verify-master:
91             slave-label: '{pod}'
92             installer: apex
93             <<: *master
94         - apex-daily-master:
95             slave-label: '{pod}'
96             installer: apex
97             <<: *master
98 #--------------------------------
99 #        None-CI PODs
100 #--------------------------------
101         - orange-pod2:
102             slave-label: '{pod}'
103             installer: joid
104             <<: *brahmaputra
105         - orange-pod5:
106             slave-label: '{pod}'
107             installer: fuel
108             <<: *master
109         - orange-pod2:
110             slave-label: '{pod}'
111             installer: joid
112             <<: *master
113         - huawei-pod2:
114             slave-label: '{pod}'
115             installer: compass
116             <<: *master
117         - nokia-pod1:
118             slave-label: '{pod}'
119             installer: apex
120             <<: *master
121         - arm-pod1:
122             slave-label: '{pod}'
123             installer: fuel
124             <<: *master
125         - zte-pod1:
126             slave-label: '{pod}'
127             installer: fuel
128             <<: *master
129         - arm-pod1:
130             slave-label: '{pod}'
131             installer: fuel
132             <<: *brahmaputra
133 #--------------------------------
134
135     testsuite:
136         - 'daily'
137         - 'weekly'
138         - 'suite'
139
140     jobs:
141         - 'functest-{installer}-{pod}-{testsuite}-{stream}'
142
143 ################################
144 # job template
145 ################################
146 - job-template:
147     name: 'functest-{installer}-{pod}-{testsuite}-{stream}'
148
149     concurrent: true
150
151     properties:
152         - throttle:
153             enabled: true
154             max-per-node: 1
155             option: 'project'
156
157     wrappers:
158         - build-name:
159             name: '$BUILD_NUMBER Suite: $FUNCTEST_SUITE_NAME Scenario: $DEPLOY_SCENARIO'
160         - timeout:
161             timeout: 400
162             abort: true
163
164     parameters:
165         - project-parameter:
166             project: '{project}'
167         - '{slave-label}-defaults'
168         - '{installer}-defaults'
169         - 'functest-{testsuite}-parameter'
170         - string:
171             name: DEPLOY_SCENARIO
172             default: 'os-odl_l2-nofeature-ha'
173         - string:
174             name: DOCKER_TAG
175             default: '{docker-tag}'
176             description: 'Tag to pull docker image'
177         - functest-parameter:
178             gs-pathname: '{gs-pathname}'
179
180     scm:
181         - git-scm:
182             credentials-id: '{ssh-credentials}'
183             refspec: ''
184             branch: '{branch}'
185
186     builders:
187         - description-setter:
188             description: "POD: $NODE_NAME"
189         - 'functest-{testsuite}-builder'
190
191 ########################
192 # parameter macros
193 ########################
194 - parameter:
195     name: functest-daily-parameter
196     parameters:
197         - string:
198             name: FUNCTEST_SUITE_NAME
199             default: 'daily'
200             description: "Daily suite name to run"
201 - parameter:
202     name: functest-weekly-parameter
203     parameters:
204         - string:
205             name: FUNCTEST_SUITE_NAME
206             default: 'weekly'
207             description: "Weekly suite name to run"
208 - parameter:
209     name: functest-suite-parameter
210     parameters:
211         - choice:
212             name: FUNCTEST_SUITE_NAME
213             choices:
214                 - 'healthcheck'
215                 - 'vping_userdata'
216                 - 'vping_ssh'
217                 - 'tempest_smoke_serial'
218                 - 'rally_sanity'
219                 - 'odl'
220                 - 'onos'
221                 - 'promise'
222                 - 'doctor'
223                 - 'bgpvpn'
224                 - 'security_scan'
225                 - 'tempest_full_parallel'
226                 - 'rally_full'
227                 - 'vims'
228 - parameter:
229     name: functest-parameter
230     parameters:
231         - string:
232             name: GS_PATHNAME
233             default: '{gs-pathname}'
234             description: "Version directory where the opnfv documents will be stored in gs repository"
235         - string:
236             name: FUNCTEST_REPO_DIR
237             default: "/home/opnfv/repos/functest"
238             description: "Directory where the Functest repository is cloned"
239         - string:
240             name: PUSH_RESULTS_TO_DB
241             default: "true"
242             description: "Push the results of all the tests to the resultDB"
243         - string:
244             name: CI_DEBUG
245             default: 'false'
246             description: "Show debug output information"
247 ########################
248 # trigger macros
249 ########################
250 - trigger:
251     name: 'functest-master'
252     triggers:
253         - pollscm:
254             cron: "H 9 * * *"
255 ########################
256 # builder macros
257 ########################
258 - builder:
259     name: functest-daily-builder
260     builders:
261         - 'functest-cleanup'
262         - 'set-functest-env'
263         - 'functest-daily'
264         - 'functest-store-results'
265
266 - builder:
267     name: functest-weekly-builder
268     builders:
269         - 'functest-cleanup'
270         - 'set-functest-env'
271         - 'functest-weekly'
272         - 'functest-store-results'
273
274 - builder:
275     name: functest-suite-builder
276     builders:
277         - 'functest-cleanup'
278         - 'set-functest-env'
279         - 'functest-suite'
280
281 - builder:
282     name: functest-daily
283     builders:
284         - shell:
285             !include-raw: ./functest-loop.sh
286
287 - builder:
288     name: functest-weekly
289     builders:
290         - shell:
291             !include-raw: ./functest-loop.sh
292
293 - builder:
294     name: functest-suite
295     builders:
296         - shell:
297             !include-raw: ./functest-suite.sh
298
299 - builder:
300     name: set-functest-env
301     builders:
302         - shell:
303             !include-raw: ./set-functest-env.sh
304
305 - builder:
306     name: functest-store-results
307     builders:
308         - shell:
309             !include-raw: ../../utils/push-test-logs.sh
310
311 - builder:
312     name: functest-cleanup
313     builders:
314         - shell:
315             !include-raw: ./functest-cleanup.sh