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