9d4768c185382fb0858a40e8ce0bfec955ef3579
[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           dependency: 3.13
16       - leguer:
17           branch: stable/leguer
18           slave: lf-virtual9
19           dashboard_url: http://172.30.13.94
20           dependency: 3.12
21       - kali:
22           branch: stable/kali
23           slave: lf-pod4-3
24           dashboard_url: http://172.30.12.88
25           dependency: 3.11
26       - jerma:
27           branch: stable/jerma
28           slave: lf-pod4
29           dashboard_url: http://172.30.12.83
30           dependency: 3.10
31       - iruya:
32           branch: stable/iruya
33           slave: lf-virtual4
34           dashboard_url: http://172.30.13.89
35           dependency: 3.9
36       - hunter:
37           branch: stable/hunter
38           slave: lf-virtual6
39           dashboard_url: http://172.30.13.91
40           dependency: 3.9
41
42 - parameter:
43     name: functest-slave
44     parameters:
45       - label:
46           name: slave
47           default: '{slave}'
48
49 - parameter:
50     name: functest-build_tag
51     parameters:
52       - random-string:
53           name: build_tag
54
55 - parameter:
56     name: functest-EXTERNAL_NETWORK
57     parameters:
58       - string:
59           name: EXTERNAL_NETWORK
60           default: public
61 - parameter:
62     name: functest-VOLUME_DEVICE_NAME
63     parameters:
64       - string:
65           name: VOLUME_DEVICE_NAME
66           default: sdb
67 - parameter:
68     name: functest-IMAGE_PROPERTIES
69     parameters:
70       - string:
71           name: IMAGE_PROPERTIES
72           default: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
73
74 - functest-containers: &functest-containers
75     name: 'functest-containers'
76     repo: '{repo}'
77     port: '{port}'
78     container: '{container}'
79     tag: '{tag}'
80
81 - functest-run-containers: &functest-run-containers
82     name: 'functest-run-containers'
83     <<: *functest-containers
84     test: '{test}'
85     privileged: '{privileged}'
86     network: '{network}'
87
88 - builder:
89     name: functest-pull-containers
90     builders:
91       - shell: |
92           set +x
93           if [ "{repo}" = "_" ]; then
94             image={container}:{tag}
95           elif [ "{port}" = "None" ]; then
96             image={repo}/{container}:{tag}
97           else
98             image={repo}:{port}/{container}:{tag}
99           fi
100           sudo docker pull $image
101
102 - builder:
103     name: functest-run-containers
104     builders:
105       - shell: |
106           set +x
107           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
108           if [ "{repo}" = "_" ]; then
109             image={container}:{tag}
110           elif [ "{port}" = "None" ]; then
111             image={repo}/{container}:{tag}
112           else
113             image={repo}:{port}/{container}:{tag}
114           fi
115           sudo docker run --rm \
116             --privileged={privileged} \
117             --network={network} \
118             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
119             -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
120             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
121             -v /home/opnfv/functest/.boto:/root/.boto \
122             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
123             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
124             -e NODE_NAME=$slave \
125             -e BUILD_TAG=$BUILD_TAG \
126             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
127             -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \
128             -e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \
129             -e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \
130             -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \
131             -v /home/opnfv/functest/images:/home/opnfv/functest/images \
132             $image run_tests -t {test} -p -r
133
134 - builder:
135     name: functest-remove-images
136     builders:
137       - shell: |
138           set +x
139           if [ "{repo}" = "_" ]; then
140             image={container}:{tag}
141           elif [ "{port}" = "None" ]; then
142             image={repo}/{container}:{tag}
143           else
144             image={repo}:{port}/{container}:{tag}
145           fi
146           sudo docker rmi $image || true
147
148 - functest-build-containers: &functest-build-containers
149     name: 'functest-build-containers'
150     <<: *functest-containers
151     ref_arg: '{ref_arg}'
152     path: '{path}'
153
154 - builder:
155     name: functest-build-containers
156     builders:
157       - shell: |
158           set +x
159           if [ "{repo}" = "_" ]; then
160             image={container}:{tag}
161           elif [ "{port}" = "None" ]; then
162             image={repo}/{container}:{tag}
163           else
164             image={repo}:{port}/{container}:{tag}
165           fi
166           if [ "{ref_arg}" = "None" ]; then
167             build_arg=""
168           else
169             build_arg="--build-arg {ref_arg}={ref}"
170           fi
171           cd {path}
172           sudo docker build $build_arg \
173             --pull=false --no-cache --force-rm=true \
174             -t $image .
175
176 - scm:
177     name: functest-scm
178     scm:
179       - git:
180           url: 'https://gerrit.opnfv.org/gerrit/functest'
181           refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
182           branches:
183             - '{ref}'
184
185 - job-template:
186     name: 'functest-{repo}-{container}-{tag}-pull'
187     parameters:
188       - functest-slave:
189           slave: '{slave}'
190     builders:
191       - functest-pull-containers:
192           <<: *functest-containers
193
194 - project:
195     name: 'functest-opnfv-functest-healthcheck-pull'
196     <<: *functest-params
197     container: 'functest-healthcheck'
198     jobs:
199       - 'functest-{repo}-{container}-{tag}-pull'
200
201 - project:
202     name: 'functest-opnfv-functest-smoke-pull'
203     <<: *functest-params
204     container: 'functest-smoke'
205     jobs:
206       - 'functest-{repo}-{container}-{tag}-pull'
207
208 - project:
209     name: 'functest-opnfv-functest-smoke-cntt-pull'
210     <<: *functest-params
211     container: 'functest-smoke-cntt'
212     jobs:
213       - 'functest-{repo}-{container}-{tag}-pull'
214
215 - project:
216     name: 'functest-opnfv-functest-benchmarking-pull'
217     <<: *functest-params
218     container: 'functest-benchmarking'
219     jobs:
220       - 'functest-{repo}-{container}-{tag}-pull'
221
222 - project:
223     name: 'functest-opnfv-functest-benchmarking-cntt-pull'
224     <<: *functest-params
225     container: 'functest-benchmarking-cntt'
226     jobs:
227       - 'functest-{repo}-{container}-{tag}-pull'
228
229 - project:
230     name: 'functest-opnfv-functest-vnf-pull'
231     <<: *functest-params
232     container: 'functest-vnf'
233     jobs:
234       - 'functest-{repo}-{container}-{tag}-pull'
235
236 - job-template:
237     name: 'functest-{repo}-{container}-{tag}-rmi'
238     parameters:
239       - functest-slave:
240           slave: '{slave}'
241     builders:
242       - functest-remove-images:
243           <<: *functest-containers
244
245 - project:
246     name: 'functest-opnfv-functest-healthcheck-rmi'
247     <<: *functest-params
248     container: 'functest-healthcheck'
249     jobs:
250       - 'functest-{repo}-{container}-{tag}-rmi'
251
252 - project:
253     name: 'functest-opnfv-functest-smoke-rmi'
254     <<: *functest-params
255     container: 'functest-smoke'
256     jobs:
257       - 'functest-{repo}-{container}-{tag}-rmi'
258
259 - project:
260     name: 'functest-opnfv-functest-smoke-cntt-rmi'
261     <<: *functest-params
262     container: 'functest-smoke-cntt'
263     jobs:
264       - 'functest-{repo}-{container}-{tag}-rmi'
265
266 - project:
267     name: 'functest-opnfv-functest-benchmarking-rmi'
268     <<: *functest-params
269     container: 'functest-benchmarking'
270     jobs:
271       - 'functest-{repo}-{container}-{tag}-rmi'
272
273 - project:
274     name: 'functest-opnfv-functest-benchmarking-cntt-rmi'
275     <<: *functest-params
276     container: 'functest-benchmarking-cntt'
277     jobs:
278       - 'functest-{repo}-{container}-{tag}-rmi'
279
280 - project:
281     name: 'functest-opnfv-functest-vnf-rmi'
282     <<: *functest-params
283     container: 'functest-vnf'
284     jobs:
285       - 'functest-{repo}-{container}-{tag}-rmi'
286
287 - job-template:
288     name: 'functest-{repo}-{container}-{tag}-{test}-run'
289     parameters:
290       - functest-slave:
291           slave: '{slave}'
292       - functest-build_tag:
293           build_tag: ''
294       - functest-EXTERNAL_NETWORK:
295           EXTERNAL_NETWORK: public
296       - functest-VOLUME_DEVICE_NAME:
297           VOLUME_DEVICE_NAME: sdb
298       - functest-IMAGE_PROPERTIES:
299           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
300     builders:
301       - functest-run-containers:
302           <<: *functest-run-containers
303
304 - project:
305     name: 'functest-opnfv-functest-healthcheck'
306     <<: *functest-params
307     container: 'functest-healthcheck'
308     test:
309       - connection_check
310       - tenantnetwork1
311       - tenantnetwork2
312       - vmready1
313       - vmready2
314       - singlevm1
315       - singlevm2
316       - vping_ssh
317       - vping_userdata
318       - cinder_test
319       - odl
320       - tempest_smoke
321       - tempest_horizon
322     privileged: 'false'
323     network: bridge
324     jobs:
325       - 'functest-{repo}-{container}-{tag}-{test}-run'
326
327 - project:
328     name: 'functest-opnfv-functest-smoke'
329     <<: *functest-params
330     container: 'functest-smoke'
331     test:
332       - tempest_neutron
333       - tempest_cinder
334       - tempest_keystone
335       - tempest_heat
336       - tempest_telemetry
337       - rally_sanity
338       - refstack_defcore
339       - refstack_compute
340       - refstack_object
341       - refstack_platform
342       - tempest_full
343       - tempest_scenario
344       - tempest_slow
345       - patrole
346       - patrole_admin
347       - patrole_member
348       - patrole_reader
349       - networking-bgpvpn
350       - networking-sfc
351       - tempest_barbican
352       - tempest_octavia
353       - tempest_cyborg
354     privileged: 'false'
355     network: bridge
356     exclude:
357       - {'tag': 'latest', 'test': 'refstack_defcore'}
358       - {'tag': 'latest', 'test': 'networking-bgpvpn'}
359       - {'tag': 'latest', 'test': 'networking-sfc'}
360       - {'tag': 'latest', 'test': 'patrole'}
361       - {'tag': 'leguer', 'test': 'refstack_defcore'}
362       - {'tag': 'leguer', 'test': 'networking-bgpvpn'}
363       - {'tag': 'leguer', 'test': 'networking-sfc'}
364       - {'tag': 'leguer', 'test': 'patrole'}
365       - {'tag': 'kali', 'test': 'refstack_defcore'}
366       - {'tag': 'kali', 'test': 'networking-bgpvpn'}
367       - {'tag': 'kali', 'test': 'networking-sfc'}
368       - {'tag': 'kali', 'test': 'patrole_admin'}
369       - {'tag': 'kali', 'test': 'patrole_member'}
370       - {'tag': 'kali', 'test': 'patrole_reader'}
371       - {'tag': 'jerma', 'test': 'refstack_defcore'}
372       - {'tag': 'jerma', 'test': 'networking-bgpvpn'}
373       - {'tag': 'jerma', 'test': 'networking-sfc'}
374       - {'tag': 'jerma', 'test': 'patrole_admin'}
375       - {'tag': 'jerma', 'test': 'patrole_member'}
376       - {'tag': 'jerma', 'test': 'patrole_reader'}
377       - {'tag': 'jerma', 'test': 'tempest_cyborg'}
378       - {'tag': 'iruya', 'test': 'refstack_defcore'}
379       - {'tag': 'iruya', 'test': 'patrole_admin'}
380       - {'tag': 'iruya', 'test': 'patrole_member'}
381       - {'tag': 'iruya', 'test': 'patrole_reader'}
382       - {'tag': 'iruya', 'test': 'tempest_cyborg'}
383       - {'tag': 'hunter', 'test': 'refstack_compute'}
384       - {'tag': 'hunter', 'test': 'refstack_object'}
385       - {'tag': 'hunter', 'test': 'refstack_platform'}
386       - {'tag': 'hunter', 'test': 'tempest_octavia'}
387       - {'tag': 'hunter', 'test': 'tempest_telemetry'}
388       - {'tag': 'hunter', 'test': 'patrole_admin'}
389       - {'tag': 'hunter', 'test': 'patrole_member'}
390       - {'tag': 'hunter', 'test': 'patrole_reader'}
391       - {'tag': 'hunter', 'test': 'tempest_cyborg'}
392     jobs:
393       - 'functest-{repo}-{container}-{tag}-{test}-run'
394
395 - project:
396     name: 'functest-opnfv-functest-smoke-cntt'
397     <<: *functest-params
398     container: 'functest-smoke-cntt'
399     test:
400       - tempest_neutron_cntt
401       - tempest_cinder_cntt
402       - tempest_keystone_cntt
403       - tempest_heat_cntt
404       - rally_sanity_cntt
405       - tempest_full_cntt
406       - tempest_scenario_cntt
407       - tempest_slow_cntt
408     privileged: 'false'
409     network: bridge
410     jobs:
411       - 'functest-{repo}-{container}-{tag}-{test}-run'
412
413 - project:
414     name: 'functest-opnfv-functest-benchmarking'
415     <<: *functest-params
416     container: 'functest-benchmarking'
417     test:
418       - rally_full
419       - rally_jobs
420       - vmtp
421       - shaker
422     privileged: 'false'
423     network: bridge
424     jobs:
425       - 'functest-{repo}-{container}-{tag}-{test}-run'
426
427 - project:
428     name: 'functest-opnfv-functest-benchmarking-cntt'
429     <<: *functest-params
430     container: 'functest-benchmarking-cntt'
431     test:
432       - rally_full_cntt
433       - rally_jobs_cntt
434     privileged: 'false'
435     network: bridge
436     jobs:
437       - 'functest-{repo}-{container}-{tag}-{test}-run'
438
439 - project:
440     name: 'functest-opnfv-functest-vnf'
441     <<: *functest-params
442     container: 'functest-vnf'
443     test:
444       - cloudify
445       - cloudify_ims
446       - heat_ims
447       - vyos_vrouter
448       - juju_epc
449     privileged: 'false'
450     network: bridge
451     jobs:
452       - 'functest-{repo}-{container}-{tag}-{test}-run'
453
454
455 - builder:
456     name: functest-zip
457     builders:
458       - shell: |
459           set +x
460           if [ "{repo}" = "_" ]; then
461             image={container}:{tag}
462           elif [ "{port}" = "None" ]; then
463             image={repo}/{container}:{tag}
464           else
465             image={repo}:{port}/{container}:{tag}
466           fi
467           sudo docker run --rm \
468             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
469             -e S3_DST_URL=s3://artifacts.opnfv.org/functest \
470             -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \
471             -v /home/opnfv/functest/.boto:/root/.boto \
472             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
473             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
474             -e BUILD_TAG=$BUILD_TAG \
475             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
476             -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \
477             -e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \
478             -e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \
479             -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \
480             -v /home/opnfv/functest/images:/home/opnfv/functest/images \
481             $image zip_campaign
482
483 - job-template:
484     name: 'functest-{tag}-zip'
485     parameters:
486       - functest-slave:
487           slave: '{slave}'
488       - functest-build_tag:
489           build_tag: ''
490       - functest-EXTERNAL_NETWORK:
491           EXTERNAL_NETWORK: public
492       - functest-VOLUME_DEVICE_NAME:
493           VOLUME_DEVICE_NAME: sdb
494       - functest-IMAGE_PROPERTIES:
495           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
496     builders:
497       - functest-zip:
498           <<: *functest-containers
499
500 - project:
501     name: 'functest-{tag}-zip'
502     <<: *functest-params
503     container: 'functest-healthcheck'
504     jobs:
505       - 'functest-{tag}-zip'
506
507 - job-template:
508     name: 'functest-{tag}-daily'
509     project-type: multijob
510     triggers:
511       - timed: '@weekly'
512     parameters:
513       - functest-slave:
514           slave: '{slave}'
515       - functest-build_tag:
516           build_tag: ''
517       - functest-EXTERNAL_NETWORK:
518           EXTERNAL_NETWORK: public
519       - functest-VOLUME_DEVICE_NAME:
520           VOLUME_DEVICE_NAME: sdb
521       - functest-IMAGE_PROPERTIES:
522           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
523     properties:
524       - build-blocker:
525           use-build-blocker: true
526           blocking-level: 'NODE'
527           blocking-jobs:
528             - '^functest-{tag}-(daily|docker|review)$'
529     builders:
530       - multijob:
531           name: remove former images
532           projects:
533             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
534               <<: *functest-jobs
535             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
536               <<: *functest-jobs
537             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
538               <<: *functest-jobs
539             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
540               <<: *functest-jobs
541             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
542               <<: *functest-jobs
543             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
544               <<: *functest-jobs
545       - multijob:
546           name: pull containers
547           projects:
548             - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
549               <<: *functest-jobs
550             - name: 'functest-opnfv-functest-smoke-{tag}-pull'
551               <<: *functest-jobs
552             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
553               <<: *functest-jobs
554             - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
555               <<: *functest-jobs
556             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
557               <<: *functest-jobs
558             - name: 'functest-opnfv-functest-vnf-{tag}-pull'
559               <<: *functest-jobs
560       - multijob:
561           name: opnfv/functest-healthcheck:{tag}
562           projects:
563             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
564               <<: *functest-jobs
565             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
566               <<: *functest-jobs
567             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
568               <<: *functest-jobs
569             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
570               <<: *functest-jobs
571             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
572               <<: *functest-jobs
573             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
574               <<: *functest-jobs
575             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
576               <<: *functest-jobs
577             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
578               <<: *functest-jobs
579             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
580               <<: *functest-jobs
581             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
582               <<: *functest-jobs
583             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
584               <<: *functest-jobs
585             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
586               <<: *functest-jobs
587             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
588               <<: *functest-jobs
589       - multijob:
590           name: opnfv/functest-smoke:{tag}
591           projects:
592             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
593               <<: *functest-jobs
594             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
595               <<: *functest-jobs
596             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
597               <<: *functest-jobs
598             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
599               <<: *functest-jobs
600             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
601               <<: *functest-jobs
602             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
603               <<: *functest-jobs
604             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
605               <<: *functest-jobs
606             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
607               <<: *functest-jobs
608             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
609               <<: *functest-jobs
610             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
611               <<: *functest-jobs
612             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
613               <<: *functest-jobs
614             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
615               <<: *functest-jobs
616             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
617               <<: *functest-jobs
618             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
619               <<: *functest-jobs
620             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
621               <<: *functest-jobs
622             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
623               <<: *functest-jobs
624             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
625               <<: *functest-jobs
626             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
627               <<: *functest-jobs
628             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
629               <<: *functest-jobs
630             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
631               <<: *functest-jobs
632             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
633               <<: *functest-jobs
634             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
635               <<: *functest-jobs
636       - multijob:
637           name: opnfv/functest-smoke-cntt:{tag}
638           projects:
639             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
640               <<: *functest-jobs
641             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
642               <<: *functest-jobs
643             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
644               <<: *functest-jobs
645             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
646               <<: *functest-jobs
647             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
648               <<: *functest-jobs
649             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
650               <<: *functest-jobs
651             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
652               <<: *functest-jobs
653             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
654               <<: *functest-jobs
655       - multijob:
656           name: opnfv/functest-benchmarking:{tag}
657           projects:
658             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
659               <<: *functest-jobs
660             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
661               <<: *functest-jobs
662             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
663               <<: *functest-jobs
664             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
665               <<: *functest-jobs
666       - multijob:
667           name: opnfv/functest-benchmarking-cntt:{tag}
668           projects:
669             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
670               <<: *functest-jobs
671             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
672               <<: *functest-jobs
673       - multijob:
674           name: opnfv/functest-vnf:{tag}
675           projects:
676             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
677               <<: *functest-jobs
678             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
679               <<: *functest-jobs
680             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
681               <<: *functest-jobs
682             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
683               <<: *functest-jobs
684             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
685               <<: *functest-jobs
686       - multijob:
687           name: dump all campaign data
688           projects:
689             - name: 'functest-{tag}-zip'
690               <<: *functest-jobs
691
692 - functest-dep: &functest-dep
693     name: 'functest-containers'
694     repo: '{repo}'
695     port: '{port}'
696     tag: '{tag}'
697     dependency: '{dependency}'
698
699 - builder:
700     name: functest-pull-dep-images
701     builders:
702       - shell: |
703           set +x
704           if [ "_" = "_" ]; then
705             image=alpine:{dependency}
706           elif [ "_" = "None" ]; then
707             image=_/alpine:{dependency}
708           else
709             image=_:/alpine{dependency}
710           fi
711           sudo docker pull $image || true
712
713 - builder:
714     name: functest-remove-dep-images
715     builders:
716       - shell: |
717           set +x
718           if [ "_" = "_" ]; then
719             image=alpine:{dependency}
720           elif [ "_" = "None" ]; then
721             image=_/alpine:{dependency}
722           else
723             image=_:/alpine{dependency}
724           fi
725           sudo docker rmi $image || true
726
727 - job-template:
728     name: 'functest-{repo}-{tag}-dep-pull'
729     parameters:
730       - functest-slave:
731           slave: '{slave}'
732     builders:
733       - functest-pull-dep-images:
734           <<: *functest-dep
735
736 - project:
737     name: 'functest-{repo}-{tag}-dep-pull'
738     <<: *functest-params
739     jobs:
740       - 'functest-{repo}-{tag}-dep-pull'
741
742 - job-template:
743     name: 'functest-{repo}-{tag}-dep-rmi'
744     parameters:
745       - functest-slave:
746           slave: '{slave}'
747     builders:
748       - functest-remove-dep-images:
749           <<: *functest-dep
750
751 - project:
752     name: 'functest-{repo}-{tag}-dep-rmi'
753     <<: *functest-params
754     jobs:
755       - 'functest-{repo}-{tag}-dep-rmi'
756
757 - builder:
758     name: functest-tox
759     builders:
760       - shell: |
761           set +x
762           sudo apt-get update && sudo apt-get install software-properties-common gpg -y
763           sudo add-apt-repository -y ppa:deadsnakes/ppa
764           sudo apt-get update && sudo apt-get install python3.8 python3.8-dev \
765             python3.8-distutils \
766             python3.7 python3.7-dev python3.6 python3.6-dev \
767             python python-dev python3-pip enchant -y
768           sudo pip3 install tox tox-pip-version
769           tox
770
771 - job-template:
772     name: 'functest-{tag}-tox'
773     scm:
774       - functest-scm:
775           ref: $GERRIT_REFSPEC
776     triggers:
777       - functest-patchset-created:
778           branch: '{branch}'
779     parameters:
780       - functest-slave:
781           slave: '{slave}'
782     builders:
783       - functest-tox:
784
785 - project:
786     name: functest-tox
787     <<: *functest-params
788     jobs:
789       - 'functest-{tag}-tox'
790
791 - project:
792     name: functest-opnfv-functest-core-{tag}-gate
793     <<: *functest-params
794     container: functest-core
795     ref_arg: BRANCH
796     path: docker/core
797     jobs:
798       - 'functest-{repo}-{container}-{tag}-gate'
799
800 - project:
801     name: functest-opnfv-functest-healthcheck-{tag}-gate
802     <<: *functest-params
803     container: functest-healthcheck
804     ref_arg: BRANCH
805     path: docker/healthcheck
806     jobs:
807       - 'functest-{repo}-{container}-{tag}-gate'
808
809 - project:
810     name: functest-opnfv-functest-smoke-{tag}-gate
811     <<: *functest-params
812     container: functest-smoke
813     ref_arg: BRANCH
814     path: docker/smoke
815     jobs:
816       - 'functest-{repo}-{container}-{tag}-gate'
817
818 - project:
819     name: functest-opnfv-functest-benchmarking-{tag}-gate
820     <<: *functest-params
821     container: functest-benchmarking
822     ref_arg: BRANCH
823     path: docker/benchmarking
824     jobs:
825       - 'functest-{repo}-{container}-{tag}-gate'
826
827 - project:
828     name: functest-opnfv-functest-vnf-{tag}-gate
829     <<: *functest-params
830     container: functest-vnf
831     ref_arg:
832     path: docker/vnf
833     jobs:
834       - 'functest-{repo}-{container}-{tag}-gate'
835
836 - project:
837     name: functest-opnfv-functest-smoke-cntt-{tag}-gate
838     <<: *functest-params
839     container: functest-smoke-cntt
840     ref_arg: BRANCH
841     path: docker/smoke-cntt
842     jobs:
843       - 'functest-{repo}-{container}-{tag}-gate'
844
845 - project:
846     name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate
847     <<: *functest-params
848     container: functest-benchmarking-cntt
849     ref_arg: BRANCH
850     path: docker/benchmarking-cntt
851     jobs:
852       - 'functest-{repo}-{container}-{tag}-gate'
853
854
855 - job-template:
856     name: 'functest-{repo}-{container}-{tag}-gate'
857     parameters:
858       - functest-slave:
859           slave: '{slave}'
860     scm:
861       - functest-scm:
862           ref: $GERRIT_REFSPEC
863     builders:
864       - functest-build-containers:
865           <<: *functest-build-containers
866           ref: $GERRIT_REFSPEC
867
868 - trigger:
869     name: functest-patchset-created
870     triggers:
871       - gerrit:
872           trigger-on:
873             - patchset-created-event
874             - comment-added-contains-event:
875                 comment-contains-value: 'recheck'
876             - comment-added-contains-event:
877                 comment-contains-value: 'reverify'
878           projects:
879             - project-compare-type: 'ANT'
880               project-pattern: 'functest'
881               branches:
882                 - branch-compare-type: 'ANT'
883                   branch-pattern: '**/{branch}'
884
885 - job-template:
886     name: 'functest-{tag}-review'
887     project-type: multijob
888     triggers:
889       - functest-patchset-created:
890           branch: '{branch}'
891     parameters:
892       - functest-slave:
893           slave: '{slave}'
894       - functest-build_tag:
895           build_tag: ''
896       - functest-EXTERNAL_NETWORK:
897           EXTERNAL_NETWORK: public
898       - functest-VOLUME_DEVICE_NAME:
899           VOLUME_DEVICE_NAME: sdb
900       - functest-IMAGE_PROPERTIES:
901           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
902     properties:
903       - build-blocker:
904           use-build-blocker: true
905           blocking-level: 'NODE'
906           blocking-jobs:
907             - '^functest-{tag}-(daily|docker|review)$'
908     builders:
909       - multijob:
910           name: remove former images
911           projects:
912             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
913               <<: *functest-jobs
914             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
915               <<: *functest-jobs
916             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
917               <<: *functest-jobs
918             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
919               <<: *functest-jobs
920             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
921               <<: *functest-jobs
922             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
923               <<: *functest-jobs
924       - multijob:
925           name: remove dependency
926           projects:
927             - name: 'functest-{repo}-{tag}-dep-rmi'
928               <<: *functest-jobs
929       - multijob:
930           name: pull dependency
931           projects:
932             - name: 'functest-{repo}-{tag}-dep-pull'
933               <<: *functest-jobs
934       - multijob:
935           name: build opnfv/functest-core
936           projects:
937             - name: 'functest-opnfv-functest-core-{tag}-gate'
938               <<: *functest-jobs
939       - multijob:
940           name: build containers
941           projects:
942             - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
943               <<: *functest-jobs
944             - name: 'functest-opnfv-functest-smoke-{tag}-gate'
945               <<: *functest-jobs
946             - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
947               <<: *functest-jobs
948             - name: 'functest-opnfv-functest-vnf-{tag}-gate'
949               <<: *functest-jobs
950       - multijob:
951           name: build cntt containers
952           projects:
953             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
954               <<: *functest-jobs
955             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
956               <<: *functest-jobs
957       - multijob:
958           name: opnfv/functest-healthcheck:{tag}
959           projects:
960             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
961               <<: *functest-jobs
962             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
963               <<: *functest-jobs
964             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
965               <<: *functest-jobs
966             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
967               <<: *functest-jobs
968             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
969               <<: *functest-jobs
970             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
971               <<: *functest-jobs
972             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
973               <<: *functest-jobs
974             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
975               <<: *functest-jobs
976             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
977               <<: *functest-jobs
978             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
979               <<: *functest-jobs
980             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
981               <<: *functest-jobs
982             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
983               <<: *functest-jobs
984             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
985               <<: *functest-jobs
986       - multijob:
987           name: opnfv/functest-smoke:{tag}
988           projects:
989             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
990               <<: *functest-jobs
991             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
992               <<: *functest-jobs
993             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
994               <<: *functest-jobs
995             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
996               <<: *functest-jobs
997             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
998               <<: *functest-jobs
999             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1000               <<: *functest-jobs
1001             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
1002               <<: *functest-jobs
1003             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1004               <<: *functest-jobs
1005             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1006               <<: *functest-jobs
1007             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1008               <<: *functest-jobs
1009             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1010               <<: *functest-jobs
1011             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1012               <<: *functest-jobs
1013             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1014               <<: *functest-jobs
1015             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
1016               <<: *functest-jobs
1017             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1018               <<: *functest-jobs
1019             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1020               <<: *functest-jobs
1021             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1022               <<: *functest-jobs
1023             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
1024               <<: *functest-jobs
1025             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
1026               <<: *functest-jobs
1027             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1028               <<: *functest-jobs
1029             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1030               <<: *functest-jobs
1031             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1032               <<: *functest-jobs
1033       - multijob:
1034           name: opnfv/functest-smoke-cntt:{tag}
1035           projects:
1036             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1037               <<: *functest-jobs
1038             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1039               <<: *functest-jobs
1040             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1041               <<: *functest-jobs
1042             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1043               <<: *functest-jobs
1044             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1045               <<: *functest-jobs
1046             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1047               <<: *functest-jobs
1048             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1049               <<: *functest-jobs
1050             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1051               <<: *functest-jobs
1052       - multijob:
1053           name: opnfv/functest-benchmarking:{tag}
1054           projects:
1055             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1056               <<: *functest-jobs
1057             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1058               <<: *functest-jobs
1059             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1060               <<: *functest-jobs
1061             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1062               <<: *functest-jobs
1063       - multijob:
1064           name: opnfv/functest-benchmarking-cntt:{tag}
1065           projects:
1066             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1067               <<: *functest-jobs
1068             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1069               <<: *functest-jobs
1070       - multijob:
1071           name: opnfv/functest-vnf:{tag}
1072           projects:
1073             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1074               <<: *functest-jobs
1075             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1076               <<: *functest-jobs
1077             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1078               <<: *functest-jobs
1079             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1080               <<: *functest-jobs
1081             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1082               <<: *functest-jobs
1083
1084 - builder:
1085     name: functest-push-containers
1086     builders:
1087       - shell: |
1088           set +x
1089           if [ "{repo}" = "_" ]; then
1090             image={container}:{tag}
1091           elif [ "{port}" = "None" ]; then
1092             image={repo}/{container}:{tag}
1093           else
1094             image={repo}:{port}/{container}:{tag}
1095           fi
1096           sudo docker push $image
1097
1098 - trigger:
1099     name: functest-commit
1100     triggers:
1101       - pollscm:
1102           cron: "*/30 * * * *"
1103
1104 - job-template:
1105     name: 'functest-{repo}-{container}-{tag}-build'
1106     parameters:
1107       - functest-slave:
1108           slave: '{slave}'
1109     scm:
1110       - functest-scm:
1111           ref: '{branch}'
1112     builders:
1113       - functest-build-containers:
1114           <<: *functest-build-containers
1115           ref: '{branch}'
1116       - functest-push-containers:
1117           <<: *functest-build-containers
1118           ref: '{branch}'
1119
1120 - project:
1121     name: functest-opnfv-functest-core-{tag}-build
1122     <<: *functest-params
1123     container: functest-core
1124     ref_arg: BRANCH
1125     path: docker/core
1126     jobs:
1127       - 'functest-{repo}-{container}-{tag}-build'
1128
1129 - project:
1130     name: functest-opnfv-functest-healthcheck-{tag}-build
1131     <<: *functest-params
1132     container: functest-healthcheck
1133     ref_arg: BRANCH
1134     path: docker/healthcheck
1135     jobs:
1136       - 'functest-{repo}-{container}-{tag}-build'
1137
1138 - project:
1139     name: functest-opnfv-functest-smoke-{tag}-build
1140     <<: *functest-params
1141     container: functest-smoke
1142     ref_arg: BRANCH
1143     path: docker/smoke
1144     jobs:
1145       - 'functest-{repo}-{container}-{tag}-build'
1146
1147 - project:
1148     name: functest-opnfv-functest-benchmarking-{tag}-build
1149     <<: *functest-params
1150     container: functest-benchmarking
1151     ref_arg: BRANCH
1152     path: docker/benchmarking
1153     jobs:
1154       - 'functest-{repo}-{container}-{tag}-build'
1155
1156 - project:
1157     name: functest-opnfv-functest-vnf-{tag}-build
1158     <<: *functest-params
1159     container: functest-vnf
1160     ref_arg:
1161     path: docker/vnf
1162     jobs:
1163       - 'functest-{repo}-{container}-{tag}-build'
1164
1165 - project:
1166     name: functest-opnfv-functest-smoke-cntt-{tag}-build
1167     <<: *functest-params
1168     container: functest-smoke-cntt
1169     ref_arg: BRANCH
1170     path: docker/smoke-cntt
1171     jobs:
1172       - 'functest-{repo}-{container}-{tag}-build'
1173
1174 - project:
1175     name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
1176     <<: *functest-params
1177     container: functest-benchmarking-cntt
1178     ref_arg: BRANCH
1179     path: docker/benchmarking-cntt
1180     jobs:
1181       - 'functest-{repo}-{container}-{tag}-build'
1182
1183
1184 - job-template:
1185     name: 'functest-{tag}-docker'
1186     project-type: multijob
1187     triggers:
1188       - functest-commit
1189     scm:
1190       - functest-scm:
1191           ref: '{branch}'
1192     parameters:
1193       - functest-slave:
1194           slave: '{slave}'
1195     properties:
1196       - build-blocker:
1197           use-build-blocker: true
1198           blocking-level: 'NODE'
1199           blocking-jobs:
1200             - '^functest-{tag}-(daily|docker|review)$'
1201     builders:
1202       - multijob:
1203           name: remove dependency
1204           projects:
1205             - name: 'functest-{repo}-{tag}-dep-rmi'
1206               <<: *functest-jobs
1207       - multijob:
1208           name: pull dependency
1209           projects:
1210             - name: 'functest-{repo}-{tag}-dep-pull'
1211               <<: *functest-jobs
1212       - multijob:
1213           name: build opnfv/functest-core
1214           projects:
1215             - name: 'functest-opnfv-functest-core-{tag}-build'
1216               <<: *functest-jobs
1217       - multijob:
1218           name: build containers
1219           projects:
1220             - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1221               <<: *functest-jobs
1222             - name: 'functest-opnfv-functest-smoke-{tag}-build'
1223               <<: *functest-jobs
1224             - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1225               <<: *functest-jobs
1226             - name: 'functest-opnfv-functest-vnf-{tag}-build'
1227               <<: *functest-jobs
1228       - multijob:
1229           name: build cntt containers
1230           projects:
1231             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1232               <<: *functest-jobs
1233             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1234               <<: *functest-jobs
1235
1236 - builder:
1237     name: functest-trivy
1238     builders:
1239       - shell: |
1240           sudo apt-get update && sudo apt-get install curl -y
1241           curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
1242           if [ "{repo}" = "_" ]; then
1243             image={container}:{tag}
1244           elif [ "{port}" = "None" ]; then
1245             image={repo}/{container}:{tag}
1246           else
1247             image={repo}:{port}/{container}:{tag}
1248           fi
1249           ./trivy --exit-code 1 $image
1250
1251 - job-template:
1252     name: 'functest-{repo}-{container}-{tag}-trivy'
1253     triggers:
1254       - timed: '@weekly'
1255     parameters:
1256       - functest-slave:
1257           slave: '{slave}'
1258     builders:
1259       - functest-trivy:
1260           <<: *functest-containers
1261
1262 - project:
1263     name: 'functest-opnfv-functest-healthcheck-trivy'
1264     <<: *functest-params
1265     container: 'functest-healthcheck'
1266     jobs:
1267       - 'functest-{repo}-{container}-{tag}-trivy'
1268 - project:
1269     name: 'functest-opnfv-functest-smoke-trivy'
1270     <<: *functest-params
1271     container: 'functest-smoke'
1272     jobs:
1273       - 'functest-{repo}-{container}-{tag}-trivy'
1274 - project:
1275     name: 'functest-opnfv-functest-smoke-cntt-trivy'
1276     <<: *functest-params
1277     container: 'functest-smoke-cntt'
1278     jobs:
1279       - 'functest-{repo}-{container}-{tag}-trivy'
1280 - project:
1281     name: 'functest-opnfv-functest-benchmarking-trivy'
1282     <<: *functest-params
1283     container: 'functest-benchmarking'
1284     jobs:
1285       - 'functest-{repo}-{container}-{tag}-trivy'
1286 - project:
1287     name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
1288     <<: *functest-params
1289     container: 'functest-benchmarking-cntt'
1290     jobs:
1291       - 'functest-{repo}-{container}-{tag}-trivy'
1292 - project:
1293     name: 'functest-opnfv-functest-vnf-trivy'
1294     <<: *functest-params
1295     container: 'functest-vnf'
1296     jobs:
1297       - 'functest-{repo}-{container}-{tag}-trivy'
1298
1299 - project:
1300     name: 'functest'
1301     <<: *functest-params
1302     jobs:
1303       - 'functest-{tag}-daily'
1304       - 'functest-{tag}-review'
1305       - 'functest-{tag}-docker'
1306
1307 - view:
1308     name: functest
1309     view-type: list
1310     columns:
1311       - status
1312       - weather
1313       - job
1314       - last-success
1315       - last-failure
1316       - last-duration
1317     regex: ^functest-[a-z0-9]+-daily$
1318
1319 - view:
1320     name: functest-review
1321     view-type: list
1322     columns:
1323       - status
1324       - weather
1325       - job
1326       - last-success
1327       - last-failure
1328       - last-duration
1329     regex: ^functest-[a-z0-9]+-review$
1330
1331 - view:
1332     name: functest-tox
1333     view-type: list
1334     columns:
1335       - status
1336       - weather
1337       - job
1338       - last-success
1339       - last-failure
1340       - last-duration
1341     regex: ^functest-[a-z0-9]+-tox$
1342
1343 - view:
1344     name: functest-docker
1345     view-type: list
1346     columns:
1347       - status
1348       - weather
1349       - job
1350       - last-success
1351       - last-failure
1352       - last-duration
1353     regex: ^functest-[a-z0-9]+-docker$
1354
1355 - view:
1356     name: functest-trivy
1357     view-type: list
1358     columns:
1359       - status
1360       - weather
1361       - job
1362       - last-success
1363       - last-failure
1364       - last-duration
1365     regex: ^functest-[a-z-0-9]+-trivy$