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