Override the right rally blacklists
[releng.git] / jjb / functest / functest.yaml
1 ---
2 - functest-jobs: &functest-jobs
3     name: 'functest-jobs'
4     current-parameters: true
5
6 - functest-params: &functest-params
7     name: 'functest-params'
8     repo: 'opnfv'
9     port:
10     tag:
11       - latest:
12           branch: master
13           slave: lf-virtual9
14       - iruya:
15           branch: stable/iruya
16           slave: lf-virtual4
17       - hunter:
18           branch: stable/hunter
19           slave: lf-virtual6
20
21 - parameter:
22     name: functest-slave
23     parameters:
24       - label:
25           name: slave
26           default: '{slave}'
27
28 - parameter:
29     name: functest-branch
30     parameters:
31       - string:
32           name: branch
33           default: '{branch}'
34
35 - functest-containers: &functest-containers
36     name: 'functest-containers'
37     repo: '{repo}'
38     port: '{port}'
39     container: '{container}'
40     tag: '{tag}'
41
42 - functest-run-containers: &functest-run-containers
43     name: 'functest-build-containers'
44     <<: *functest-containers
45     test: '{test}'
46
47 - functest-build-containers: &functest-build-containers
48     name: 'functest-build-containers'
49     <<: *functest-containers
50     ref_arg: '{ref_arg}'
51     path: '{path}'
52
53 - builder:
54     name: functest-pull-containers
55     builders:
56       - shell: |
57           set +x
58           if [ "{repo}" = "_" ]; then
59             image={container}:{tag}
60           elif [ "{port}" = "None" ]; then
61             image={repo}/{container}:{tag}
62           else
63             image={repo}:{port}/{container}:{tag}
64           fi
65           sudo docker pull $image
66
67 - builder:
68     name: functest-build-containers
69     builders:
70       - shell: |
71           set +x
72           if [ "{repo}" = "_" ]; then
73             image={container}:{tag}
74           elif [ "{port}" = "None" ]; then
75             image={repo}/{container}:{tag}
76           else
77             image={repo}:{port}/{container}:{tag}
78           fi
79           if [ "{ref_arg}" = "None" ]; then
80             build_arg=""
81           else
82             build_arg="--build-arg {ref_arg}={ref}"
83           fi
84           cd {path}
85           sudo docker build $build_arg \
86             --pull=false --no-cache --force-rm=true \
87             -t $image .
88
89 - builder:
90     name: functest-run-containers
91     builders:
92       - shell: |
93           set +ex
94           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true
95           if [ "{repo}" = "_" ]; then
96             image={container}:{tag}
97           elif [ "{port}" = "None" ]; then
98             image={repo}/{container}:{tag}
99           else
100             image={repo}:{port}/{container}:{tag}
101           fi
102           if [ "{tag}" = "latest" ]; then
103             py=3.6
104           else
105             py=2.7
106           fi
107           sudo docker run --rm \
108             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
109             -e DEBUG=True \
110             -e EXTERNAL_NETWORK=public \
111             -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \
112             -v /home/opnfv/functest/images:/home/opnfv/functest/images \
113             -v /home/opnfv/functest/blacklist.yaml:/usr/lib/python$py/\
114           site-packages/functest/opnfv_tests/openstack/rally/blacklist.yaml \
115             $image run_tests -t {test}
116           res=$?
117           gsutil -m cp -r $WORKSPACE/ \
118             gs://artifacts.opnfv.org/functest/$JOB_NAME-$BUILD_ID > /dev/null 2>&1
119           find $WORKSPACE -type f \
120             -printf \
121             "http://artifacts.opnfv.org/functest/$JOB_NAME-$BUILD_ID/%P\n"
122           exit $res
123
124 - builder:
125     name: functest-remove-images
126     builders:
127       - shell: |
128           set +x
129           if [ "{repo}" = "_" ]; then
130             image={container}:{tag}
131           elif [ "{port}" = "None" ]; then
132             image={repo}/{container}:{tag}
133           else
134             image={repo}:{port}/{container}:{tag}
135           fi
136           sudo docker rmi $image || true
137
138 - scm:
139     name: functest-scm
140     scm:
141       - git:
142           url: https://gerrit.opnfv.org/gerrit/functest
143           refspec: '+refs/changes/*:refs/changes/*'
144           branches:
145             - '{ref}'
146
147 - job-template:
148     name: 'functest-{repo}-{container}-{tag}-pull'
149     parameters:
150       - functest-slave:
151           slave: '{slave}'
152     builders:
153       - functest-pull-containers:
154           <<: *functest-containers
155
156 - project:
157     name: 'functest-opnfv-functest-healthcheck-pull'
158     <<: *functest-params
159     container: 'functest-healthcheck'
160     jobs:
161       - 'functest-{repo}-{container}-{tag}-pull'
162
163 - project:
164     name: 'functest-opnfv-functest-smoke-pull'
165     <<: *functest-params
166     container: 'functest-smoke'
167     jobs:
168       - 'functest-{repo}-{container}-{tag}-pull'
169
170 - project:
171     name: 'functest-opnfv-functest-benchmarking-pull'
172     <<: *functest-params
173     container: 'functest-benchmarking'
174     jobs:
175       - 'functest-{repo}-{container}-{tag}-pull'
176
177 - project:
178     name: 'functest-opnfv-functest-vnf-pull'
179     <<: *functest-params
180     container: 'functest-vnf'
181     jobs:
182       - 'functest-{repo}-{container}-{tag}-pull'
183
184 - project:
185     name: 'functest-opnfv-functest-features-pull'
186     <<: *functest-params
187     container: 'functest-features'
188     jobs:
189       - 'functest-{repo}-{container}-{tag}-pull'
190
191 - job-template:
192     name: 'functest-{repo}-{container}-{tag}-rmi'
193     parameters:
194       - functest-slave:
195           slave: '{slave}'
196     builders:
197       - functest-remove-images:
198           <<: *functest-containers
199
200 - project:
201     name: 'functest-opnfv-functest-healthcheck-rmi'
202     <<: *functest-params
203     container: 'functest-healthcheck'
204     jobs:
205       - 'functest-{repo}-{container}-{tag}-rmi'
206
207 - project:
208     name: 'functest-opnfv-functest-smoke-rmi'
209     <<: *functest-params
210     container: 'functest-smoke'
211     jobs:
212       - 'functest-{repo}-{container}-{tag}-rmi'
213
214 - project:
215     name: 'functest-opnfv-functest-benchmarking-rmi'
216     <<: *functest-params
217     container: 'functest-benchmarking'
218     jobs:
219       - 'functest-{repo}-{container}-{tag}-rmi'
220
221 - project:
222     name: 'functest-opnfv-functest-vnf-rmi'
223     <<: *functest-params
224     container: 'functest-vnf'
225     jobs:
226       - 'functest-{repo}-{container}-{tag}-rmi'
227
228 - project:
229     name: 'functest-opnfv-functest-features-rmi'
230     <<: *functest-params
231     container: 'functest-features'
232     jobs:
233       - 'functest-{repo}-{container}-{tag}-rmi'
234
235 - job-template:
236     name: 'functest-{repo}-{container}-{tag}-{test}-run'
237     parameters:
238       - functest-slave:
239           slave: '{slave}'
240     builders:
241       - functest-run-containers:
242           <<: *functest-run-containers
243
244 - project:
245     name: 'functest-opnfv-functest-healthcheck'
246     <<: *functest-params
247     container: 'functest-healthcheck'
248     test:
249       - connection_check
250       - tenantnetwork1
251       - tenantnetwork2
252       - vmready1
253       - vmready2
254       - singlevm1
255       - singlevm2
256       - vping_ssh
257       - vping_userdata
258       - cinder_test
259       - odl
260       - tempest_smoke
261     jobs:
262       - 'functest-{repo}-{container}-{tag}-{test}-run'
263
264 - project:
265     name: 'functest-opnfv-functest-smoke'
266     <<: *functest-params
267     container: 'functest-smoke'
268     test:
269       - neutron-tempest-plugin-api
270       - rally_sanity
271       - refstack_defcore
272       - refstack_compute
273       - refstack_object
274       - refstack_platform
275       - tempest_full
276       - tempest_scenario
277       - patrole
278       - neutron_trunk
279       - networking-bgpvpn
280       - networking-sfc
281       - barbican
282     exclude:
283       - tag: latest
284         test: refstack_defcore
285       - tag: iruya
286         test: refstack_defcore
287       - tag: hunter
288         test: refstack_compute
289       - tag: hunter
290         test: refstack_object
291       - tag: hunter
292         test: refstack_platform
293     jobs:
294       - 'functest-{repo}-{container}-{tag}-{test}-run'
295
296 - project:
297     name: 'functest-opnfv-functest-benchmarking'
298     <<: *functest-params
299     container: 'functest-benchmarking'
300     test:
301       - rally_full
302       - rally_jobs
303       - vmtp
304       - shaker
305     jobs:
306       - 'functest-{repo}-{container}-{tag}-{test}-run'
307
308 - project:
309     name: 'functest-opnfv-functest-vnf'
310     <<: *functest-params
311     container: 'functest-vnf'
312     test:
313       - cloudify
314       - cloudify_ims
315       - heat_ims
316       - vyos_vrouter
317       - juju_epc
318     jobs:
319       - 'functest-{repo}-{container}-{tag}-{test}-run'
320
321 - project:
322     name: 'functest-opnfv-functest-features'
323     <<: *functest-params
324     container: 'functest-features'
325     test:
326       - doctor-notification
327       - functest-odl-sfc
328       - barometercollectd
329       - vgpu
330       - stor4nfv_os
331     jobs:
332       - 'functest-{repo}-{container}-{tag}-{test}-run'
333
334 - job-template:
335     name: 'functest-{tag}-daily'
336     project-type: multijob
337     triggers:
338       - timed: '@daily'
339     parameters:
340       - functest-slave:
341           slave: '{slave}'
342     properties:
343       - build-blocker:
344           use-build-blocker: true
345           blocking-level: 'NODE'
346           blocking-jobs:
347             - '^functest-{tag}-(daily|check|gate)$'
348     builders:
349       - multijob:
350           name: remove former images
351           projects:
352             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
353               <<: *functest-jobs
354             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
355               <<: *functest-jobs
356             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
357               <<: *functest-jobs
358             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
359               <<: *functest-jobs
360             - name: 'functest-opnfv-functest-features-{tag}-rmi'
361               <<: *functest-jobs
362       - multijob:
363           name: pull containers
364           projects:
365             - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
366               <<: *functest-jobs
367             - name: 'functest-opnfv-functest-smoke-{tag}-pull'
368               <<: *functest-jobs
369             - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
370               <<: *functest-jobs
371             - name: 'functest-opnfv-functest-vnf-{tag}-pull'
372               <<: *functest-jobs
373             - name: 'functest-opnfv-functest-features-{tag}-pull'
374               <<: *functest-jobs
375       - multijob:
376           name: opnfv/functest-healthcheck:{tag}
377           execution-type: PARALLEL
378           condition: ALWAYS
379           projects:
380             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
381               <<: *functest-jobs
382             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
383               <<: *functest-jobs
384             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
385               <<: *functest-jobs
386             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
387               <<: *functest-jobs
388             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
389               <<: *functest-jobs
390             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
391               <<: *functest-jobs
392             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
393               <<: *functest-jobs
394             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
395               <<: *functest-jobs
396             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
397               <<: *functest-jobs
398             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
399               <<: *functest-jobs
400             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
401               <<: *functest-jobs
402             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
403               <<: *functest-jobs
404       - multijob:
405           name: opnfv/functest-smoke:{tag}
406           execution-type: PARALLEL
407           condition: SUCCESSFUL
408           projects:
409             - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
410               <<: *functest-jobs
411             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
412               <<: *functest-jobs
413             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
414               <<: *functest-jobs
415             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
416               <<: *functest-jobs
417             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
418               <<: *functest-jobs
419             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
420               <<: *functest-jobs
421             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
422               <<: *functest-jobs
423             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
424               <<: *functest-jobs
425             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
426               <<: *functest-jobs
427             - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
428               <<: *functest-jobs
429             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
430               <<: *functest-jobs
431             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
432               <<: *functest-jobs
433             - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
434               <<: *functest-jobs
435       - multijob:
436           name: opnfv/functest-benchmarking:{tag}
437           execution-type: PARALLEL
438           condition: ALWAYS
439           projects:
440             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
441               <<: *functest-jobs
442             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
443               <<: *functest-jobs
444             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
445               <<: *functest-jobs
446             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
447               <<: *functest-jobs
448       - multijob:
449           name: opnfv/functest-vnf:{tag}
450           execution-type: SEQUENTIALLY
451           condition: ALWAYS
452           projects:
453             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
454               <<: *functest-jobs
455             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
456               <<: *functest-jobs
457             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
458               <<: *functest-jobs
459             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
460               <<: *functest-jobs
461             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
462               <<: *functest-jobs
463       - multijob:
464           name: opnfv/functest-features:{tag}
465           execution-type: PARALLEL
466           condition: ALWAYS
467           projects:
468             - name: 'functest-opnfv-functest-features-{tag}-doctor-notification-run'
469               <<: *functest-jobs
470             - name: 'functest-opnfv-functest-features-{tag}-functest-odl-sfc-run'
471               <<: *functest-jobs
472             - name: 'functest-opnfv-functest-features-{tag}-barometercollectd-run'
473               <<: *functest-jobs
474             - name: 'functest-opnfv-functest-features-{tag}-vgpu-run'
475               <<: *functest-jobs
476             - name: 'functest-opnfv-functest-features-{tag}-stor4nfv_os-run'
477               <<: *functest-jobs
478
479 - job-template:
480     name: 'functest-{repo}-{container}-{tag}-gate'
481     parameters:
482       - functest-slave:
483           slave: '{slave}'
484     scm:
485       - functest-scm:
486           ref: $GERRIT_REFSPEC
487     builders:
488       - functest-build-containers:
489           <<: *functest-build-containers
490           ref: $GERRIT_REFSPEC
491
492 - job-template:
493     name: 'functest-{repo}-{container}-{tag}-check'
494     parameters:
495       - functest-slave:
496           slave: '{slave}'
497       - functest-branch:
498           branch: '{branch}'
499     scm:
500       - functest-scm:
501           ref: $branch
502     builders:
503       - functest-build-containers:
504           <<: *functest-build-containers
505           ref: $branch
506
507 - project:
508     name: 'functest-_-alpine-3.9-rmi'
509     repo: _
510     port:
511     container: alpine
512     tag: 3.9
513     slave: master
514     jobs:
515       - 'functest-{repo}-{container}-{tag}-rmi'
516
517 - project:
518     name: 'functest-_-alpine-3.9-pull'
519     repo: _
520     port:
521     container: alpine
522     tag: 3.9
523     slave: master
524     jobs:
525       - 'functest-{repo}-{container}-{tag}-pull'
526
527 - project:
528     name: functest-opnfv-functest-core-{tag}-build
529     <<: *functest-params
530     container: functest-core
531     ref_arg: BRANCH
532     path: docker/core
533     jobs:
534       - 'functest-{repo}-{container}-{tag}-gate'
535       - 'functest-{repo}-{container}-{tag}-check'
536
537 - project:
538     name: functest-opnfv-functest-tempest-{tag}-build
539     <<: *functest-params
540     container: functest-tempest
541     ref_arg: BRANCH
542     path: docker/tempest
543     jobs:
544       - 'functest-{repo}-{container}-{tag}-gate'
545       - 'functest-{repo}-{container}-{tag}-check'
546
547 - project:
548     name: functest-opnfv-functest-healthcheck-{tag}-build
549     <<: *functest-params
550     container: functest-healthcheck
551     ref_arg: BRANCH
552     path: docker/healthcheck
553     jobs:
554       - 'functest-{repo}-{container}-{tag}-gate'
555       - 'functest-{repo}-{container}-{tag}-check'
556
557 - project:
558     name: functest-opnfv-functest-smoke-{tag}-build
559     <<: *functest-params
560     container: functest-smoke
561     ref_arg: BRANCH
562     path: docker/smoke
563     jobs:
564       - 'functest-{repo}-{container}-{tag}-gate'
565       - 'functest-{repo}-{container}-{tag}-check'
566
567 - project:
568     name: functest-opnfv-functest-benchmarking-{tag}-build
569     <<: *functest-params
570     container: functest-benchmarking
571     ref_arg: BRANCH
572     path: docker/benchmarking
573     jobs:
574       - 'functest-{repo}-{container}-{tag}-gate'
575       - 'functest-{repo}-{container}-{tag}-check'
576
577 - project:
578     name: functest-opnfv-functest-vnf-{tag}-build
579     <<: *functest-params
580     container: functest-vnf
581     ref_arg:
582     path: docker/vnf
583     jobs:
584       - 'functest-{repo}-{container}-{tag}-gate'
585       - 'functest-{repo}-{container}-{tag}-check'
586
587 - project:
588     name: functest-opnfv-functest-features-{tag}-build
589     <<: *functest-params
590     container: functest-features
591     ref_arg: BRANCH
592     path: docker/features
593     jobs:
594       - 'functest-{repo}-{container}-{tag}-gate'
595       - 'functest-{repo}-{container}-{tag}-check'
596
597 - job-template:
598     name: 'functest-{tag}-check'
599     project-type: multijob
600     parameters:
601       - functest-slave:
602           slave: '{slave}'
603       - functest-branch:
604           branch: '{branch}'
605     properties:
606       - build-blocker:
607           use-build-blocker: true
608           blocking-level: 'NODE'
609           blocking-jobs:
610             - '^functest-{tag}-(daily|check|gate)$'
611     builders:
612       - multijob:
613           name: remove former images
614           projects:
615             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
616               <<: *functest-jobs
617             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
618               <<: *functest-jobs
619             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
620               <<: *functest-jobs
621             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
622               <<: *functest-jobs
623             - name: 'functest-opnfv-functest-features-{tag}-rmi'
624               <<: *functest-jobs
625       - multijob:
626           name: remove dependencies
627           projects:
628             - name: 'functest-_-alpine-3.9-rmi'
629               <<: *functest-jobs
630       - multijob:
631           name: pull dependencies
632           projects:
633             - name: 'functest-_-alpine-3.9-pull'
634               <<: *functest-jobs
635       - multijob:
636           name: build opnfv/functest-core
637           projects:
638             - name: 'functest-opnfv-functest-core-{tag}-check'
639               <<: *functest-jobs
640       - multijob:
641           name: build opnfv/functest-tempest
642           projects:
643             - name: 'functest-opnfv-functest-tempest-{tag}-check'
644               <<: *functest-jobs
645       - multijob:
646           name: build containers
647           projects:
648             - name: 'functest-opnfv-functest-healthcheck-{tag}-check'
649               <<: *functest-jobs
650             - name: 'functest-opnfv-functest-smoke-{tag}-check'
651               <<: *functest-jobs
652             - name: 'functest-opnfv-functest-benchmarking-{tag}-check'
653               <<: *functest-jobs
654             - name: 'functest-opnfv-functest-vnf-{tag}-check'
655               <<: *functest-jobs
656             - name: 'functest-opnfv-functest-features-{tag}-check'
657               <<: *functest-jobs
658       - multijob:
659           name: opnfv/functest-healthcheck:{tag}
660           execution-type: PARALLEL
661           condition: ALWAYS
662           projects:
663             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
664               <<: *functest-jobs
665             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
666               <<: *functest-jobs
667             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
668               <<: *functest-jobs
669             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
670               <<: *functest-jobs
671             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
672               <<: *functest-jobs
673             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
674               <<: *functest-jobs
675             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
676               <<: *functest-jobs
677             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
678               <<: *functest-jobs
679             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
680               <<: *functest-jobs
681             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
682               <<: *functest-jobs
683             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
684               <<: *functest-jobs
685             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
686               <<: *functest-jobs
687       - multijob:
688           name: opnfv/functest-smoke:{tag}
689           execution-type: PARALLEL
690           condition: SUCCESSFUL
691           projects:
692             - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
693               <<: *functest-jobs
694             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
695               <<: *functest-jobs
696             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
697               <<: *functest-jobs
698             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
699               <<: *functest-jobs
700             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
701               <<: *functest-jobs
702             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
703               <<: *functest-jobs
704             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
705               <<: *functest-jobs
706             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
707               <<: *functest-jobs
708             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
709               <<: *functest-jobs
710             - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
711               <<: *functest-jobs
712             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
713               <<: *functest-jobs
714             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
715               <<: *functest-jobs
716             - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
717               <<: *functest-jobs
718       - multijob:
719           name: opnfv/functest-benchmarking:{tag}
720           execution-type: PARALLEL
721           condition: ALWAYS
722           projects:
723             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
724               <<: *functest-jobs
725             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
726               <<: *functest-jobs
727             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
728               <<: *functest-jobs
729             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
730               <<: *functest-jobs
731       - multijob:
732           name: opnfv/functest-vnf:{tag}
733           execution-type: SEQUENTIALLY
734           condition: ALWAYS
735           projects:
736             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
737               <<: *functest-jobs
738             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
739               <<: *functest-jobs
740             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
741               <<: *functest-jobs
742             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
743               <<: *functest-jobs
744             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
745               <<: *functest-jobs
746       - multijob:
747           name: opnfv/functest-features:{tag}
748           execution-type: PARALLEL
749           condition: ALWAYS
750           projects:
751             - name: 'functest-opnfv-functest-features-{tag}-doctor-notification-run'
752               <<: *functest-jobs
753             - name: 'functest-opnfv-functest-features-{tag}-functest-odl-sfc-run'
754               <<: *functest-jobs
755             - name: 'functest-opnfv-functest-features-{tag}-barometercollectd-run'
756               <<: *functest-jobs
757             - name: 'functest-opnfv-functest-features-{tag}-vgpu-run'
758               <<: *functest-jobs
759             - name: 'functest-opnfv-functest-features-{tag}-stor4nfv_os-run'
760               <<: *functest-jobs
761
762 - trigger:
763     name: functest-patchset-created
764     triggers:
765       - gerrit:
766           server-name: 'gerrit.opnfv.org'
767           trigger-on:
768             - patchset-created-event
769             - comment-added-contains-event:
770                 comment-contains-value: 'recheck'
771             - comment-added-contains-event:
772                 comment-contains-value: 'reverify'
773           projects:
774             - project-compare-type: 'ANT'
775               project-pattern: 'functest'
776               branches:
777                 - branch-compare-type: 'ANT'
778                   branch-pattern: '**/{branch}'
779           skip-vote:
780             successful: false
781             failed: false
782             unstable: false
783             notbuilt: false
784
785 - job-template:
786     name: 'functest-{tag}-gate'
787     project-type: multijob
788     triggers:
789       - functest-patchset-created:
790           branch: '{branch}'
791     parameters:
792       - functest-slave:
793           slave: '{slave}'
794     properties:
795       - build-blocker:
796           use-build-blocker: true
797           blocking-level: 'NODE'
798           blocking-jobs:
799             - '^functest-{tag}-(daily|check|gate)$'
800     builders:
801       - multijob:
802           name: remove former images
803           projects:
804             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
805               <<: *functest-jobs
806             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
807               <<: *functest-jobs
808             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
809               <<: *functest-jobs
810             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
811               <<: *functest-jobs
812             - name: 'functest-opnfv-functest-features-{tag}-rmi'
813               <<: *functest-jobs
814       - multijob:
815           name: remove dependencies
816           projects:
817             - name: 'functest-_-alpine-3.9-rmi'
818               <<: *functest-jobs
819       - multijob:
820           name: pull dependencies
821           projects:
822             - name: 'functest-_-alpine-3.9-pull'
823               <<: *functest-jobs
824       - multijob:
825           name: build opnfv/functest-core
826           projects:
827             - name: 'functest-opnfv-functest-core-{tag}-gate'
828               <<: *functest-jobs
829       - multijob:
830           name: build opnfv/functest-tempest
831           projects:
832             - name: 'functest-opnfv-functest-tempest-{tag}-gate'
833               <<: *functest-jobs
834       - multijob:
835           name: build containers
836           projects:
837             - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
838               <<: *functest-jobs
839             - name: 'functest-opnfv-functest-smoke-{tag}-gate'
840               <<: *functest-jobs
841             - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
842               <<: *functest-jobs
843             - name: 'functest-opnfv-functest-vnf-{tag}-gate'
844               <<: *functest-jobs
845             - name: 'functest-opnfv-functest-features-{tag}-gate'
846               <<: *functest-jobs
847       - multijob:
848           name: opnfv/functest-healthcheck:{tag}
849           execution-type: PARALLEL
850           condition: ALWAYS
851           projects:
852             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
853               <<: *functest-jobs
854             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
855               <<: *functest-jobs
856             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
857               <<: *functest-jobs
858             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
859               <<: *functest-jobs
860             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
861               <<: *functest-jobs
862             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
863               <<: *functest-jobs
864             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
865               <<: *functest-jobs
866             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
867               <<: *functest-jobs
868             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
869               <<: *functest-jobs
870             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
871               <<: *functest-jobs
872             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
873               <<: *functest-jobs
874             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
875               <<: *functest-jobs
876       - multijob:
877           name: opnfv/functest-smoke:{tag}
878           execution-type: PARALLEL
879           condition: SUCCESSFUL
880           projects:
881             - name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
882               <<: *functest-jobs
883             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
884               <<: *functest-jobs
885             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
886               <<: *functest-jobs
887             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
888               <<: *functest-jobs
889             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
890               <<: *functest-jobs
891             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
892               <<: *functest-jobs
893             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
894               <<: *functest-jobs
895             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
896               <<: *functest-jobs
897             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
898               <<: *functest-jobs
899             - name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
900               <<: *functest-jobs
901             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
902               <<: *functest-jobs
903             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
904               <<: *functest-jobs
905             - name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
906               <<: *functest-jobs
907       - multijob:
908           name: opnfv/functest-benchmarking:{tag}
909           execution-type: PARALLEL
910           condition: ALWAYS
911           projects:
912             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
913               <<: *functest-jobs
914             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
915               <<: *functest-jobs
916             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
917               <<: *functest-jobs
918             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
919               <<: *functest-jobs
920       - multijob:
921           name: opnfv/functest-vnf:{tag}
922           execution-type: SEQUENTIALLY
923           condition: ALWAYS
924           projects:
925             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
926               <<: *functest-jobs
927             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
928               <<: *functest-jobs
929             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
930               <<: *functest-jobs
931             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
932               <<: *functest-jobs
933             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
934               <<: *functest-jobs
935       - multijob:
936           name: opnfv/functest-features:{tag}
937           execution-type: PARALLEL
938           condition: ALWAYS
939           projects:
940             - name: 'functest-opnfv-functest-features-{tag}-doctor-notification-run'
941               <<: *functest-jobs
942             - name: 'functest-opnfv-functest-features-{tag}-functest-odl-sfc-run'
943               <<: *functest-jobs
944             - name: 'functest-opnfv-functest-features-{tag}-barometercollectd-run'
945               <<: *functest-jobs
946             - name: 'functest-opnfv-functest-features-{tag}-vgpu-run'
947               <<: *functest-jobs
948             - name: 'functest-opnfv-functest-features-{tag}-stor4nfv_os-run'
949               <<: *functest-jobs
950
951 - project:
952     name: 'functest'
953     <<: *functest-params
954     jobs:
955       - 'functest-{tag}-daily'
956       - 'functest-{tag}-check'
957       - 'functest-{tag}-gate'
958
959 - view:
960     name: functest
961     view-type: list
962     columns:
963       - status
964       - weather
965       - job
966       - last-success
967       - last-failure
968       - last-duration
969     regex: ^functest-[a-z]+-(daily|check|gate)$