Manage view filters by XtestingCI
[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 - project:
693     name: 'functest-daily'
694     <<: *functest-params
695     jobs:
696       - 'functest-{tag}-daily'
697
698 - view:
699     name: functest
700     view-type: list
701     columns:
702       - status
703       - weather
704       - job
705       - last-success
706       - last-failure
707       - last-duration
708     regex: ^functest-[a-z0-9]+-daily$
709
710 - functest-dep: &functest-dep
711     name: 'functest-containers'
712     repo: '{repo}'
713     port: '{port}'
714     tag: '{tag}'
715     dependency: '{dependency}'
716
717 - builder:
718     name: functest-pull-dep-images
719     builders:
720       - shell: |
721           set +x
722           if [ "_" = "_" ]; then
723             image=alpine:{dependency}
724           elif [ "_" = "None" ]; then
725             image=_/alpine:{dependency}
726           else
727             image=_:/alpine{dependency}
728           fi
729           sudo docker pull $image || true
730
731 - builder:
732     name: functest-remove-dep-images
733     builders:
734       - shell: |
735           set +x
736           if [ "_" = "_" ]; then
737             image=alpine:{dependency}
738           elif [ "_" = "None" ]; then
739             image=_/alpine:{dependency}
740           else
741             image=_:/alpine{dependency}
742           fi
743           sudo docker rmi $image || true
744
745 - job-template:
746     name: 'functest-{repo}-{tag}-dep-pull'
747     parameters:
748       - functest-slave:
749           slave: '{slave}'
750     builders:
751       - functest-pull-dep-images:
752           <<: *functest-dep
753
754 - project:
755     name: 'functest-{repo}-{tag}-dep-pull'
756     <<: *functest-params
757     jobs:
758       - 'functest-{repo}-{tag}-dep-pull'
759
760 - job-template:
761     name: 'functest-{repo}-{tag}-dep-rmi'
762     parameters:
763       - functest-slave:
764           slave: '{slave}'
765     builders:
766       - functest-remove-dep-images:
767           <<: *functest-dep
768
769 - project:
770     name: 'functest-{repo}-{tag}-dep-rmi'
771     <<: *functest-params
772     jobs:
773       - 'functest-{repo}-{tag}-dep-rmi'
774
775 - builder:
776     name: functest-tox
777     builders:
778       - shell: |
779           set +x
780           sudo apt-get update && sudo apt-get install software-properties-common gpg -y
781           sudo add-apt-repository -y ppa:deadsnakes/ppa
782           sudo apt-get update && sudo apt-get install python3.8 python3.8-dev \
783             python3.8-distutils \
784             python3.7 python3.7-dev python3.6 python3.6-dev \
785             python python-dev python3-pip enchant -y
786           sudo pip3 install tox tox-pip-version
787           tox
788
789 - job-template:
790     name: 'functest-{tag}-tox'
791     scm:
792       - functest-scm:
793           ref: $GERRIT_REFSPEC
794     triggers:
795       - functest-patchset-created:
796           branch: '{branch}'
797     parameters:
798       - functest-slave:
799           slave: '{slave}'
800     builders:
801       - functest-tox:
802
803 - project:
804     name: functest-tox
805     <<: *functest-params
806     jobs:
807       - 'functest-{tag}-tox'
808
809 - project:
810     name: functest-opnfv-functest-core-{tag}-gate
811     <<: *functest-params
812     container: functest-core
813     ref_arg: BRANCH
814     path: docker/core
815     jobs:
816       - 'functest-{repo}-{container}-{tag}-gate'
817
818 - project:
819     name: functest-opnfv-functest-healthcheck-{tag}-gate
820     <<: *functest-params
821     container: functest-healthcheck
822     ref_arg: BRANCH
823     path: docker/healthcheck
824     jobs:
825       - 'functest-{repo}-{container}-{tag}-gate'
826
827 - project:
828     name: functest-opnfv-functest-smoke-{tag}-gate
829     <<: *functest-params
830     container: functest-smoke
831     ref_arg: BRANCH
832     path: docker/smoke
833     jobs:
834       - 'functest-{repo}-{container}-{tag}-gate'
835
836 - project:
837     name: functest-opnfv-functest-benchmarking-{tag}-gate
838     <<: *functest-params
839     container: functest-benchmarking
840     ref_arg: BRANCH
841     path: docker/benchmarking
842     jobs:
843       - 'functest-{repo}-{container}-{tag}-gate'
844
845 - project:
846     name: functest-opnfv-functest-vnf-{tag}-gate
847     <<: *functest-params
848     container: functest-vnf
849     ref_arg:
850     path: docker/vnf
851     jobs:
852       - 'functest-{repo}-{container}-{tag}-gate'
853
854 - project:
855     name: functest-opnfv-functest-smoke-cntt-{tag}-gate
856     <<: *functest-params
857     container: functest-smoke-cntt
858     ref_arg: BRANCH
859     path: docker/smoke-cntt
860     jobs:
861       - 'functest-{repo}-{container}-{tag}-gate'
862
863 - project:
864     name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate
865     <<: *functest-params
866     container: functest-benchmarking-cntt
867     ref_arg: BRANCH
868     path: docker/benchmarking-cntt
869     jobs:
870       - 'functest-{repo}-{container}-{tag}-gate'
871
872
873 - job-template:
874     name: 'functest-{repo}-{container}-{tag}-gate'
875     parameters:
876       - functest-slave:
877           slave: '{slave}'
878     scm:
879       - functest-scm:
880           ref: $GERRIT_REFSPEC
881     builders:
882       - functest-build-containers:
883           <<: *functest-build-containers
884           ref: $GERRIT_REFSPEC
885
886 - trigger:
887     name: functest-patchset-created
888     triggers:
889       - gerrit:
890           trigger-on:
891             - patchset-created-event
892             - comment-added-contains-event:
893                 comment-contains-value: 'recheck'
894             - comment-added-contains-event:
895                 comment-contains-value: 'reverify'
896           projects:
897             - project-compare-type: 'ANT'
898               project-pattern: 'functest'
899               branches:
900                 - branch-compare-type: 'ANT'
901                   branch-pattern: '**/{branch}'
902
903 - job-template:
904     name: 'functest-{tag}-review'
905     project-type: multijob
906     triggers:
907       - functest-patchset-created:
908           branch: '{branch}'
909     parameters:
910       - functest-slave:
911           slave: '{slave}'
912       - functest-build_tag:
913           build_tag: ''
914       - functest-EXTERNAL_NETWORK:
915           EXTERNAL_NETWORK: public
916       - functest-VOLUME_DEVICE_NAME:
917           VOLUME_DEVICE_NAME: sdb
918       - functest-IMAGE_PROPERTIES:
919           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
920     properties:
921       - build-blocker:
922           use-build-blocker: true
923           blocking-level: 'NODE'
924           blocking-jobs:
925             - '^functest-{tag}-(daily|docker|review)$'
926     builders:
927       - multijob:
928           name: remove former images
929           projects:
930             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
931               <<: *functest-jobs
932             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
933               <<: *functest-jobs
934             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
935               <<: *functest-jobs
936             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
937               <<: *functest-jobs
938             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
939               <<: *functest-jobs
940             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
941               <<: *functest-jobs
942       - multijob:
943           name: remove dependency
944           projects:
945             - name: 'functest-{repo}-{tag}-dep-rmi'
946               <<: *functest-jobs
947       - multijob:
948           name: pull dependency
949           projects:
950             - name: 'functest-{repo}-{tag}-dep-pull'
951               <<: *functest-jobs
952       - multijob:
953           name: build opnfv/functest-core
954           projects:
955             - name: 'functest-opnfv-functest-core-{tag}-gate'
956               <<: *functest-jobs
957       - multijob:
958           name: build containers
959           projects:
960             - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
961               <<: *functest-jobs
962             - name: 'functest-opnfv-functest-smoke-{tag}-gate'
963               <<: *functest-jobs
964             - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
965               <<: *functest-jobs
966             - name: 'functest-opnfv-functest-vnf-{tag}-gate'
967               <<: *functest-jobs
968       - multijob:
969           name: build cntt containers
970           projects:
971             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
972               <<: *functest-jobs
973             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
974               <<: *functest-jobs
975       - multijob:
976           name: opnfv/functest-healthcheck:{tag}
977           projects:
978             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
979               <<: *functest-jobs
980             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
981               <<: *functest-jobs
982             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
983               <<: *functest-jobs
984             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
985               <<: *functest-jobs
986             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
987               <<: *functest-jobs
988             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
989               <<: *functest-jobs
990             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
991               <<: *functest-jobs
992             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
993               <<: *functest-jobs
994             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
995               <<: *functest-jobs
996             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
997               <<: *functest-jobs
998             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
999               <<: *functest-jobs
1000             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1001               <<: *functest-jobs
1002             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1003               <<: *functest-jobs
1004       - multijob:
1005           name: opnfv/functest-smoke:{tag}
1006           projects:
1007             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1008               <<: *functest-jobs
1009             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1010               <<: *functest-jobs
1011             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1012               <<: *functest-jobs
1013             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1014               <<: *functest-jobs
1015             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1016               <<: *functest-jobs
1017             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1018               <<: *functest-jobs
1019             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
1020               <<: *functest-jobs
1021             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1022               <<: *functest-jobs
1023             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1024               <<: *functest-jobs
1025             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1026               <<: *functest-jobs
1027             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1028               <<: *functest-jobs
1029             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1030               <<: *functest-jobs
1031             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1032               <<: *functest-jobs
1033             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
1034               <<: *functest-jobs
1035             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1036               <<: *functest-jobs
1037             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1038               <<: *functest-jobs
1039             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1040               <<: *functest-jobs
1041             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
1042               <<: *functest-jobs
1043             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
1044               <<: *functest-jobs
1045             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1046               <<: *functest-jobs
1047             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1048               <<: *functest-jobs
1049             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1050               <<: *functest-jobs
1051       - multijob:
1052           name: opnfv/functest-smoke-cntt:{tag}
1053           projects:
1054             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1055               <<: *functest-jobs
1056             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1057               <<: *functest-jobs
1058             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1059               <<: *functest-jobs
1060             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1061               <<: *functest-jobs
1062             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1063               <<: *functest-jobs
1064             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1065               <<: *functest-jobs
1066             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1067               <<: *functest-jobs
1068             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1069               <<: *functest-jobs
1070       - multijob:
1071           name: opnfv/functest-benchmarking:{tag}
1072           projects:
1073             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1074               <<: *functest-jobs
1075             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1076               <<: *functest-jobs
1077             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1078               <<: *functest-jobs
1079             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1080               <<: *functest-jobs
1081       - multijob:
1082           name: opnfv/functest-benchmarking-cntt:{tag}
1083           projects:
1084             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1085               <<: *functest-jobs
1086             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1087               <<: *functest-jobs
1088       - multijob:
1089           name: opnfv/functest-vnf:{tag}
1090           projects:
1091             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1092               <<: *functest-jobs
1093             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1094               <<: *functest-jobs
1095             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1096               <<: *functest-jobs
1097             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1098               <<: *functest-jobs
1099             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1100               <<: *functest-jobs
1101
1102 - project:
1103     name: 'functest-review'
1104     <<: *functest-params
1105     jobs:
1106       - 'functest-{tag}-review'
1107
1108 - view:
1109     name: functest-review
1110     view-type: list
1111     columns:
1112       - status
1113       - weather
1114       - job
1115       - last-success
1116       - last-failure
1117       - last-duration
1118     regex: ^functest-[a-z0-9]+-review$
1119
1120 - view:
1121     name: functest-tox
1122     view-type: list
1123     columns:
1124       - status
1125       - weather
1126       - job
1127       - last-success
1128       - last-failure
1129       - last-duration
1130     regex: ^functest-[a-z0-9]+-tox$
1131
1132 - builder:
1133     name: functest-push-containers
1134     builders:
1135       - shell: |
1136           set +x
1137           if [ "{repo}" = "_" ]; then
1138             image={container}:{tag}
1139           elif [ "{port}" = "None" ]; then
1140             image={repo}/{container}:{tag}
1141           else
1142             image={repo}:{port}/{container}:{tag}
1143           fi
1144           sudo docker push $image
1145
1146 - trigger:
1147     name: functest-commit
1148     triggers:
1149       - pollscm:
1150           cron: "*/30 * * * *"
1151
1152 - job-template:
1153     name: 'functest-{repo}-{container}-{tag}-build'
1154     parameters:
1155       - functest-slave:
1156           slave: '{slave}'
1157     scm:
1158       - functest-scm:
1159           ref: '{branch}'
1160     builders:
1161       - functest-build-containers:
1162           <<: *functest-build-containers
1163           ref: '{branch}'
1164       - functest-push-containers:
1165           <<: *functest-build-containers
1166           ref: '{branch}'
1167
1168 - project:
1169     name: functest-opnfv-functest-core-{tag}-build
1170     <<: *functest-params
1171     container: functest-core
1172     ref_arg: BRANCH
1173     path: docker/core
1174     jobs:
1175       - 'functest-{repo}-{container}-{tag}-build'
1176
1177 - project:
1178     name: functest-opnfv-functest-healthcheck-{tag}-build
1179     <<: *functest-params
1180     container: functest-healthcheck
1181     ref_arg: BRANCH
1182     path: docker/healthcheck
1183     jobs:
1184       - 'functest-{repo}-{container}-{tag}-build'
1185
1186 - project:
1187     name: functest-opnfv-functest-smoke-{tag}-build
1188     <<: *functest-params
1189     container: functest-smoke
1190     ref_arg: BRANCH
1191     path: docker/smoke
1192     jobs:
1193       - 'functest-{repo}-{container}-{tag}-build'
1194
1195 - project:
1196     name: functest-opnfv-functest-benchmarking-{tag}-build
1197     <<: *functest-params
1198     container: functest-benchmarking
1199     ref_arg: BRANCH
1200     path: docker/benchmarking
1201     jobs:
1202       - 'functest-{repo}-{container}-{tag}-build'
1203
1204 - project:
1205     name: functest-opnfv-functest-vnf-{tag}-build
1206     <<: *functest-params
1207     container: functest-vnf
1208     ref_arg:
1209     path: docker/vnf
1210     jobs:
1211       - 'functest-{repo}-{container}-{tag}-build'
1212
1213 - project:
1214     name: functest-opnfv-functest-smoke-cntt-{tag}-build
1215     <<: *functest-params
1216     container: functest-smoke-cntt
1217     ref_arg: BRANCH
1218     path: docker/smoke-cntt
1219     jobs:
1220       - 'functest-{repo}-{container}-{tag}-build'
1221
1222 - project:
1223     name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
1224     <<: *functest-params
1225     container: functest-benchmarking-cntt
1226     ref_arg: BRANCH
1227     path: docker/benchmarking-cntt
1228     jobs:
1229       - 'functest-{repo}-{container}-{tag}-build'
1230
1231
1232 - job-template:
1233     name: 'functest-{tag}-docker'
1234     project-type: multijob
1235     triggers:
1236       - functest-commit
1237     scm:
1238       - functest-scm:
1239           ref: '{branch}'
1240     parameters:
1241       - functest-slave:
1242           slave: '{slave}'
1243     properties:
1244       - build-blocker:
1245           use-build-blocker: true
1246           blocking-level: 'NODE'
1247           blocking-jobs:
1248             - '^functest-{tag}-(daily|docker|review)$'
1249     builders:
1250       - multijob:
1251           name: remove dependency
1252           projects:
1253             - name: 'functest-{repo}-{tag}-dep-rmi'
1254               <<: *functest-jobs
1255       - multijob:
1256           name: pull dependency
1257           projects:
1258             - name: 'functest-{repo}-{tag}-dep-pull'
1259               <<: *functest-jobs
1260       - multijob:
1261           name: build opnfv/functest-core
1262           projects:
1263             - name: 'functest-opnfv-functest-core-{tag}-build'
1264               <<: *functest-jobs
1265       - multijob:
1266           name: build containers
1267           projects:
1268             - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1269               <<: *functest-jobs
1270             - name: 'functest-opnfv-functest-smoke-{tag}-build'
1271               <<: *functest-jobs
1272             - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1273               <<: *functest-jobs
1274             - name: 'functest-opnfv-functest-vnf-{tag}-build'
1275               <<: *functest-jobs
1276       - multijob:
1277           name: build cntt containers
1278           projects:
1279             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1280               <<: *functest-jobs
1281             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1282               <<: *functest-jobs
1283
1284 - builder:
1285     name: functest-trivy
1286     builders:
1287       - shell: |
1288           sudo apt-get update && sudo apt-get install curl -y
1289           curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
1290           if [ "{repo}" = "_" ]; then
1291             image={container}:{tag}
1292           elif [ "{port}" = "None" ]; then
1293             image={repo}/{container}:{tag}
1294           else
1295             image={repo}:{port}/{container}:{tag}
1296           fi
1297           ./trivy --exit-code 1 $image
1298
1299 - job-template:
1300     name: 'functest-{repo}-{container}-{tag}-trivy'
1301     triggers:
1302       - timed: '@weekly'
1303     parameters:
1304       - functest-slave:
1305           slave: '{slave}'
1306     builders:
1307       - functest-trivy:
1308           <<: *functest-containers
1309
1310 - project:
1311     name: 'functest-opnfv-functest-healthcheck-trivy'
1312     <<: *functest-params
1313     container: 'functest-healthcheck'
1314     jobs:
1315       - 'functest-{repo}-{container}-{tag}-trivy'
1316 - project:
1317     name: 'functest-opnfv-functest-smoke-trivy'
1318     <<: *functest-params
1319     container: 'functest-smoke'
1320     jobs:
1321       - 'functest-{repo}-{container}-{tag}-trivy'
1322 - project:
1323     name: 'functest-opnfv-functest-smoke-cntt-trivy'
1324     <<: *functest-params
1325     container: 'functest-smoke-cntt'
1326     jobs:
1327       - 'functest-{repo}-{container}-{tag}-trivy'
1328 - project:
1329     name: 'functest-opnfv-functest-benchmarking-trivy'
1330     <<: *functest-params
1331     container: 'functest-benchmarking'
1332     jobs:
1333       - 'functest-{repo}-{container}-{tag}-trivy'
1334 - project:
1335     name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
1336     <<: *functest-params
1337     container: 'functest-benchmarking-cntt'
1338     jobs:
1339       - 'functest-{repo}-{container}-{tag}-trivy'
1340 - project:
1341     name: 'functest-opnfv-functest-vnf-trivy'
1342     <<: *functest-params
1343     container: 'functest-vnf'
1344     jobs:
1345       - 'functest-{repo}-{container}-{tag}-trivy'
1346
1347 - project:
1348     name: 'functest'
1349     <<: *functest-params
1350     jobs:
1351       - 'functest-{tag}-docker'
1352
1353 - view:
1354     name: functest-docker
1355     view-type: list
1356     columns:
1357       - status
1358       - weather
1359       - job
1360       - last-success
1361       - last-failure
1362       - last-duration
1363     regex: ^functest-[a-z0-9]+-docker$
1364
1365 - view:
1366     name: functest-trivy
1367     view-type: list
1368     columns:
1369       - status
1370       - weather
1371       - job
1372       - last-success
1373       - last-failure
1374       - last-duration
1375     regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9]+-trivy$