Create Dovetail Fraser Jobs
[releng.git] / jjb / functest / functest-daily-jobs.yml
1 ---
2 ###################################
3 # job configuration for functest
4 ###################################
5 - project:
6     name: functest-daily
7
8     project: functest
9
10     # -------------------------------
11     # BRANCH ANCHORS
12     # -------------------------------
13     master: &master
14       stream: master
15       branch: '{stream}'
16       gs-pathname: ''
17     fraser: &fraser
18       stream: fraser
19       branch: 'stable/{stream}'
20       gs-pathname: '/{stream}'
21     euphrates: &euphrates
22       stream: euphrates
23       branch: 'stable/{stream}'
24       gs-pathname: '/{stream}'
25     # -------------------------------
26     # POD, INSTALLER, AND BRANCH MAPPING
27     # -------------------------------
28     #    Installers using labels
29     #            CI PODs
30     # This section should only contain the installers
31     # that have been switched using labels for slaves
32     # -------------------------------
33     pod:
34       # fuel CI PODs
35       - baremetal:
36           slave-label: fuel-baremetal
37           installer: fuel
38           <<: *master
39       - virtual:
40           slave-label: fuel-virtual
41           installer: fuel
42           <<: *master
43       - baremetal:
44           slave-label: fuel-baremetal
45           installer: fuel
46           <<: *euphrates
47       - virtual:
48           slave-label: fuel-virtual
49           installer: fuel
50           <<: *euphrates
51       # joid CI PODs
52       - baremetal:
53           slave-label: joid-baremetal
54           installer: joid
55           <<: *master
56       - virtual:
57           slave-label: joid-virtual
58           installer: joid
59           <<: *master
60       - baremetal:
61           slave-label: joid-baremetal
62           installer: joid
63           <<: *euphrates
64       - virtual:
65           slave-label: joid-virtual
66           installer: joid
67           <<: *euphrates
68       # compass CI PODs
69       - baremetal:
70           slave-label: compass-baremetal
71           installer: compass
72           <<: *master
73       - virtual:
74           slave-label: compass-virtual
75           installer: compass
76           <<: *master
77       - baremetal:
78           slave-label: compass-baremetal
79           installer: compass
80           <<: *euphrates
81       - virtual:
82           slave-label: compass-virtual
83           installer: compass
84           <<: *euphrates
85       # apex CI PODs
86       - virtual:
87           slave-label: apex-virtual-master
88           installer: apex
89           <<: *master
90       - baremetal:
91           slave-label: apex-baremetal-master
92           installer: apex
93           <<: *master
94       - virtual:
95           slave-label: apex-virtual-euphrates
96           installer: apex
97           <<: *euphrates
98       - baremetal:
99           slave-label: apex-baremetal-euphrates
100           installer: apex
101           <<: *euphrates
102       # armband CI PODs
103       - armband-baremetal:
104           slave-label: armband-baremetal
105           installer: fuel
106           <<: *master
107       - armband-virtual:
108           slave-label: armband-virtual
109           installer: fuel
110           <<: *master
111       - armband-baremetal:
112           slave-label: armband-baremetal
113           installer: fuel
114           <<: *euphrates
115       - armband-virtual:
116           slave-label: armband-virtual
117           installer: fuel
118           <<: *euphrates
119       # daisy CI PODs
120       - baremetal:
121           slave-label: daisy-baremetal
122           installer: daisy
123           <<: *master
124       - virtual:
125           slave-label: daisy-virtual
126           installer: daisy
127           <<: *master
128       - baremetal:
129           slave-label: daisy-baremetal
130           installer: daisy
131           <<: *euphrates
132       - virtual:
133           slave-label: daisy-virtual
134           installer: daisy
135           <<: *euphrates
136       # netvirt 3rd party ci
137       - virtual:
138           slave-label: odl-netvirt-virtual
139           installer: netvirt
140           <<: *master
141       # -------------------------------
142       #        None-CI PODs
143       # -------------------------------
144       - orange-pod1:
145           slave-label: '{pod}'
146           installer: joid
147           <<: *master
148       - orange-pod5:
149           slave-label: '{pod}'
150           installer: fuel
151           <<: *master
152       - orange-pod2:
153           slave-label: '{pod}'
154           installer: joid
155           <<: *master
156       - baremetal-centos:
157           slave-label: 'intel-pod8'
158           installer: compass
159           <<: *master
160       - nokia-pod1:
161           slave-label: '{pod}'
162           installer: apex
163           <<: *master
164       - zte-pod1:
165           slave-label: '{pod}'
166           installer: fuel
167           <<: *master
168       - zte-pod1:
169           slave-label: '{pod}'
170           installer: fuel
171           <<: *euphrates
172       - zte-pod2:
173           slave-label: '{pod}'
174           installer: daisy
175           <<: *master
176       - zte-pod2:
177           slave-label: '{pod}'
178           installer: daisy
179           <<: *euphrates
180       - zte-pod3:
181           slave-label: '{pod}'
182           installer: daisy
183           <<: *master
184       - zte-pod3:
185           slave-label: '{pod}'
186           installer: daisy
187           <<: *euphrates
188       - zte-pod9:
189           slave-label: '{pod}'
190           installer: daisy
191           <<: *master
192     # -------------------------------
193     # PODs for verify jobs triggered by each patch upload
194     #   - ool-virtual1:
195     #       slave-label: '{pod}'
196     #       installer: apex
197     #       <<: *master
198     # -------------------------------
199
200     testsuite:
201       - 'suite':
202           job-timeout: 60
203       - 'daily':
204           job-timeout: 360
205       - 'arm-daily':
206           job-timeout: 480
207
208     jobs:
209       - 'functest-{installer}-{pod}-{testsuite}-{stream}'
210
211 ################################
212 # job template
213 ################################
214 - job-template:
215     name: 'functest-{installer}-{pod}-{testsuite}-{stream}'
216
217     concurrent: true
218
219     properties:
220       - logrotate-default
221       - throttle:
222           enabled: true
223           max-per-node: 1
224           option: 'project'
225
226     wrappers:
227       - build-name:
228           name: '$BUILD_NUMBER Suite: $FUNCTEST_MODE Scenario: $DEPLOY_SCENARIO'
229       - timeout:
230           timeout: '{job-timeout}'
231           abort: true
232
233     parameters:
234       - project-parameter:
235           project: '{project}'
236           branch: '{branch}'
237       - '{installer}-defaults'
238       - '{slave-label}-defaults'
239       - 'functest-{testsuite}-parameter'
240       - string:
241           name: DEPLOY_SCENARIO
242           default: 'os-odl_l2-nofeature-ha'
243       - string:
244           name: CLEAN_DOCKER_IMAGES
245           default: 'false'
246           description: 'Remove downloaded docker images (opnfv/functest*:*)'
247       - functest-parameter:
248           gs-pathname: '{gs-pathname}'
249
250     scm:
251       - git-scm
252
253     builders:
254       - description-setter:
255           description: "Built on $NODE_NAME"
256       - 'functest-{testsuite}-builder'
257
258
259 ########################
260 # parameter macros
261 ########################
262 - parameter:
263     name: functest-daily-parameter
264     parameters:
265       - string:
266           name: FUNCTEST_MODE
267           default: 'daily'
268           description: "Daily suite name to run"
269
270 - parameter:
271     name: functest-arm-daily-parameter
272     parameters:
273       - string:
274           name: FUNCTEST_MODE
275           default: 'arm-daily'
276           description: "Daily suite name (Aarch64) to run"
277
278 - parameter:
279     name: functest-suite-parameter
280     parameters:
281       - choice:
282           name: FUNCTEST_MODE
283           choices:
284             - 'tier'
285             - 'testcase'
286           default: 'tier'
287           description: "Test case or Tier to be run"
288       - choice:
289           name: FUNCTEST_SUITE_NAME
290           choices:
291             - 'connection_check'
292             - 'api_check'
293             - 'snaps_health_check'
294             - 'vping_userdata'
295             - 'vping_ssh'
296             - 'tempest_smoke_serial'
297             - 'rally_sanity'
298             - 'odl'
299             - 'odl_netvirt'
300             - 'snaps_smoke'
301             - 'refstack_defcore'
302             - 'promise'
303             - 'doctor'
304             - 'bgpvpn'
305             - 'parser'
306             - 'security_scan'
307             - 'tempest_full_parallel'
308             - 'rally_full'
309             - 'cloudify_ims'
310             - 'cloudify_vrouter'
311             - 'orchestra_openims'
312             - 'orchestra_clearwaterims'
313           default: 'connection_check'
314       - choice:
315           name: FUNCTEST_TIER
316           choices:
317             - 'healthcheck'
318             - 'smoke'
319             - 'features'
320             - 'components'
321             - 'vnf'
322           default: 'healthcheck'
323       - string:
324           name: TESTCASE_OPTIONS
325           default: ''
326           description: 'Additional parameters specific to test case(s)'
327
328 - parameter:
329     name: functest-parameter
330     parameters:
331       - string:
332           name: GS_PATHNAME
333           default: '{gs-pathname}'
334           description: "Version directory where the opnfv documents will be stored in gs repository"
335       - string:
336           name: FUNCTEST_REPO_DIR
337           default: "/home/opnfv/repos/functest"
338           description: "Directory where the Functest repository is cloned"
339       - string:
340           name: PUSH_RESULTS_TO_DB
341           default: "true"
342           description: "Push the results of all the tests to the resultDB"
343       - string:
344           name: CI_DEBUG
345           default: 'false'
346           description: "Show debug output information"
347       - string:
348           name: RC_FILE_PATH
349           default: ''
350           description: "Path to the OS credentials file if given"
351 ########################
352 # trigger macros
353 ########################
354 - trigger:
355     name: 'functest-master'
356     triggers:
357       - pollscm:
358           cron: "H 9 * * *"
359 ########################
360 # builder macros
361 ########################
362 - builder:
363     name: functest-daily-builder
364     builders:
365       - 'functest-cleanup'
366       - 'functest-daily'
367       - 'functest-store-results'
368       - 'functest-exit'
369
370 - builder:
371     name: functest-arm-daily-builder
372     builders:
373       - 'functest-cleanup'
374       - 'functest-arm-daily'
375       - 'functest-store-results'
376       - 'functest-exit'
377
378 - builder:
379     name: functest-suite-builder
380     builders:
381       - 'functest-cleanup'
382       - 'functest-daily'
383       - 'functest-store-results'
384       - 'functest-exit'
385
386 - builder:
387     name: functest-daily
388     builders:
389       # yamllint disable rule:indentation
390       - conditional-step:
391           condition-kind: regex-match
392           regex: "os-.*"
393           label: '$DEPLOY_SCENARIO'
394           steps:
395             - shell:
396                 !include-raw:
397                     - ./functest-env-presetup.sh
398                     - ../../utils/fetch_os_creds.sh
399                     - ./functest-alpine.sh
400       - conditional-step:
401           condition-kind: regex-match
402           regex: "k8-.*"
403           label: '$DEPLOY_SCENARIO'
404           steps:
405             - shell:
406                 !include-raw:
407                     - ../../utils/fetch_k8_conf.sh
408                     - ./functest-k8.sh
409
410 # yamllint enable rule:indentation
411 - builder:
412     name: functest-arm-daily
413     builders:
414       # yamllint disable rule:indentation
415       - shell:
416           !include-raw:
417               - ./functest-env-presetup.sh
418               - ../../utils/fetch_os_creds.sh
419               - ./functest-alpine.sh
420
421 # yamllint enable rule:indentation
422 - builder:
423     name: functest-store-results
424     builders:
425       - shell:
426           !include-raw: ../../utils/push-test-logs.sh
427
428 - builder:
429     name: functest-cleanup
430     builders:
431       - shell:
432           !include-raw: ./functest-cleanup.sh
433
434 - builder:
435     name: functest-exit
436     builders:
437       - shell:
438           !include-raw: ./functest-exit.sh