2 - functest-containers: &functest-containers
3 name: 'functest-containers'
6 container: '{container}'
9 - functest-params: &functest-params
10 name: 'functest-params'
19 DASHBOARD_URL: http://172.30.12.85
24 branch: stable/wallaby
26 DASHBOARD_URL: http://172.30.13.91
33 DASHBOARD_URL: http://172.30.13.94
40 DASHBOARD_URL: http://172.30.12.88
47 DASHBOARD_URL: http://172.30.12.83
50 - functest-jobs: &functest-jobs
52 current-parameters: true
62 name: functest-build_tag
68 name: functest-EXTERNAL_NETWORK
71 name: EXTERNAL_NETWORK
75 name: functest-VOLUME_DEVICE_NAME
78 name: VOLUME_DEVICE_NAME
82 name: functest-IMAGE_PROPERTIES
85 name: IMAGE_PROPERTIES
86 default: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
95 - functest-run-containers: &functest-run-containers
96 name: 'functest-run-containers'
97 <<: *functest-containers
99 privileged: '{privileged}'
103 DASHBOARD_URL: '{DASHBOARD_URL}'
106 name: functest-pull-containers
110 if [ "{repo}" = "_" ]; then
111 image={container}:{tag}
112 elif [ "{port}" = "None" ]; then
113 image={repo}/{container}:{tag}
115 image={repo}:{port}/{container}:{tag}
117 sudo docker pull $image
120 name: functest-run-containers
125 if [ "{volumes}" != "None" ]; then
126 for i in $(echo {volumes} | tr -d '[] ' |sed "s/,/ /g" ); do volumes="-v $i $volumes"; done
129 if [ "{env}" != "None" ]; then
130 for i in $(eval echo {env} | tr -d '[] ' |sed "s/,/ /g" ); do env="-e $i $env"; done
132 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
133 if [ "{repo}" = "_" ]; then
134 image={container}:{tag}
135 elif [ "{port}" = "None" ]; then
136 image={repo}/{container}:{tag}
138 image={repo}:{port}/{container}:{tag}
141 sudo docker run --rm \
142 --privileged={privileged} \
143 --network={network} \
146 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
147 -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
148 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
149 -v /home/opnfv/functest/.boto:/root/.boto \
150 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
151 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
152 -e NODE_NAME=$slave \
153 -e BUILD_TAG=$BUILD_TAG \
154 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
155 -e DASHBOARD_URL={DASHBOARD_URL} \
156 $image run_tests -t {test} -p -r
159 name: functest-remove-images
163 if [ "{repo}" = "_" ]; then
164 image={container}:{tag}
165 elif [ "{port}" = "None" ]; then
166 image={repo}/{container}:{tag}
168 image={repo}:{port}/{container}:{tag}
170 sudo docker rmi $image || true
173 name: 'functest-{repo}-{container}-{tag}-pull'
178 - functest-pull-containers:
179 <<: *functest-containers
182 name: 'functest-opnfv-functest-healthcheck-pull'
184 container: 'functest-healthcheck'
186 - 'functest-{repo}-{container}-{tag}-pull'
189 name: 'functest-opnfv-functest-smoke-pull'
191 container: 'functest-smoke'
193 - 'functest-{repo}-{container}-{tag}-pull'
196 name: 'functest-opnfv-functest-smoke-cntt-pull'
198 container: 'functest-smoke-cntt'
200 - 'functest-{repo}-{container}-{tag}-pull'
203 name: 'functest-opnfv-functest-benchmarking-pull'
205 container: 'functest-benchmarking'
207 - 'functest-{repo}-{container}-{tag}-pull'
210 name: 'functest-opnfv-functest-benchmarking-cntt-pull'
212 container: 'functest-benchmarking-cntt'
214 - 'functest-{repo}-{container}-{tag}-pull'
217 name: 'functest-opnfv-functest-vnf-pull'
219 container: 'functest-vnf'
221 - 'functest-{repo}-{container}-{tag}-pull'
224 name: 'functest-{repo}-{container}-{tag}-rmi'
229 - functest-remove-images:
230 <<: *functest-containers
233 name: 'functest-opnfv-functest-healthcheck-rmi'
235 container: 'functest-healthcheck'
237 - 'functest-{repo}-{container}-{tag}-rmi'
240 name: 'functest-opnfv-functest-smoke-rmi'
242 container: 'functest-smoke'
244 - 'functest-{repo}-{container}-{tag}-rmi'
247 name: 'functest-opnfv-functest-smoke-cntt-rmi'
249 container: 'functest-smoke-cntt'
251 - 'functest-{repo}-{container}-{tag}-rmi'
254 name: 'functest-opnfv-functest-benchmarking-rmi'
256 container: 'functest-benchmarking'
258 - 'functest-{repo}-{container}-{tag}-rmi'
261 name: 'functest-opnfv-functest-benchmarking-cntt-rmi'
263 container: 'functest-benchmarking-cntt'
265 - 'functest-{repo}-{container}-{tag}-rmi'
268 name: 'functest-opnfv-functest-vnf-rmi'
270 container: 'functest-vnf'
272 - 'functest-{repo}-{container}-{tag}-rmi'
275 name: 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
279 - functest-build_tag:
281 - functest-EXTERNAL_NETWORK:
282 EXTERNAL_NETWORK: public
283 - functest-VOLUME_DEVICE_NAME:
284 VOLUME_DEVICE_NAME: sdb
285 - functest-IMAGE_PROPERTIES:
286 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
290 - functest-run-containers:
291 <<: *functest-run-containers
294 name: 'functest-opnfv-functest-healthcheck'
297 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
298 - /home/opnfv/functest/images:/home/opnfv/functest/images
300 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
301 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
302 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
304 container: 'functest-healthcheck'
322 - 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
325 name: 'functest-opnfv-functest-smoke-{tag}-{test}-run'
329 - functest-build_tag:
331 - functest-EXTERNAL_NETWORK:
332 EXTERNAL_NETWORK: public
333 - functest-VOLUME_DEVICE_NAME:
334 VOLUME_DEVICE_NAME: sdb
335 - functest-IMAGE_PROPERTIES:
336 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
340 - functest-run-containers:
341 <<: *functest-run-containers
344 name: 'functest-opnfv-functest-smoke'
347 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
348 - /home/opnfv/functest/images:/home/opnfv/functest/images
350 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
351 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
352 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
354 container: 'functest-smoke'
382 test: refstack_defcore
384 test: networking-bgpvpn
390 test: refstack_defcore
392 test: networking-bgpvpn
398 test: refstack_defcore
400 test: networking-bgpvpn
406 test: refstack_defcore
408 test: networking-bgpvpn
418 test: refstack_defcore
420 test: networking-bgpvpn
432 - 'functest-opnfv-functest-smoke-{tag}-{test}-run'
435 name: 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
439 - functest-build_tag:
441 - functest-EXTERNAL_NETWORK:
442 EXTERNAL_NETWORK: public
443 - functest-VOLUME_DEVICE_NAME:
444 VOLUME_DEVICE_NAME: sdb
445 - functest-IMAGE_PROPERTIES:
446 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
450 - functest-run-containers:
451 <<: *functest-run-containers
454 name: 'functest-opnfv-functest-smoke-cntt'
457 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
458 - /home/opnfv/functest/images:/home/opnfv/functest/images
460 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
461 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
462 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
464 container: 'functest-smoke-cntt'
466 - tempest_neutron_cntt
467 - tempest_cinder_cntt
468 - tempest_keystone_cntt
472 - tempest_scenario_cntt
477 - 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
480 name: 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
484 - functest-build_tag:
486 - functest-EXTERNAL_NETWORK:
487 EXTERNAL_NETWORK: public
488 - functest-VOLUME_DEVICE_NAME:
489 VOLUME_DEVICE_NAME: sdb
490 - functest-IMAGE_PROPERTIES:
491 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
495 - functest-run-containers:
496 <<: *functest-run-containers
499 name: 'functest-opnfv-functest-benchmarking'
502 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
503 - /home/opnfv/functest/images:/home/opnfv/functest/images
505 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
506 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
507 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
509 container: 'functest-benchmarking'
518 - 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
521 name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
525 - functest-build_tag:
527 - functest-EXTERNAL_NETWORK:
528 EXTERNAL_NETWORK: public
529 - functest-VOLUME_DEVICE_NAME:
530 VOLUME_DEVICE_NAME: sdb
531 - functest-IMAGE_PROPERTIES:
532 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
536 - functest-run-containers:
537 <<: *functest-run-containers
540 name: 'functest-opnfv-functest-benchmarking-cntt'
543 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
544 - /home/opnfv/functest/images:/home/opnfv/functest/images
546 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
547 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
548 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
550 container: 'functest-benchmarking-cntt'
557 - 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
560 name: 'functest-opnfv-functest-vnf-{tag}-{test}-run'
564 - functest-build_tag:
566 - functest-EXTERNAL_NETWORK:
567 EXTERNAL_NETWORK: public
568 - functest-VOLUME_DEVICE_NAME:
569 VOLUME_DEVICE_NAME: sdb
570 - functest-IMAGE_PROPERTIES:
571 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
575 - functest-run-containers:
576 <<: *functest-run-containers
579 name: 'functest-opnfv-functest-vnf'
582 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
583 - /home/opnfv/functest/images:/home/opnfv/functest/images
585 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
586 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
587 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
589 container: 'functest-vnf'
599 - 'functest-opnfv-functest-vnf-{tag}-{test}-run'
607 if [ "{volumes}" != "None" ]; then
608 for i in $(echo {volumes} | tr -d '[] ' |sed "s/,/ /g" ); do volumes="-v $i $volumes"; done
611 if [ "{env}" != "None" ]; then
612 for i in $(eval echo {env} | tr -d '[] ' |sed "s/,/ /g" ); do env="-e $i $env"; done
614 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
615 if [ "{repo}" = "_" ]; then
616 image={container}:{tag}
617 elif [ "{port}" = "None" ]; then
618 image={repo}/{container}:{tag}
620 image={repo}:{port}/{container}:{tag}
622 sudo docker run --rm \
625 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
626 -e S3_DST_URL=s3://artifacts.opnfv.org/functest \
627 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \
628 -v /home/opnfv/functest/.boto:/root/.boto \
629 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
630 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
631 -e BUILD_TAG=$BUILD_TAG \
632 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
636 name: 'functest-{tag}-zip'
640 - functest-build_tag:
642 - functest-EXTERNAL_NETWORK:
643 EXTERNAL_NETWORK: public
644 - functest-VOLUME_DEVICE_NAME:
645 VOLUME_DEVICE_NAME: sdb
646 - functest-IMAGE_PROPERTIES:
647 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
652 <<: *functest-containers
657 name: 'functest-{tag}-zip'
660 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
661 - /home/opnfv/functest/images:/home/opnfv/functest/images
663 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
664 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
665 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
667 container: 'functest-healthcheck'
669 - 'functest-{tag}-zip'
672 name: 'functest-{tag}-daily'
673 project-type: multijob
679 - functest-build_tag:
681 - functest-EXTERNAL_NETWORK:
682 EXTERNAL_NETWORK: public
683 - functest-VOLUME_DEVICE_NAME:
684 VOLUME_DEVICE_NAME: sdb
685 - functest-IMAGE_PROPERTIES:
686 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
689 # PyYAML and yamllint differ here
690 # see https://github.com/yaml/pyyaml/issues/234
691 # yamllint disable rule:indentation
695 - ^functest-(pi-)*{tag}-(daily|docker|review)$
696 # yamllint enable rule:indentation
699 name: remove former images
701 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
703 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
705 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
707 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
709 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
711 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
714 name: pull containers
716 - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
718 - name: 'functest-opnfv-functest-smoke-{tag}-pull'
720 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
722 - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
724 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
726 - name: 'functest-opnfv-functest-vnf-{tag}-pull'
729 name: opnfv/functest-healthcheck:{tag}
731 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
733 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
735 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
737 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
739 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
741 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
743 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
745 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
747 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
749 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
751 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
753 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
755 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
758 name: opnfv/functest-smoke:{tag}
760 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
762 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
764 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
766 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
768 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
770 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
772 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
774 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
776 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
778 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
780 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
782 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
784 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
786 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
788 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
790 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
792 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
794 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
796 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
798 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
800 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
802 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
805 name: opnfv/functest-smoke-cntt:{tag}
807 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
809 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
811 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
813 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
815 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
817 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
819 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
821 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
824 name: opnfv/functest-benchmarking:{tag}
826 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
828 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
830 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
832 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
835 name: opnfv/functest-benchmarking-cntt:{tag}
837 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
839 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
842 name: opnfv/functest-vnf:{tag}
844 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
846 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
848 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
850 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
852 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
855 name: dump all campaign data
857 - name: 'functest-{tag}-zip'
861 name: 'functest-daily'
864 - 'functest-{tag}-daily'
876 regex: ^functest-[a-z0-9.]+-daily$
878 - functest-build-containers: &functest-build-containers
879 name: 'functest-build-containers'
880 <<: *functest-containers
883 buildargs: '{buildargs}'
887 name: functest-build-containers
891 if [ "{repo}" = "_" ]; then
892 image={container}:{tag}
893 elif [ "{port}" = "None" ]; then
894 image={repo}/{container}:{tag}
896 image={repo}:{port}/{container}:{tag}
899 if [ "{buildargs}" != "None" ]; then
900 build_args="{buildargs}"
902 if [ "{ref_arg}" != "None" ]; then
903 build_args="$build_args --build-arg {ref_arg}={ref}"
906 if [ "{from}" != "None" ]; then
907 sed -i {from} Dockerfile
909 sudo docker build $build_args \
910 --pull=false --no-cache --force-rm=true \
917 url: 'https://gerrit.opnfv.org/gerrit/functest'
918 refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
922 - functest-dep: &functest-dep
923 name: 'functest-containers'
927 dependency: '{dependency}'
930 name: functest-pull-dep-images
934 if [ "_" = "_" ]; then
935 image=alpine:{dependency}
936 elif [ "None" = "None" ]; then
937 image=_/alpine:{dependency}
939 image=_:/alpine:{dependency}
941 sudo docker pull $image || true
944 name: functest-remove-dep-images
948 if [ "_" = "_" ]; then
949 image=alpine:{dependency}
950 elif [ "" = "None" ]; then
951 image=_/alpine:{dependency}
953 image=_:/alpine:{dependency}
955 sudo docker rmi $image || true
958 name: 'functest-{repo}-{tag}-dep-pull'
963 - functest-pull-dep-images:
967 name: 'functest-{repo}-{tag}-dep-pull'
970 - 'functest-{repo}-{tag}-dep-pull'
973 name: 'functest-{repo}-{tag}-dep-rmi'
978 - functest-remove-dep-images:
982 name: 'functest-{repo}-{tag}-dep-rmi'
985 - 'functest-{repo}-{tag}-dep-rmi'
992 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
993 apt-get install software-properties-common gpg -y
994 sudo add-apt-repository -y ppa:deadsnakes/ppa
995 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
997 python3.9 python3.9-dev python3.9-distutils \
998 python3.8 python3.8-dev python3.8-distutils \
999 python3.7 python3.7-dev python3.6 python3.6-dev \
1000 python python-dev python3-pip enchant -y
1001 sudo pip3 install tox tox-pip-version
1006 name: 'functest-{tag}-tox'
1009 ref: $GERRIT_REFSPEC
1011 - functest-patchset-created:
1021 <<: *functest-params
1023 - 'functest-{tag}-tox'
1026 name: 'functest-{repo}-{container}-{tag}-gate'
1032 ref: $GERRIT_REFSPEC
1034 - functest-build-containers:
1035 <<: *functest-build-containers
1036 ref: $GERRIT_REFSPEC
1037 buildargs: '{buildargs}'
1040 name: functest-opnfv-functest-core-{tag}-gate
1041 <<: *functest-params
1042 container: functest-core
1046 - 'functest-{repo}-{container}-{tag}-gate'
1049 name: functest-opnfv-functest-tempest-{tag}-gate
1050 <<: *functest-params
1051 container: functest-tempest
1053 path: docker/tempest
1056 - {'tag': 'wallaby'}
1061 - 'functest-{repo}-{container}-{tag}-gate'
1064 name: functest-opnfv-functest-healthcheck-{tag}-gate
1065 <<: *functest-params
1066 container: functest-healthcheck
1068 path: docker/healthcheck
1070 - 'functest-{repo}-{container}-{tag}-gate'
1073 name: functest-opnfv-functest-smoke-{tag}-gate
1074 <<: *functest-params
1075 container: functest-smoke
1079 - 'functest-{repo}-{container}-{tag}-gate'
1082 name: functest-opnfv-functest-benchmarking-{tag}-gate
1083 <<: *functest-params
1084 container: functest-benchmarking
1086 path: docker/benchmarking
1088 - 'functest-{repo}-{container}-{tag}-gate'
1091 name: functest-opnfv-functest-vnf-{tag}-gate
1092 <<: *functest-params
1093 container: functest-vnf
1097 - 'functest-{repo}-{container}-{tag}-gate'
1100 name: functest-opnfv-functest-smoke-cntt-{tag}-gate
1101 <<: *functest-params
1102 container: functest-smoke-cntt
1104 path: docker/smoke-cntt
1106 - 'functest-{repo}-{container}-{tag}-gate'
1109 name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate
1110 <<: *functest-params
1111 container: functest-benchmarking-cntt
1113 path: docker/benchmarking-cntt
1115 - 'functest-{repo}-{container}-{tag}-gate'
1118 name: functest-patchset-created
1122 - patchset-created-event
1123 - comment-added-contains-event:
1124 comment-contains-value: 'recheck'
1125 - comment-added-contains-event:
1126 comment-contains-value: 'reverify'
1128 - project-compare-type: 'ANT'
1129 project-pattern: 'functest'
1131 - branch-compare-type: 'ANT'
1132 branch-pattern: '**/{branch}'
1135 name: 'functest-{tag}-review'
1136 project-type: multijob
1138 - functest-patchset-created:
1143 - functest-build_tag:
1145 - functest-EXTERNAL_NETWORK:
1146 EXTERNAL_NETWORK: public
1147 - functest-VOLUME_DEVICE_NAME:
1148 VOLUME_DEVICE_NAME: sdb
1149 - functest-IMAGE_PROPERTIES:
1150 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
1153 # PyYAML and yamllint differ here
1154 # see https://github.com/yaml/pyyaml/issues/234
1155 # yamllint disable rule:indentation
1159 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1160 # yamllint enable rule:indentation
1163 name: remove former images
1165 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
1167 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
1169 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
1171 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
1173 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
1175 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
1178 name: remove dependency
1180 - name: 'functest-{repo}-{tag}-dep-rmi'
1183 name: pull dependency
1185 - name: 'functest-{repo}-{tag}-dep-pull'
1188 name: build opnfv/functest-core
1190 - name: 'functest-opnfv-functest-core-{tag}-gate'
1193 name: build opnfv/functest-tempest
1195 - name: 'functest-opnfv-functest-tempest-{tag}-gate'
1198 name: build containers
1200 - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1202 - name: 'functest-opnfv-functest-smoke-{tag}-gate'
1204 - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1206 - name: 'functest-opnfv-functest-vnf-{tag}-gate'
1209 name: build cntt containers
1211 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1213 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1216 name: opnfv/functest-healthcheck:{tag}
1218 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1220 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1222 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1224 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1226 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1228 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1230 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1232 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1234 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1236 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1238 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1240 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1242 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1245 name: opnfv/functest-smoke:{tag}
1247 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1249 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1251 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1253 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1255 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1257 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1259 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
1261 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1263 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1265 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1267 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1269 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1271 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1273 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
1275 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1277 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1279 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1281 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
1283 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
1285 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1287 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1289 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1292 name: opnfv/functest-smoke-cntt:{tag}
1294 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1296 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1298 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1300 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1302 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1304 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1306 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1308 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1311 name: opnfv/functest-benchmarking:{tag}
1313 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1315 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1317 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1319 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1322 name: opnfv/functest-benchmarking-cntt:{tag}
1324 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1326 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1329 name: opnfv/functest-vnf:{tag}
1331 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1333 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1335 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1337 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1339 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1343 name: 'functest-review'
1344 <<: *functest-params
1346 - 'functest-{tag}-review'
1349 name: functest-review
1358 regex: ^functest-[a-z0-9.]+-review$
1370 regex: ^functest-[a-z0-9.]+-tox$
1373 name: functest-push-containers
1377 if [ "{repo}" = "_" ]; then
1378 image={container}:{tag}
1379 elif [ "{port}" = "None" ]; then
1380 image={repo}/{container}:{tag}
1382 image={repo}:{port}/{container}:{tag}
1384 sudo docker push $image
1387 name: functest-commit
1390 cron: "*/30 * * * *"
1393 name: 'functest-{repo}-{container}-{tag}-build'
1401 - functest-build-containers:
1402 <<: *functest-build-containers
1404 buildargs: '{buildargs}'
1405 - functest-push-containers:
1406 <<: *functest-build-containers
1410 name: functest-opnfv-functest-core-{tag}-build
1411 <<: *functest-params
1412 container: functest-core
1416 - 'functest-{repo}-{container}-{tag}-build'
1419 name: functest-opnfv-functest-tempest-{tag}-build
1420 <<: *functest-params
1421 container: functest-tempest
1423 path: docker/tempest
1426 - {'tag': 'wallaby'}
1431 - 'functest-{repo}-{container}-{tag}-build'
1434 name: functest-opnfv-functest-healthcheck-{tag}-build
1435 <<: *functest-params
1436 container: functest-healthcheck
1438 path: docker/healthcheck
1440 - 'functest-{repo}-{container}-{tag}-build'
1443 name: functest-opnfv-functest-smoke-{tag}-build
1444 <<: *functest-params
1445 container: functest-smoke
1449 - 'functest-{repo}-{container}-{tag}-build'
1452 name: functest-opnfv-functest-benchmarking-{tag}-build
1453 <<: *functest-params
1454 container: functest-benchmarking
1456 path: docker/benchmarking
1458 - 'functest-{repo}-{container}-{tag}-build'
1461 name: functest-opnfv-functest-vnf-{tag}-build
1462 <<: *functest-params
1463 container: functest-vnf
1467 - 'functest-{repo}-{container}-{tag}-build'
1470 name: functest-opnfv-functest-smoke-cntt-{tag}-build
1471 <<: *functest-params
1472 container: functest-smoke-cntt
1474 path: docker/smoke-cntt
1476 - 'functest-{repo}-{container}-{tag}-build'
1479 name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
1480 <<: *functest-params
1481 container: functest-benchmarking-cntt
1483 path: docker/benchmarking-cntt
1485 - 'functest-{repo}-{container}-{tag}-build'
1488 name: 'functest-{tag}-docker'
1489 project-type: multijob
1498 # PyYAML and yamllint differ here
1499 # see https://github.com/yaml/pyyaml/issues/234
1500 # yamllint disable rule:indentation
1504 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1505 # yamllint enable rule:indentation
1508 name: remove dependency
1510 - name: 'functest-{repo}-{tag}-dep-rmi'
1513 name: pull dependency
1515 - name: 'functest-{repo}-{tag}-dep-pull'
1518 name: build opnfv/functest-core
1520 - name: 'functest-opnfv-functest-core-{tag}-build'
1523 name: build opnfv/functest-tempest
1525 - name: 'functest-opnfv-functest-tempest-{tag}-build'
1528 name: build containers
1530 - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1532 - name: 'functest-opnfv-functest-smoke-{tag}-build'
1534 - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1536 - name: 'functest-opnfv-functest-vnf-{tag}-build'
1539 name: build cntt containers
1541 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1543 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1547 name: functest-trivy
1550 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
1551 apt-get install curl -y
1553 curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
1554 if [ "{repo}" = "_" ]; then
1555 image={container}:{tag}
1556 elif [ "{port}" = "None" ]; then
1557 image={repo}/{container}:{tag}
1559 image={repo}:{port}/{container}:{tag}
1561 ./trivy --exit-code 1 $image
1564 name: 'functest-{repo}-{container}-{tag}-trivy'
1572 <<: *functest-containers
1575 name: 'functest-opnfv-functest-core-trivy'
1576 <<: *functest-params
1577 container: 'functest-core'
1579 - 'functest-{repo}-{container}-{tag}-trivy'
1582 name: 'functest-opnfv-functest-tempest-trivy'
1583 <<: *functest-params
1584 container: 'functest-tempest'
1586 - 'functest-{repo}-{container}-{tag}-trivy'
1589 name: 'functest-opnfv-functest-healthcheck-trivy'
1590 <<: *functest-params
1591 container: 'functest-healthcheck'
1593 - 'functest-{repo}-{container}-{tag}-trivy'
1596 name: 'functest-opnfv-functest-smoke-trivy'
1597 <<: *functest-params
1598 container: 'functest-smoke'
1600 - 'functest-{repo}-{container}-{tag}-trivy'
1603 name: 'functest-opnfv-functest-benchmarking-trivy'
1604 <<: *functest-params
1605 container: 'functest-benchmarking'
1607 - 'functest-{repo}-{container}-{tag}-trivy'
1610 name: 'functest-opnfv-functest-vnf-trivy'
1611 <<: *functest-params
1612 container: 'functest-vnf'
1614 - 'functest-{repo}-{container}-{tag}-trivy'
1617 name: 'functest-opnfv-functest-smoke-cntt-trivy'
1618 <<: *functest-params
1619 container: 'functest-smoke-cntt'
1621 - 'functest-{repo}-{container}-{tag}-trivy'
1624 name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
1625 <<: *functest-params
1626 container: 'functest-benchmarking-cntt'
1628 - 'functest-{repo}-{container}-{tag}-trivy'
1632 <<: *functest-params
1634 - 'functest-{tag}-docker'
1637 name: functest-docker
1646 regex: ^functest-[a-z0-9.]+-docker$
1649 name: functest-trivy
1658 regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$