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