Merge "Fix "Illegal option -o pipefail" problem and correct the parser path."
[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 #--------------------------------
90 #    Installers not using labels
91 #            CI PODs
92 # This section should only contain the installers
93 # that have not been switched using labels for slaves
94 #--------------------------------
95         - intel-pod7:
96             slave-label: '{pod}'
97             installer: apex
98             <<: *master
99         - lf-pod1:
100             slave-label: '{pod}'
101             installer: apex
102             <<: *brahmaputra
103 #--------------------------------
104 #        None-CI PODs
105 #--------------------------------
106         - orange-pod2:
107             slave-label: '{pod}'
108             installer: joid
109             <<: *brahmaputra
110         - orange-pod5:
111             slave-label: '{pod}'
112             installer: fuel
113             <<: *master
114         - orange-pod2:
115             slave-label: '{pod}'
116             installer: joid
117             <<: *master
118         - huawei-pod2:
119             slave-label: '{pod}'
120             installer: compass
121             <<: *master
122         - nokia-pod1:
123             slave-label: '{pod}'
124             installer: apex
125             <<: *master
126         - arm-pod1:
127             slave-label: '{pod}'
128             installer: fuel
129             <<: *master
130         - zte-pod1:
131             slave-label: '{pod}'
132             installer: fuel
133             <<: *master
134         - arm-pod1:
135             slave-label: '{pod}'
136             installer: fuel
137             <<: *brahmaputra
138 #--------------------------------
139
140     testsuite:
141         - 'daily'
142         - 'suite'
143
144     jobs:
145         - 'functest-{installer}-{pod}-{testsuite}-{stream}'
146
147 ################################
148 # job template
149 ################################
150 - job-template:
151     name: 'functest-{installer}-{pod}-{testsuite}-{stream}'
152
153     concurrent: true
154
155     properties:
156         - throttle:
157             enabled: true
158             max-per-node: 1
159
160     wrappers:
161         - build-name:
162             name: '$BUILD_NUMBER Suite: $FUNCTEST_SUITE_NAME Scenario: $DEPLOY_SCENARIO'
163         - timeout:
164             timeout: 400
165             abort: true
166
167     parameters:
168         - project-parameter:
169             project: '{project}'
170         - '{slave-label}-defaults'
171         - '{installer}-defaults'
172         - 'functest-{testsuite}-parameter'
173         - string:
174             name: DEPLOY_SCENARIO
175             default: 'os-odl_l2-nofeature-ha'
176         - string:
177             name: DOCKER_TAG
178             default: '{docker-tag}'
179             description: 'Tag to pull docker image'
180         - functest-parameter:
181             gs-pathname: '{gs-pathname}'
182
183     scm:
184         - git-scm:
185             credentials-id: '{ssh-credentials}'
186             refspec: ''
187             branch: '{branch}'
188
189     builders:
190         - 'functest-{testsuite}-builder'
191
192 ########################
193 # parameter macros
194 ########################
195 - parameter:
196     name: functest-daily-parameter
197     parameters:
198         - string:
199             name: FUNCTEST_SUITE_NAME
200             default: 'daily'
201             description: "Suite name to run"
202 - parameter:
203     name: functest-suite-parameter
204     parameters:
205         - choice:
206             name: FUNCTEST_SUITE_NAME
207             choices:
208                 - 'tempest'
209                 - 'rally'
210                 - 'odl'
211                 - 'onos'
212                 - 'ovno'
213                 - 'promise'
214                 - 'doctor'
215                 - 'vims'
216                 - 'vping_userdata'
217                 - 'vping_ssh'
218 - parameter:
219     name: functest-parameter
220     parameters:
221         - string:
222             name: GS_PATHNAME
223             default: '{gs-pathname}'
224             description: "Version directory where the opnfv documents will be stored in gs repository"
225         - string:
226             name: FUNCTEST_REPO_DIR
227             default: "/home/opnfv/repos/functest"
228             description: "Directory where the Functest repository is cloned"
229         - string:
230             name: PUSH_RESULTS_TO_DB
231             default: "true"
232             description: "Push the results of all the tests to the resultDB"
233         - string:
234             name: CI_DEBUG
235             default: 'true'
236             description: "Show debug output information"
237 ########################
238 # trigger macros
239 ########################
240 - trigger:
241     name: 'functest-master'
242     triggers:
243         - pollscm:
244             cron: "H 9 * * *"
245 ########################
246 # builder macros
247 ########################
248 - builder:
249     name: functest-daily-builder
250     builders:
251         - 'functest-cleanup'
252         - 'set-functest-env'
253         - 'functest-daily'
254         - 'functest-store-results'
255
256 - builder:
257     name: functest-suite-builder
258     builders:
259         - 'functest-cleanup'
260         - 'set-functest-env'
261         - 'functest-suite'
262
263 - builder:
264     name: functest-suite
265     builders:
266         - shell:
267             !include-raw: ./functest-suite.sh
268
269 - builder:
270     name: functest-daily
271     builders:
272         - shell:
273             !include-raw: ./functest-daily.sh
274
275 - builder:
276     name: set-functest-env
277     builders:
278         - shell:
279             !include-raw: ./set-functest-env.sh
280
281 - builder:
282     name: functest-store-results
283     builders:
284         - shell:
285             !include-raw: ../../utils/push-test-logs.sh
286
287 - builder:
288     name: functest-cleanup
289     builders:
290         - shell:
291             !include-raw: ./functest-cleanup.sh