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