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