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