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