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