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