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