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