Fix a typo which runs all jobs in parallel
[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       disabled: false
18     euphrates: &euphrates
19       stream: euphrates
20       branch: 'stable/{stream}'
21       gs-pathname: '/{stream}'
22       disabled: false
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       - zte-pod9:
187           slave-label: '{pod}'
188           installer: daisy
189           <<: *master
190     # -------------------------------
191     # PODs for verify jobs triggered by each patch upload
192     #   - ool-virtual1:
193     #       slave-label: '{pod}'
194     #       installer: apex
195     #       <<: *master
196     # -------------------------------
197
198     functest-tier:
199       - 'healthcheck':
200           job-timeout: 20
201       - 'smoke':
202           job-timeout: 180
203       - 'components':
204           job-timeout: 240
205       - 'patrole':
206           job-timeout: 20
207       - 'vnf':
208           job-timeout: 240
209       - 'parser':
210           job-timeout: 20
211
212     features-suite:
213       - 'doctor-notification'
214       - 'promise'
215       - 'bgpvpn'
216       - 'functest-odl-sfc'
217       - 'domino-multinode'
218       - 'fds'
219       - 'barometercollectd'
220
221     exclude:
222       - features-suite: 'promise'
223         stream: 'master'
224       - features-suite: 'domino-multinode'
225         stream: 'master'
226       - features-suite: 'fds'
227         stream: 'euphrates'
228
229     build-job-settings: &build-job-settings
230       current-parameter: false
231       git-revision: true
232       node-parameters: false
233       kill-phase-on: FAILURE
234       abort-all-jobs: false
235       predefined-parameters: |
236         FUNCTEST_MODE=$FUNCTEST_MODE
237         FUNCTEST_TIER=$FUNCTEST_TIER
238
239     features-job-settings: &features-job-settings
240       current-parameter: false
241       git-revision: true
242       node-parameters: false
243       kill-phase-on: FAILURE
244       abort-all-jobs: false
245       predefined-parameters: |
246         FUNCTEST_MODE=$FUNCTEST_MODE
247         FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME
248
249     jobs:
250       - 'functest-{installer}-{pod}-suite-{stream}'
251       - 'functest-{installer}-{pod}-daily-{stream}'
252       - 'functest-{installer}-{pod}-daily-{functest-tier}-{stream}'
253       - 'functest-{installer}-{pod}-daily-features-{features-suite}-{stream}'
254 ################################
255 # job template
256 ################################
257 - job-template:
258
259     name: 'functest-{installer}-{pod}-daily-{stream}'
260
261     project-type: multijob
262
263     disabled: '{obj:disabled}'
264
265     parameters:
266       - project-parameter:
267           project: '{project}'
268           branch: '{branch}'
269       - '{installer}-defaults'
270       - '{slave-label}-defaults'
271       - functest-parameter:
272           gs-pathname: '{gs-pathname}'
273
274     builders:
275       - multijob:
276           name: 'Run functest tests'
277           execution-type: SEQUENTIALLY
278           projects:
279             - name: 'functest-{installer}-{pod}-daily-healthcheck-{stream}'
280               <<: *build-job-settings
281             - name: 'functest-{installer}-{pod}-daily-smoke-{stream}'
282               <<: *build-job-settings
283             - name: 'functest-{installer}-{pod}-daily-patrole-{stream}'
284               <<: *build-job-settings
285             - name: 'functest-{installer}-{pod}-daily-vnf-{stream}'
286               <<: *build-job-settings
287             - name: 'functest-{installer}-{pod}-daily-features-doctor-notification-{stream}'
288               <<: *features-job-settings
289             - name: 'functest-{installer}-{pod}-daily-features-bgpvpn-{stream}'
290               <<: *features-job-settings
291             - name: 'functest-{installer}-{pod}-daily-features-functest-odl-sfc-{stream}'
292               <<: *features-job-settings
293             - name: 'functest-{installer}-{pod}-daily-features-barometercollectd-{stream}'
294               <<: *features-job-settings
295             - name: 'functest-{installer}-{pod}-daily-features-fds-{stream}'
296               <<: *features-job-settings
297             - name: 'functest-{installer}-{pod}-daily-features-promise-{stream}'
298               <<: *features-job-settings
299             - name: 'functest-{installer}-{pod}-daily-features-domino-multinode-{stream}'
300               <<: *features-job-settings
301             - name: 'functest-{installer}-{pod}-daily-parser-{stream}'
302               <<: *build-job-settings
303
304 - job-template: &functest-installer-tier-job
305
306     name: 'functest-{installer}-{pod}-daily-{functest-tier}-{stream}'
307
308     concurrent: true
309
310     properties:
311       - logrotate-default
312       - throttle:
313           enabled: true
314           max-per-node: 1
315           option: 'project'
316
317     wrappers:
318       - build-name:
319           name: '$BUILD_NUMBER Suite: $FUNCTEST_MODE Scenario: $DEPLOY_SCENARIO'
320       - timeout:
321           timeout: '{job-timeout}'
322           abort: true
323
324     parameters:
325       - project-parameter:
326           project: '{project}'
327           branch: '{branch}'
328       - '{installer}-defaults'
329       - '{slave-label}-defaults'
330       - string:
331           name: FUNCTEST_MODE
332           default: 'tier'
333       - string:
334           name: FUNCTEST_TIER
335           default: '{functest-tier}'
336       - string:
337           name: DEPLOY_SCENARIO
338           default: 'os-nosdn-nofeature-noha'
339       - string:
340           name: CLEAN_DOCKER_IMAGES
341           default: 'false'
342           description: 'Remove downloaded docker images (opnfv/functest*:*)'
343       - functest-parameter:
344           gs-pathname: '{gs-pathname}'
345
346     scm:
347       - git-scm
348
349     builders:
350       - description-setter:
351           description: "Built on $NODE_NAME"
352       - 'functest-daily-builder'
353
354     publishers:
355       - 'functest-recipients'
356       - 'fuel-recipients'
357
358 - job-template:
359
360     name: 'functest-{installer}-{pod}-suite-{stream}'
361     <<: *functest-installer-tier-job
362
363     wrappers:
364       - build-name:
365           name: '$BUILD_NUMBER Suite: $FUNCTEST_MODE Scenario: $DEPLOY_SCENARIO'
366       - timeout:
367           timeout: '60'
368           abort: true
369     parameters:
370       - project-parameter:
371           project: '{project}'
372           branch: '{branch}'
373       - '{installer}-defaults'
374       - '{slave-label}-defaults'
375       - 'functest-suite-parameter'
376       - string:
377           name: DEPLOY_SCENARIO
378           default: 'os-nosdn-nofeature-noha'
379       - string:
380           name: CLEAN_DOCKER_IMAGES
381           default: 'false'
382           description: 'Remove downloaded docker images (opnfv/functest*:*)'
383       - functest-parameter:
384           gs-pathname: '{gs-pathname}'
385
386     builders:
387       - description-setter:
388           description: "Built on $NODE_NAME"
389       - 'functest-suite-builder'
390
391 - job-template:
392
393     name: 'functest-{installer}-{pod}-daily-features-{features-suite}-{stream}'
394     concurrent: true
395     properties:
396       - logrotate-default
397       - throttle:
398           enabled: true
399           max-per-node: 1
400           option: 'project'
401     wrappers:
402       - build-name:
403           name: '$BUILD_NUMBER Suite: $FUNCTEST_MODE Scenario: $DEPLOY_SCENARIO'
404
405     parameters:
406       - project-parameter:
407           project: '{project}'
408           branch: '{branch}'
409       - '{installer}-defaults'
410       - '{slave-label}-defaults'
411       - string:
412           name: FUNCTEST_MODE
413           default: 'testcase'
414       - string:
415           name: FUNCTEST_SUITE_NAME
416           default: '{features-suite}'
417       - string:
418           name: DEPLOY_SCENARIO
419           default: 'os-nosdn-nofeature-noha'
420       - string:
421           name: CLEAN_DOCKER_IMAGES
422           default: 'false'
423           description: 'Remove downloaded docker images (opnfv/functest*:*)'
424       - functest-parameter:
425           gs-pathname: '{gs-pathname}'
426
427     scm:
428       - git-scm
429
430     builders:
431       - description-setter:
432           description: "Built on $NODE_NAME"
433       - 'functest-daily-builder'
434
435     publishers:
436       - 'functest-features-recipients'
437       - 'functest-recipients'
438       - 'fuel-recipients'
439
440
441 ########################
442 # parameter macros
443 ########################
444 - parameter:
445     name: functest-daily-parameter
446     parameters:
447       - string:
448           name: FUNCTEST_MODE
449           default: 'daily'
450           description: "Daily suite name to run"
451
452 - parameter:
453     name: functest-suite-parameter
454     parameters:
455       - choice:
456           name: FUNCTEST_MODE
457           choices:
458             - 'tier'
459             - 'testcase'
460           default: 'tier'
461           description: "Test case or Tier to be run"
462       - choice:
463           name: FUNCTEST_SUITE_NAME
464           choices:
465             - 'connection_check'
466             - 'api_check'
467             - 'snaps_health_check'
468             - 'vping_userdata'
469             - 'vping_ssh'
470             - 'tempest_smoke_serial'
471             - 'rally_sanity'
472             - 'odl'
473             - 'odl_netvirt'
474             - 'snaps_smoke'
475             - 'refstack_defcore'
476             - 'patrole'
477             - 'promise'
478             - 'doctor'
479             - 'bgpvpn'
480             - 'parser'
481             - 'security_scan'
482             - 'tempest_full_parallel'
483             - 'rally_full'
484             - 'cloudify_ims'
485             - 'cloudify_vrouter'
486             - 'orchestra_openims'
487             - 'orchestra_clearwaterims'
488           default: 'connection_check'
489       - choice:
490           name: FUNCTEST_TIER
491           choices:
492             - 'healthcheck'
493             - 'smoke'
494             - 'patrole'
495             - 'features'
496             - 'components'
497             - 'vnf'
498             - 'parser'
499           default: 'healthcheck'
500       - string:
501           name: TESTCASE_OPTIONS
502           default: ''
503           description: 'Additional parameters specific to test case(s)'
504
505 - parameter:
506     name: functest-parameter
507     parameters:
508       - string:
509           name: GS_PATHNAME
510           default: '{gs-pathname}'
511           description: "Version directory where the opnfv documents will be stored in gs repository"
512       - string:
513           name: FUNCTEST_REPO_DIR
514           default: "/home/opnfv/repos/functest"
515           description: "Directory where the Functest repository is cloned"
516       - string:
517           name: PUSH_RESULTS_TO_DB
518           default: "true"
519           description: "Push the results of all the tests to the resultDB"
520       - string:
521           name: CI_DEBUG
522           default: 'false'
523           description: "Show debug output information"
524       - string:
525           name: RC_FILE_PATH
526           default: ''
527           description: "Path to the OS credentials file if given"
528 ########################
529 # trigger macros
530 ########################
531 - trigger:
532     name: 'functest-master'
533     triggers:
534       - pollscm:
535           cron: "H 9 * * *"
536 ########################
537 # builder macros
538 ########################
539 - builder:
540     name: functest-daily-builder
541     builders:
542       - 'functest-cleanup'
543       - 'functest-daily'
544       - 'functest-store-results'
545       - 'functest-exit'
546
547 - builder:
548     name: functest-suite-builder
549     builders:
550       - 'functest-cleanup'
551       - 'functest-daily'
552       - 'functest-store-results'
553       - 'functest-exit'
554
555 - builder:
556     name: functest-daily
557     builders:
558       # yamllint disable rule:indentation
559       - conditional-step:
560           condition-kind: regex-match
561           regex: "os-.*"
562           label: '$DEPLOY_SCENARIO'
563           steps:
564             - shell:
565                 !include-raw:
566                     - ./functest-env-presetup.sh
567                     - ../../utils/fetch_os_creds.sh
568                     - ./functest-alpine.sh
569       - conditional-step:
570           condition-kind: regex-match
571           regex: "k8-.*"
572           label: '$DEPLOY_SCENARIO'
573           steps:
574             - shell:
575                 !include-raw:
576                     - ../../utils/fetch_k8_conf.sh
577                     - ./functest-k8.sh
578
579 # yamllint enable rule:indentation
580 - builder:
581     name: functest-store-results
582     builders:
583       - shell:
584           !include-raw: ../../utils/push-test-logs.sh
585
586 - builder:
587     name: functest-cleanup
588     builders:
589       - shell:
590           !include-raw: ./functest-cleanup.sh
591
592 - builder:
593     name: functest-exit
594     builders:
595       - shell:
596           !include-raw: ./functest-exit.sh
597
598
599 - publisher:
600     name: 'functest-features-recipients'
601     publishers:
602       - email:
603           recipients:
604
605 - publisher:
606     name: 'functest-recipients'
607     publishers:
608       - email:
609           recipients: >
610             jalausuch@suse.com morgan.richomme@orange.com
611             cedric.ollivier@orange.com feng.xiaowei@zte.com.cn
612             juha.kosonen@nokia.com wangwulin@huawei.com
613             delia.popescu@enea.com cristina.pauna@enea.com
614             valentin.boucher@kontron.com
615       - email-jenkins-admins-on-failure
616
617 - publisher:
618     name: 'fuel-recipients'
619     publishers:
620       - email:
621           recipients: >
622             peter.barabas@ericsson.com mpolenchuck@mirantis.com
623             alexandru.avadanii@enea.com guillermo.herrero@enea.com