Merge "Prune Docker images on lf-build5/6 to save space"
[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 software-properties-common gpg -y
803           sudo add-apt-repository -y ppa:deadsnakes/ppa
804           sudo apt-get update && sudo apt-get install python3.8 python3.8-dev \
805             python3.8-distutils \
806             python3.7 python3.7-dev python3.6 python3.6-dev \
807             python python-dev python3-pip enchant -y
808           sudo pip3 install tox tox-pip-version
809           tox
810
811 - job-template:
812     name: 'functest-{tag}-tox'
813     scm:
814       - functest-scm:
815           ref: $GERRIT_REFSPEC
816     triggers:
817       - functest-patchset-created:
818           branch: '{branch}'
819     parameters:
820       - functest-slave:
821           slave: '{slave}'
822     builders:
823       - functest-tox:
824
825 - project:
826     name: functest-tox
827     <<: *functest-params
828     jobs:
829       - 'functest-{tag}-tox'
830
831 - job-template:
832     name: 'functest-{repo}-{container}-{tag}-gate'
833     parameters:
834       - functest-slave:
835           slave: '{slave}'
836     scm:
837       - functest-scm:
838           ref: $GERRIT_REFSPEC
839     builders:
840       - functest-build-containers:
841           <<: *functest-build-containers
842           ref: $GERRIT_REFSPEC
843           buildargs: '{buildargs}'
844
845 - project:
846     name: functest-opnfv-functest-core-{tag}-gate
847     <<: *functest-params
848     container: functest-core
849     ref_arg: BRANCH
850     path: docker/core
851     jobs:
852       - 'functest-{repo}-{container}-{tag}-gate'
853
854 - project:
855     name: functest-opnfv-functest-tempest-{tag}-gate
856     <<: *functest-params
857     container: functest-tempest
858     ref_arg: BRANCH
859     path: docker/tempest
860     exclude:
861       - {'tag': 'latest'}
862       - {'tag': 'leguer'}
863       - {'tag': 'kali'}
864       - {'tag': 'jerma'}
865     jobs:
866       - 'functest-{repo}-{container}-{tag}-gate'
867
868 - project:
869     name: functest-opnfv-functest-healthcheck-{tag}-gate
870     <<: *functest-params
871     container: functest-healthcheck
872     ref_arg: BRANCH
873     path: docker/healthcheck
874     jobs:
875       - 'functest-{repo}-{container}-{tag}-gate'
876
877 - project:
878     name: functest-opnfv-functest-smoke-{tag}-gate
879     <<: *functest-params
880     container: functest-smoke
881     ref_arg: BRANCH
882     path: docker/smoke
883     jobs:
884       - 'functest-{repo}-{container}-{tag}-gate'
885
886 - project:
887     name: functest-opnfv-functest-benchmarking-{tag}-gate
888     <<: *functest-params
889     container: functest-benchmarking
890     ref_arg: BRANCH
891     path: docker/benchmarking
892     jobs:
893       - 'functest-{repo}-{container}-{tag}-gate'
894
895 - project:
896     name: functest-opnfv-functest-vnf-{tag}-gate
897     <<: *functest-params
898     container: functest-vnf
899     ref_arg:
900     path: docker/vnf
901     jobs:
902       - 'functest-{repo}-{container}-{tag}-gate'
903
904 - project:
905     name: functest-opnfv-functest-smoke-cntt-{tag}-gate
906     <<: *functest-params
907     container: functest-smoke-cntt
908     ref_arg: BRANCH
909     path: docker/smoke-cntt
910     jobs:
911       - 'functest-{repo}-{container}-{tag}-gate'
912
913 - project:
914     name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate
915     <<: *functest-params
916     container: functest-benchmarking-cntt
917     ref_arg: BRANCH
918     path: docker/benchmarking-cntt
919     jobs:
920       - 'functest-{repo}-{container}-{tag}-gate'
921
922
923 - trigger:
924     name: functest-patchset-created
925     triggers:
926       - gerrit:
927           trigger-on:
928             - patchset-created-event
929             - comment-added-contains-event:
930                 comment-contains-value: 'recheck'
931             - comment-added-contains-event:
932                 comment-contains-value: 'reverify'
933           projects:
934             - project-compare-type: 'ANT'
935               project-pattern: 'functest'
936               branches:
937                 - branch-compare-type: 'ANT'
938                   branch-pattern: '**/{branch}'
939
940 - job-template:
941     name: 'functest-{tag}-review'
942     project-type: multijob
943     triggers:
944       - functest-patchset-created:
945           branch: '{branch}'
946     parameters:
947       - functest-slave:
948           slave: '{slave}'
949       - functest-build_tag:
950           build_tag: ''
951       - functest-EXTERNAL_NETWORK:
952           EXTERNAL_NETWORK: public
953       - functest-VOLUME_DEVICE_NAME:
954           VOLUME_DEVICE_NAME: sdb
955       - functest-IMAGE_PROPERTIES:
956           IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
957     properties:
958       - build-blocker:
959           use-build-blocker: true
960           blocking-level: 'NODE'
961           blocking-jobs:
962             - '^functest-{tag}-(daily|docker|review)$'
963     builders:
964       - multijob:
965           name: remove former images
966           projects:
967             - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
968               <<: *functest-jobs
969             - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
970               <<: *functest-jobs
971             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
972               <<: *functest-jobs
973             - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
974               <<: *functest-jobs
975             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
976               <<: *functest-jobs
977             - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
978               <<: *functest-jobs
979       - multijob:
980           name: remove dependency
981           projects:
982             - name: 'functest-{repo}-{tag}-dep-rmi'
983               <<: *functest-jobs
984       - multijob:
985           name: pull dependency
986           projects:
987             - name: 'functest-{repo}-{tag}-dep-pull'
988               <<: *functest-jobs
989       - multijob:
990           name: build opnfv/functest-core
991           projects:
992             - name: 'functest-opnfv-functest-core-{tag}-gate'
993               <<: *functest-jobs
994       - multijob:
995           name: build opnfv/functest-tempest
996           projects:
997             - name: 'functest-opnfv-functest-tempest-{tag}-gate'
998               <<: *functest-jobs
999       - multijob:
1000           name: build containers
1001           projects:
1002             - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1003               <<: *functest-jobs
1004             - name: 'functest-opnfv-functest-smoke-{tag}-gate'
1005               <<: *functest-jobs
1006             - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1007               <<: *functest-jobs
1008             - name: 'functest-opnfv-functest-vnf-{tag}-gate'
1009               <<: *functest-jobs
1010       - multijob:
1011           name: build cntt containers
1012           projects:
1013             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1014               <<: *functest-jobs
1015             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1016               <<: *functest-jobs
1017       - multijob:
1018           name: opnfv/functest-healthcheck:{tag}
1019           projects:
1020             - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1021               <<: *functest-jobs
1022             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1023               <<: *functest-jobs
1024             - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1025               <<: *functest-jobs
1026             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1027               <<: *functest-jobs
1028             - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1029               <<: *functest-jobs
1030             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1031               <<: *functest-jobs
1032             - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1033               <<: *functest-jobs
1034             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1035               <<: *functest-jobs
1036             - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1037               <<: *functest-jobs
1038             - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1039               <<: *functest-jobs
1040             - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1041               <<: *functest-jobs
1042             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1043               <<: *functest-jobs
1044             - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1045               <<: *functest-jobs
1046       - multijob:
1047           name: opnfv/functest-smoke:{tag}
1048           projects:
1049             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1050               <<: *functest-jobs
1051             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1052               <<: *functest-jobs
1053             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1054               <<: *functest-jobs
1055             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1056               <<: *functest-jobs
1057             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1058               <<: *functest-jobs
1059             - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1060               <<: *functest-jobs
1061             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
1062               <<: *functest-jobs
1063             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1064               <<: *functest-jobs
1065             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1066               <<: *functest-jobs
1067             - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1068               <<: *functest-jobs
1069             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1070               <<: *functest-jobs
1071             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1072               <<: *functest-jobs
1073             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1074               <<: *functest-jobs
1075             - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
1076               <<: *functest-jobs
1077             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1078               <<: *functest-jobs
1079             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1080               <<: *functest-jobs
1081             - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1082               <<: *functest-jobs
1083             - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
1084               <<: *functest-jobs
1085             - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
1086               <<: *functest-jobs
1087             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1088               <<: *functest-jobs
1089             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1090               <<: *functest-jobs
1091             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1092               <<: *functest-jobs
1093       - multijob:
1094           name: opnfv/functest-smoke-cntt:{tag}
1095           projects:
1096             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1097               <<: *functest-jobs
1098             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1099               <<: *functest-jobs
1100             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1101               <<: *functest-jobs
1102             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1103               <<: *functest-jobs
1104             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1105               <<: *functest-jobs
1106             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1107               <<: *functest-jobs
1108             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1109               <<: *functest-jobs
1110             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1111               <<: *functest-jobs
1112       - multijob:
1113           name: opnfv/functest-benchmarking:{tag}
1114           projects:
1115             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1116               <<: *functest-jobs
1117             - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1118               <<: *functest-jobs
1119             - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1120               <<: *functest-jobs
1121             - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1122               <<: *functest-jobs
1123       - multijob:
1124           name: opnfv/functest-benchmarking-cntt:{tag}
1125           projects:
1126             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1127               <<: *functest-jobs
1128             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1129               <<: *functest-jobs
1130       - multijob:
1131           name: opnfv/functest-vnf:{tag}
1132           projects:
1133             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1134               <<: *functest-jobs
1135             - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1136               <<: *functest-jobs
1137             - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1138               <<: *functest-jobs
1139             - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1140               <<: *functest-jobs
1141             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1142               <<: *functest-jobs
1143
1144 - project:
1145     name: 'functest-review'
1146     <<: *functest-params
1147     jobs:
1148       - 'functest-{tag}-review'
1149
1150 - view:
1151     name: functest-review
1152     view-type: list
1153     columns:
1154       - status
1155       - weather
1156       - job
1157       - last-success
1158       - last-failure
1159       - last-duration
1160     regex: ^functest-[a-z0-9.]+-review$
1161
1162 - view:
1163     name: functest-tox
1164     view-type: list
1165     columns:
1166       - status
1167       - weather
1168       - job
1169       - last-success
1170       - last-failure
1171       - last-duration
1172     regex: ^functest-[a-z0-9.]+-tox$
1173
1174 - builder:
1175     name: functest-push-containers
1176     builders:
1177       - shell: |
1178           set +x
1179           if [ "{repo}" = "_" ]; then
1180             image={container}:{tag}
1181           elif [ "{port}" = "None" ]; then
1182             image={repo}/{container}:{tag}
1183           else
1184             image={repo}:{port}/{container}:{tag}
1185           fi
1186           sudo docker push $image
1187
1188 - trigger:
1189     name: functest-commit
1190     triggers:
1191       - pollscm:
1192           cron: "*/30 * * * *"
1193
1194 - job-template:
1195     name: 'functest-{repo}-{container}-{tag}-build'
1196     parameters:
1197       - functest-slave:
1198           slave: '{slave}'
1199     scm:
1200       - functest-scm:
1201           ref: '{branch}'
1202     builders:
1203       - functest-build-containers:
1204           <<: *functest-build-containers
1205           ref: '{branch}'
1206           buildargs: '{buildargs}'
1207       - functest-push-containers:
1208           <<: *functest-build-containers
1209           ref: '{branch}'
1210
1211 - project:
1212     name: functest-opnfv-functest-core-{tag}-build
1213     <<: *functest-params
1214     container: functest-core
1215     ref_arg: BRANCH
1216     path: docker/core
1217     jobs:
1218       - 'functest-{repo}-{container}-{tag}-build'
1219
1220 - project:
1221     name: functest-opnfv-functest-tempest-{tag}-build
1222     <<: *functest-params
1223     container: functest-tempest
1224     ref_arg: BRANCH
1225     path: docker/tempest
1226     exclude:
1227       - {'tag': 'latest'}
1228       - {'tag': 'leguer'}
1229       - {'tag': 'kali'}
1230       - {'tag': 'jerma'}
1231     jobs:
1232       - 'functest-{repo}-{container}-{tag}-build'
1233
1234 - project:
1235     name: functest-opnfv-functest-healthcheck-{tag}-build
1236     <<: *functest-params
1237     container: functest-healthcheck
1238     ref_arg: BRANCH
1239     path: docker/healthcheck
1240     jobs:
1241       - 'functest-{repo}-{container}-{tag}-build'
1242
1243 - project:
1244     name: functest-opnfv-functest-smoke-{tag}-build
1245     <<: *functest-params
1246     container: functest-smoke
1247     ref_arg: BRANCH
1248     path: docker/smoke
1249     jobs:
1250       - 'functest-{repo}-{container}-{tag}-build'
1251
1252 - project:
1253     name: functest-opnfv-functest-benchmarking-{tag}-build
1254     <<: *functest-params
1255     container: functest-benchmarking
1256     ref_arg: BRANCH
1257     path: docker/benchmarking
1258     jobs:
1259       - 'functest-{repo}-{container}-{tag}-build'
1260
1261 - project:
1262     name: functest-opnfv-functest-vnf-{tag}-build
1263     <<: *functest-params
1264     container: functest-vnf
1265     ref_arg:
1266     path: docker/vnf
1267     jobs:
1268       - 'functest-{repo}-{container}-{tag}-build'
1269
1270 - project:
1271     name: functest-opnfv-functest-smoke-cntt-{tag}-build
1272     <<: *functest-params
1273     container: functest-smoke-cntt
1274     ref_arg: BRANCH
1275     path: docker/smoke-cntt
1276     jobs:
1277       - 'functest-{repo}-{container}-{tag}-build'
1278
1279 - project:
1280     name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
1281     <<: *functest-params
1282     container: functest-benchmarking-cntt
1283     ref_arg: BRANCH
1284     path: docker/benchmarking-cntt
1285     jobs:
1286       - 'functest-{repo}-{container}-{tag}-build'
1287
1288
1289 - job-template:
1290     name: 'functest-{tag}-docker'
1291     project-type: multijob
1292     triggers:
1293       - functest-commit
1294     scm:
1295       - functest-scm:
1296           ref: '{branch}'
1297     parameters:
1298       - functest-slave:
1299           slave: '{slave}'
1300     properties:
1301       - build-blocker:
1302           use-build-blocker: true
1303           blocking-level: 'NODE'
1304           blocking-jobs:
1305             - '^functest-{tag}-(daily|docker|review)$'
1306     builders:
1307       - multijob:
1308           name: remove dependency
1309           projects:
1310             - name: 'functest-{repo}-{tag}-dep-rmi'
1311               <<: *functest-jobs
1312       - multijob:
1313           name: pull dependency
1314           projects:
1315             - name: 'functest-{repo}-{tag}-dep-pull'
1316               <<: *functest-jobs
1317       - multijob:
1318           name: build opnfv/functest-core
1319           projects:
1320             - name: 'functest-opnfv-functest-core-{tag}-build'
1321               <<: *functest-jobs
1322       - multijob:
1323           name: build opnfv/functest-tempest
1324           projects:
1325             - name: 'functest-opnfv-functest-tempest-{tag}-build'
1326               <<: *functest-jobs
1327       - multijob:
1328           name: build containers
1329           projects:
1330             - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1331               <<: *functest-jobs
1332             - name: 'functest-opnfv-functest-smoke-{tag}-build'
1333               <<: *functest-jobs
1334             - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1335               <<: *functest-jobs
1336             - name: 'functest-opnfv-functest-vnf-{tag}-build'
1337               <<: *functest-jobs
1338       - multijob:
1339           name: build cntt containers
1340           projects:
1341             - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1342               <<: *functest-jobs
1343             - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1344               <<: *functest-jobs
1345
1346 - builder:
1347     name: functest-trivy
1348     builders:
1349       - shell: |
1350           sudo apt-get update && sudo apt-get install curl -y
1351           curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
1352           if [ "{repo}" = "_" ]; then
1353             image={container}:{tag}
1354           elif [ "{port}" = "None" ]; then
1355             image={repo}/{container}:{tag}
1356           else
1357             image={repo}:{port}/{container}:{tag}
1358           fi
1359           ./trivy --exit-code 1 $image
1360
1361 - job-template:
1362     name: 'functest-{repo}-{container}-{tag}-trivy'
1363     triggers:
1364       - timed: '@weekly'
1365     parameters:
1366       - functest-slave:
1367           slave: '{slave}'
1368     builders:
1369       - functest-trivy:
1370           <<: *functest-containers
1371
1372 - project:
1373     name: 'functest-opnfv-functest-core-trivy'
1374     <<: *functest-params
1375     container: 'functest-core'
1376     jobs:
1377       - 'functest-{repo}-{container}-{tag}-trivy'
1378
1379 - project:
1380     name: 'functest-opnfv-functest-tempest-trivy'
1381     <<: *functest-params
1382     container: 'functest-tempest'
1383     jobs:
1384       - 'functest-{repo}-{container}-{tag}-trivy'
1385
1386 - project:
1387     name: 'functest-opnfv-functest-healthcheck-trivy'
1388     <<: *functest-params
1389     container: 'functest-healthcheck'
1390     jobs:
1391       - 'functest-{repo}-{container}-{tag}-trivy'
1392
1393 - project:
1394     name: 'functest-opnfv-functest-smoke-trivy'
1395     <<: *functest-params
1396     container: 'functest-smoke'
1397     jobs:
1398       - 'functest-{repo}-{container}-{tag}-trivy'
1399
1400 - project:
1401     name: 'functest-opnfv-functest-benchmarking-trivy'
1402     <<: *functest-params
1403     container: 'functest-benchmarking'
1404     jobs:
1405       - 'functest-{repo}-{container}-{tag}-trivy'
1406
1407 - project:
1408     name: 'functest-opnfv-functest-vnf-trivy'
1409     <<: *functest-params
1410     container: 'functest-vnf'
1411     jobs:
1412       - 'functest-{repo}-{container}-{tag}-trivy'
1413
1414 - project:
1415     name: 'functest-opnfv-functest-smoke-cntt-trivy'
1416     <<: *functest-params
1417     container: 'functest-smoke-cntt'
1418     jobs:
1419       - 'functest-{repo}-{container}-{tag}-trivy'
1420
1421 - project:
1422     name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
1423     <<: *functest-params
1424     container: 'functest-benchmarking-cntt'
1425     jobs:
1426       - 'functest-{repo}-{container}-{tag}-trivy'
1427
1428 - project:
1429     name: 'functest'
1430     <<: *functest-params
1431     jobs:
1432       - 'functest-{tag}-docker'
1433
1434 - view:
1435     name: functest-docker
1436     view-type: list
1437     columns:
1438       - status
1439       - weather
1440       - job
1441       - last-success
1442       - last-failure
1443       - last-duration
1444     regex: ^functest-[a-z0-9.]+-docker$
1445
1446 - view:
1447     name: functest-trivy
1448     view-type: list
1449     columns:
1450       - status
1451       - weather
1452       - job
1453       - last-success
1454       - last-failure
1455       - last-duration
1456     regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$