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