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