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