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
126 if [ "{volumes}" != "None" ]; then
127 for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); do volumes="-v $i $volumes"; done
131 if [ "{env}" != "None" ]; then
132 for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); do env="-e $i $env"; done
134 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
135 if [ "{repo}" = "_" ]; then
136 image={container}:{tag}
137 elif [ "{port}" = "None" ]; then
138 image={repo}/{container}:{tag}
140 image={repo}:{port}/{container}:{tag}
143 sudo docker run --rm \
144 --privileged={privileged} \
145 --network={network} \
148 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
149 -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
150 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
151 -v /home/opnfv/functest/.boto:/root/.boto \
152 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
153 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
154 -e NODE_NAME=$slave \
155 -e BUILD_TAG=$BUILD_TAG \
156 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
157 -e DASHBOARD_URL={DASHBOARD_URL} \
158 $image run_tests -t {test} -p -r
161 name: functest-remove-images
165 if [ "{repo}" = "_" ]; then
166 image={container}:{tag}
167 elif [ "{port}" = "None" ]; then
168 image={repo}/{container}:{tag}
170 image={repo}:{port}/{container}:{tag}
172 sudo docker rmi $image || true
175 name: 'functest-{repo}-{container}-{tag}-pull'
180 - functest-pull-containers:
181 <<: *functest-containers
184 name: 'functest-opnfv-functest-healthcheck-pull'
186 container: 'functest-healthcheck'
188 - 'functest-{repo}-{container}-{tag}-pull'
191 name: 'functest-opnfv-functest-smoke-pull'
193 container: 'functest-smoke'
195 - 'functest-{repo}-{container}-{tag}-pull'
198 name: 'functest-opnfv-functest-smoke-cntt-pull'
200 container: 'functest-smoke-cntt'
202 - 'functest-{repo}-{container}-{tag}-pull'
205 name: 'functest-opnfv-functest-benchmarking-pull'
207 container: 'functest-benchmarking'
209 - 'functest-{repo}-{container}-{tag}-pull'
212 name: 'functest-opnfv-functest-benchmarking-cntt-pull'
214 container: 'functest-benchmarking-cntt'
216 - 'functest-{repo}-{container}-{tag}-pull'
219 name: 'functest-opnfv-functest-vnf-pull'
221 container: 'functest-vnf'
223 - 'functest-{repo}-{container}-{tag}-pull'
226 name: 'functest-{repo}-{container}-{tag}-rmi'
231 - functest-remove-images:
232 <<: *functest-containers
235 name: 'functest-opnfv-functest-healthcheck-rmi'
237 container: 'functest-healthcheck'
239 - 'functest-{repo}-{container}-{tag}-rmi'
242 name: 'functest-opnfv-functest-smoke-rmi'
244 container: 'functest-smoke'
246 - 'functest-{repo}-{container}-{tag}-rmi'
249 name: 'functest-opnfv-functest-smoke-cntt-rmi'
251 container: 'functest-smoke-cntt'
253 - 'functest-{repo}-{container}-{tag}-rmi'
256 name: 'functest-opnfv-functest-benchmarking-rmi'
258 container: 'functest-benchmarking'
260 - 'functest-{repo}-{container}-{tag}-rmi'
263 name: 'functest-opnfv-functest-benchmarking-cntt-rmi'
265 container: 'functest-benchmarking-cntt'
267 - 'functest-{repo}-{container}-{tag}-rmi'
270 name: 'functest-opnfv-functest-vnf-rmi'
272 container: 'functest-vnf'
274 - 'functest-{repo}-{container}-{tag}-rmi'
277 name: 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
281 - functest-build_tag:
283 - functest-EXTERNAL_NETWORK:
284 EXTERNAL_NETWORK: public
285 - functest-VOLUME_DEVICE_NAME:
286 VOLUME_DEVICE_NAME: sdb
287 - functest-IMAGE_PROPERTIES:
288 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
292 - functest-run-containers:
293 <<: *functest-run-containers
296 name: 'functest-opnfv-functest-healthcheck'
299 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
300 - /home/opnfv/functest/images:/home/opnfv/functest/images
302 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
303 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
304 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
306 container: 'functest-healthcheck'
324 - 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
327 name: 'functest-opnfv-functest-smoke-{tag}-{test}-run'
331 - functest-build_tag:
333 - functest-EXTERNAL_NETWORK:
334 EXTERNAL_NETWORK: public
335 - functest-VOLUME_DEVICE_NAME:
336 VOLUME_DEVICE_NAME: sdb
337 - functest-IMAGE_PROPERTIES:
338 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
342 - functest-run-containers:
343 <<: *functest-run-containers
346 name: 'functest-opnfv-functest-smoke'
349 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
350 - /home/opnfv/functest/images:/home/opnfv/functest/images
352 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
353 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
354 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
356 container: 'functest-smoke'
384 test: refstack_defcore
386 test: networking-bgpvpn
392 test: refstack_defcore
394 test: networking-bgpvpn
400 test: refstack_defcore
402 test: networking-bgpvpn
408 test: refstack_defcore
410 test: networking-bgpvpn
420 test: refstack_defcore
422 test: networking-bgpvpn
434 - 'functest-opnfv-functest-smoke-{tag}-{test}-run'
437 name: 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
441 - functest-build_tag:
443 - functest-EXTERNAL_NETWORK:
444 EXTERNAL_NETWORK: public
445 - functest-VOLUME_DEVICE_NAME:
446 VOLUME_DEVICE_NAME: sdb
447 - functest-IMAGE_PROPERTIES:
448 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
452 - functest-run-containers:
453 <<: *functest-run-containers
456 name: 'functest-opnfv-functest-smoke-cntt'
459 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
460 - /home/opnfv/functest/images:/home/opnfv/functest/images
462 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
463 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
464 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
466 container: 'functest-smoke-cntt'
468 - tempest_neutron_cntt
469 - tempest_cinder_cntt
470 - tempest_keystone_cntt
474 - tempest_scenario_cntt
479 - 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
482 name: 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
486 - functest-build_tag:
488 - functest-EXTERNAL_NETWORK:
489 EXTERNAL_NETWORK: public
490 - functest-VOLUME_DEVICE_NAME:
491 VOLUME_DEVICE_NAME: sdb
492 - functest-IMAGE_PROPERTIES:
493 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
497 - functest-run-containers:
498 <<: *functest-run-containers
501 name: 'functest-opnfv-functest-benchmarking'
504 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
505 - /home/opnfv/functest/images:/home/opnfv/functest/images
507 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
508 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
509 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
511 container: 'functest-benchmarking'
520 - 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
523 name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
527 - functest-build_tag:
529 - functest-EXTERNAL_NETWORK:
530 EXTERNAL_NETWORK: public
531 - functest-VOLUME_DEVICE_NAME:
532 VOLUME_DEVICE_NAME: sdb
533 - functest-IMAGE_PROPERTIES:
534 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
538 - functest-run-containers:
539 <<: *functest-run-containers
542 name: 'functest-opnfv-functest-benchmarking-cntt'
545 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
546 - /home/opnfv/functest/images:/home/opnfv/functest/images
548 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
549 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
550 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
552 container: 'functest-benchmarking-cntt'
559 - 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
562 name: 'functest-opnfv-functest-vnf-{tag}-{test}-run'
566 - functest-build_tag:
568 - functest-EXTERNAL_NETWORK:
569 EXTERNAL_NETWORK: public
570 - functest-VOLUME_DEVICE_NAME:
571 VOLUME_DEVICE_NAME: sdb
572 - functest-IMAGE_PROPERTIES:
573 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
577 - functest-run-containers:
578 <<: *functest-run-containers
581 name: 'functest-opnfv-functest-vnf'
584 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
585 - /home/opnfv/functest/images:/home/opnfv/functest/images
587 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
588 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
589 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
591 container: 'functest-vnf'
601 - 'functest-opnfv-functest-vnf-{tag}-{test}-run'
609 if [ "{volumes}" != "None" ]; then
610 for i in $(echo {volumes} | tr -d '[] ' |sed "s/,/ /g" ); do volumes="-v $i $volumes"; done
613 if [ "{env}" != "None" ]; then
614 for i in $(eval echo {env} | tr -d '[] ' |sed "s/,/ /g" ); do env="-e $i $env"; done
616 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
617 if [ "{repo}" = "_" ]; then
618 image={container}:{tag}
619 elif [ "{port}" = "None" ]; then
620 image={repo}/{container}:{tag}
622 image={repo}:{port}/{container}:{tag}
624 sudo docker run --rm \
627 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
628 -e S3_DST_URL=s3://artifacts.opnfv.org/functest \
629 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \
630 -v /home/opnfv/functest/.boto:/root/.boto \
631 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
632 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
633 -e BUILD_TAG=$BUILD_TAG \
634 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
638 name: 'functest-{tag}-zip'
642 - functest-build_tag:
644 - functest-EXTERNAL_NETWORK:
645 EXTERNAL_NETWORK: public
646 - functest-VOLUME_DEVICE_NAME:
647 VOLUME_DEVICE_NAME: sdb
648 - functest-IMAGE_PROPERTIES:
649 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
654 <<: *functest-containers
659 name: 'functest-{tag}-zip'
662 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
663 - /home/opnfv/functest/images:/home/opnfv/functest/images
665 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
666 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
667 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
669 container: 'functest-healthcheck'
671 - 'functest-{tag}-zip'
674 name: 'functest-{tag}-daily'
675 project-type: multijob
681 - functest-build_tag:
683 - functest-EXTERNAL_NETWORK:
684 EXTERNAL_NETWORK: public
685 - functest-VOLUME_DEVICE_NAME:
686 VOLUME_DEVICE_NAME: sdb
687 - functest-IMAGE_PROPERTIES:
688 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
691 # PyYAML and yamllint differ here
692 # see https://github.com/yaml/pyyaml/issues/234
693 # yamllint disable rule:indentation
697 - ^functest-(pi-)*{tag}-(daily|docker|review)$
698 # yamllint enable rule:indentation
701 name: remove former images
703 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
705 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
707 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
709 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
711 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
713 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
716 name: pull containers
718 - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
720 - name: 'functest-opnfv-functest-smoke-{tag}-pull'
722 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
724 - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
726 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
728 - name: 'functest-opnfv-functest-vnf-{tag}-pull'
731 name: opnfv/functest-healthcheck:{tag}
733 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
735 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
737 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
739 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
741 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
743 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
745 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
747 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
749 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
751 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
753 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
755 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
757 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
760 name: opnfv/functest-smoke:{tag}
762 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
764 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
766 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
768 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
770 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
772 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
774 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
776 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
778 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
780 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
782 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
784 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
786 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
788 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
790 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
792 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
794 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
796 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
798 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
800 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
802 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
804 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
807 name: opnfv/functest-smoke-cntt:{tag}
809 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
811 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
813 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
815 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
817 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
819 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
821 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
823 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
826 name: opnfv/functest-benchmarking:{tag}
828 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
830 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
832 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
834 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
837 name: opnfv/functest-benchmarking-cntt:{tag}
839 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
841 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
844 name: opnfv/functest-vnf:{tag}
846 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
848 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
850 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
852 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
854 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
857 name: dump all campaign data
859 - name: 'functest-{tag}-zip'
863 name: 'functest-daily'
866 - 'functest-{tag}-daily'
878 regex: ^functest-[a-z0-9.]+-daily$
880 - functest-build-containers: &functest-build-containers
881 name: 'functest-build-containers'
882 <<: *functest-containers
885 buildargs: '{buildargs}'
889 name: functest-build-containers
893 if [ "{repo}" = "_" ]; then
894 image={container}:{tag}
895 elif [ "{port}" = "None" ]; then
896 image={repo}/{container}:{tag}
898 image={repo}:{port}/{container}:{tag}
901 if [ "{buildargs}" != "None" ]; then
902 build_args="{buildargs}"
904 if [ "{ref_arg}" != "None" ]; then
905 build_args="$build_args --build-arg {ref_arg}={ref}"
908 if [ "{from}" != "None" ]; then
909 sed -i {from} Dockerfile
911 sudo docker build $build_args \
912 --pull=false --no-cache --force-rm=true \
919 url: 'https://gerrit.opnfv.org/gerrit/functest'
920 refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
924 - functest-dep: &functest-dep
925 name: 'functest-containers'
929 dependency: '{dependency}'
932 name: functest-pull-dep-images
936 if [ "_" = "_" ]; then
937 image=alpine:{dependency}
938 elif [ "None" = "None" ]; then
939 image=_/alpine:{dependency}
941 image=_:/alpine:{dependency}
943 sudo docker pull $image || true
946 name: functest-remove-dep-images
950 if [ "_" = "_" ]; then
951 image=alpine:{dependency}
952 elif [ "" = "None" ]; then
953 image=_/alpine:{dependency}
955 image=_:/alpine:{dependency}
957 sudo docker rmi $image || true
960 name: 'functest-{repo}-{tag}-dep-pull'
965 - functest-pull-dep-images:
969 name: 'functest-{repo}-{tag}-dep-pull'
972 - 'functest-{repo}-{tag}-dep-pull'
975 name: 'functest-{repo}-{tag}-dep-rmi'
980 - functest-remove-dep-images:
984 name: 'functest-{repo}-{tag}-dep-rmi'
987 - 'functest-{repo}-{tag}-dep-rmi'
994 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
995 apt-get install software-properties-common gpg -y
996 sudo add-apt-repository -y ppa:deadsnakes/ppa
997 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
999 python3.9 python3.9-dev python3.9-distutils \
1000 python3.8 python3.8-dev python3.8-distutils \
1001 python3.7 python3.7-dev python3.6 python3.6-dev \
1002 python python-dev python3-pip enchant -y
1003 sudo pip3 install tox tox-pip-version
1008 name: 'functest-{tag}-tox'
1011 ref: $GERRIT_REFSPEC
1013 - functest-patchset-created:
1023 <<: *functest-params
1025 - 'functest-{tag}-tox'
1028 name: 'functest-{repo}-{container}-{tag}-gate'
1034 ref: $GERRIT_REFSPEC
1036 - functest-build-containers:
1037 <<: *functest-build-containers
1038 ref: $GERRIT_REFSPEC
1039 buildargs: '{buildargs}'
1042 name: functest-opnfv-functest-core-{tag}-gate
1043 <<: *functest-params
1044 container: functest-core
1048 - 'functest-{repo}-{container}-{tag}-gate'
1051 name: functest-opnfv-functest-tempest-{tag}-gate
1052 <<: *functest-params
1053 container: functest-tempest
1055 path: docker/tempest
1058 - {'tag': 'wallaby'}
1063 - 'functest-{repo}-{container}-{tag}-gate'
1066 name: functest-opnfv-functest-healthcheck-{tag}-gate
1067 <<: *functest-params
1068 container: functest-healthcheck
1070 path: docker/healthcheck
1072 - 'functest-{repo}-{container}-{tag}-gate'
1075 name: functest-opnfv-functest-smoke-{tag}-gate
1076 <<: *functest-params
1077 container: functest-smoke
1081 - 'functest-{repo}-{container}-{tag}-gate'
1084 name: functest-opnfv-functest-benchmarking-{tag}-gate
1085 <<: *functest-params
1086 container: functest-benchmarking
1088 path: docker/benchmarking
1090 - 'functest-{repo}-{container}-{tag}-gate'
1093 name: functest-opnfv-functest-vnf-{tag}-gate
1094 <<: *functest-params
1095 container: functest-vnf
1099 - 'functest-{repo}-{container}-{tag}-gate'
1102 name: functest-opnfv-functest-smoke-cntt-{tag}-gate
1103 <<: *functest-params
1104 container: functest-smoke-cntt
1106 path: docker/smoke-cntt
1108 - 'functest-{repo}-{container}-{tag}-gate'
1111 name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate
1112 <<: *functest-params
1113 container: functest-benchmarking-cntt
1115 path: docker/benchmarking-cntt
1117 - 'functest-{repo}-{container}-{tag}-gate'
1120 name: functest-patchset-created
1124 - patchset-created-event
1125 - comment-added-contains-event:
1126 comment-contains-value: 'recheck'
1127 - comment-added-contains-event:
1128 comment-contains-value: 'reverify'
1130 - project-compare-type: 'ANT'
1131 project-pattern: 'functest'
1133 - branch-compare-type: 'ANT'
1134 branch-pattern: '**/{branch}'
1137 name: 'functest-{tag}-review'
1138 project-type: multijob
1140 - functest-patchset-created:
1145 - functest-build_tag:
1147 - functest-EXTERNAL_NETWORK:
1148 EXTERNAL_NETWORK: public
1149 - functest-VOLUME_DEVICE_NAME:
1150 VOLUME_DEVICE_NAME: sdb
1151 - functest-IMAGE_PROPERTIES:
1152 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
1155 # PyYAML and yamllint differ here
1156 # see https://github.com/yaml/pyyaml/issues/234
1157 # yamllint disable rule:indentation
1161 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1162 # yamllint enable rule:indentation
1165 name: remove former images
1167 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
1169 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
1171 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
1173 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
1175 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
1177 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
1180 name: remove dependency
1182 - name: 'functest-{repo}-{tag}-dep-rmi'
1185 name: pull dependency
1187 - name: 'functest-{repo}-{tag}-dep-pull'
1190 name: build opnfv/functest-core
1192 - name: 'functest-opnfv-functest-core-{tag}-gate'
1195 name: build opnfv/functest-tempest
1197 - name: 'functest-opnfv-functest-tempest-{tag}-gate'
1200 name: build containers
1202 - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1204 - name: 'functest-opnfv-functest-smoke-{tag}-gate'
1206 - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1208 - name: 'functest-opnfv-functest-vnf-{tag}-gate'
1211 name: build cntt containers
1213 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1215 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1218 name: opnfv/functest-healthcheck:{tag}
1220 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1222 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1224 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1226 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1228 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1230 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1232 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1234 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1236 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1238 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1240 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1242 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1244 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1247 name: opnfv/functest-smoke:{tag}
1249 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1251 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1253 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1255 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1257 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1259 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1261 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
1263 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1265 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1267 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1269 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1271 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1273 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1275 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
1277 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1279 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1281 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1283 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
1285 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
1287 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1289 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1291 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1294 name: opnfv/functest-smoke-cntt:{tag}
1296 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1298 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1300 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1302 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1304 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1306 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1308 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1310 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1313 name: opnfv/functest-benchmarking:{tag}
1315 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1317 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1319 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1321 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1324 name: opnfv/functest-benchmarking-cntt:{tag}
1326 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1328 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1331 name: opnfv/functest-vnf:{tag}
1333 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1335 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1337 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1339 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1341 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1345 name: 'functest-review'
1346 <<: *functest-params
1348 - 'functest-{tag}-review'
1351 name: functest-review
1360 regex: ^functest-[a-z0-9.]+-review$
1372 regex: ^functest-[a-z0-9.]+-tox$
1375 name: functest-push-containers
1379 if [ "{repo}" = "_" ]; then
1380 image={container}:{tag}
1381 elif [ "{port}" = "None" ]; then
1382 image={repo}/{container}:{tag}
1384 image={repo}:{port}/{container}:{tag}
1386 sudo docker push $image
1389 name: functest-commit
1392 cron: "*/30 * * * *"
1395 name: 'functest-{repo}-{container}-{tag}-build'
1403 - functest-build-containers:
1404 <<: *functest-build-containers
1406 buildargs: '{buildargs}'
1407 - functest-push-containers:
1408 <<: *functest-build-containers
1412 name: functest-opnfv-functest-core-{tag}-build
1413 <<: *functest-params
1414 container: functest-core
1418 - 'functest-{repo}-{container}-{tag}-build'
1421 name: functest-opnfv-functest-tempest-{tag}-build
1422 <<: *functest-params
1423 container: functest-tempest
1425 path: docker/tempest
1428 - {'tag': 'wallaby'}
1433 - 'functest-{repo}-{container}-{tag}-build'
1436 name: functest-opnfv-functest-healthcheck-{tag}-build
1437 <<: *functest-params
1438 container: functest-healthcheck
1440 path: docker/healthcheck
1442 - 'functest-{repo}-{container}-{tag}-build'
1445 name: functest-opnfv-functest-smoke-{tag}-build
1446 <<: *functest-params
1447 container: functest-smoke
1451 - 'functest-{repo}-{container}-{tag}-build'
1454 name: functest-opnfv-functest-benchmarking-{tag}-build
1455 <<: *functest-params
1456 container: functest-benchmarking
1458 path: docker/benchmarking
1460 - 'functest-{repo}-{container}-{tag}-build'
1463 name: functest-opnfv-functest-vnf-{tag}-build
1464 <<: *functest-params
1465 container: functest-vnf
1469 - 'functest-{repo}-{container}-{tag}-build'
1472 name: functest-opnfv-functest-smoke-cntt-{tag}-build
1473 <<: *functest-params
1474 container: functest-smoke-cntt
1476 path: docker/smoke-cntt
1478 - 'functest-{repo}-{container}-{tag}-build'
1481 name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
1482 <<: *functest-params
1483 container: functest-benchmarking-cntt
1485 path: docker/benchmarking-cntt
1487 - 'functest-{repo}-{container}-{tag}-build'
1490 name: 'functest-{tag}-docker'
1491 project-type: multijob
1500 # PyYAML and yamllint differ here
1501 # see https://github.com/yaml/pyyaml/issues/234
1502 # yamllint disable rule:indentation
1506 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1507 # yamllint enable rule:indentation
1510 name: remove dependency
1512 - name: 'functest-{repo}-{tag}-dep-rmi'
1515 name: pull dependency
1517 - name: 'functest-{repo}-{tag}-dep-pull'
1520 name: build opnfv/functest-core
1522 - name: 'functest-opnfv-functest-core-{tag}-build'
1525 name: build opnfv/functest-tempest
1527 - name: 'functest-opnfv-functest-tempest-{tag}-build'
1530 name: build containers
1532 - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1534 - name: 'functest-opnfv-functest-smoke-{tag}-build'
1536 - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1538 - name: 'functest-opnfv-functest-vnf-{tag}-build'
1541 name: build cntt containers
1543 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1545 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1549 name: functest-trivy
1552 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
1553 apt-get install curl -y
1555 curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
1556 if [ "{repo}" = "_" ]; then
1557 image={container}:{tag}
1558 elif [ "{port}" = "None" ]; then
1559 image={repo}/{container}:{tag}
1561 image={repo}:{port}/{container}:{tag}
1563 ./trivy --exit-code 1 $image
1566 name: 'functest-{repo}-{container}-{tag}-trivy'
1574 <<: *functest-containers
1577 name: 'functest-opnfv-functest-core-trivy'
1578 <<: *functest-params
1579 container: 'functest-core'
1581 - 'functest-{repo}-{container}-{tag}-trivy'
1584 name: 'functest-opnfv-functest-tempest-trivy'
1585 <<: *functest-params
1586 container: 'functest-tempest'
1588 - 'functest-{repo}-{container}-{tag}-trivy'
1591 name: 'functest-opnfv-functest-healthcheck-trivy'
1592 <<: *functest-params
1593 container: 'functest-healthcheck'
1595 - 'functest-{repo}-{container}-{tag}-trivy'
1598 name: 'functest-opnfv-functest-smoke-trivy'
1599 <<: *functest-params
1600 container: 'functest-smoke'
1602 - 'functest-{repo}-{container}-{tag}-trivy'
1605 name: 'functest-opnfv-functest-benchmarking-trivy'
1606 <<: *functest-params
1607 container: 'functest-benchmarking'
1609 - 'functest-{repo}-{container}-{tag}-trivy'
1612 name: 'functest-opnfv-functest-vnf-trivy'
1613 <<: *functest-params
1614 container: 'functest-vnf'
1616 - 'functest-{repo}-{container}-{tag}-trivy'
1619 name: 'functest-opnfv-functest-smoke-cntt-trivy'
1620 <<: *functest-params
1621 container: 'functest-smoke-cntt'
1623 - 'functest-{repo}-{container}-{tag}-trivy'
1626 name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
1627 <<: *functest-params
1628 container: 'functest-benchmarking-cntt'
1630 - 'functest-{repo}-{container}-{tag}-trivy'
1634 <<: *functest-params
1636 - 'functest-{tag}-docker'
1639 name: functest-docker
1648 regex: ^functest-[a-z0-9.]+-docker$
1651 name: functest-trivy
1660 regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$