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