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