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
26 DASHBOARD_URL: http://172.30.12.85
31 branch: stable/wallaby
33 DASHBOARD_URL: http://172.30.13.91
40 DASHBOARD_URL: http://172.30.13.94
47 DASHBOARD_URL: http://172.30.12.88
54 DASHBOARD_URL: http://172.30.12.83
57 - functest-jobs: &functest-jobs
59 current-parameters: true
69 name: functest-build_tag
75 name: functest-EXTERNAL_NETWORK
78 name: EXTERNAL_NETWORK
82 name: functest-VOLUME_DEVICE_NAME
85 name: VOLUME_DEVICE_NAME
89 name: functest-IMAGE_PROPERTIES
92 name: IMAGE_PROPERTIES
93 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" ); \
127 do volumes="-v $i $volumes"; done
130 if [ "{env}" != "None" ]; then
131 for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \
132 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}
142 sudo docker run --rm \
143 --privileged={privileged} \
144 --network={network} \
147 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
148 -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
149 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
150 -v /home/opnfv/functest/.boto:/root/.boto \
151 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
152 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
153 -e NODE_NAME=$slave \
154 -e BUILD_TAG=$BUILD_TAG \
155 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
156 -e DASHBOARD_URL={DASHBOARD_URL} \
157 $image run_tests -t {test} -p -r
160 name: functest-remove-images
164 if [ "{repo}" = "_" ]; then
165 image={container}:{tag}
166 elif [ "{port}" = "None" ]; then
167 image={repo}/{container}:{tag}
169 image={repo}:{port}/{container}:{tag}
171 sudo docker rmi $image || true
174 name: 'functest-{repo}-{container}-{tag}-pull'
179 - functest-pull-containers:
180 <<: *functest-containers
183 name: 'functest-opnfv-functest-healthcheck-pull'
185 container: 'functest-healthcheck'
187 - 'functest-{repo}-{container}-{tag}-pull'
190 name: 'functest-opnfv-functest-smoke-pull'
192 container: 'functest-smoke'
194 - 'functest-{repo}-{container}-{tag}-pull'
197 name: 'functest-opnfv-functest-smoke-cntt-pull'
199 container: 'functest-smoke-cntt'
201 - 'functest-{repo}-{container}-{tag}-pull'
204 name: 'functest-opnfv-functest-benchmarking-pull'
206 container: 'functest-benchmarking'
208 - 'functest-{repo}-{container}-{tag}-pull'
211 name: 'functest-opnfv-functest-benchmarking-cntt-pull'
213 container: 'functest-benchmarking-cntt'
215 - 'functest-{repo}-{container}-{tag}-pull'
218 name: 'functest-opnfv-functest-vnf-pull'
220 container: 'functest-vnf'
222 - 'functest-{repo}-{container}-{tag}-pull'
225 name: 'functest-{repo}-{container}-{tag}-rmi'
230 - functest-remove-images:
231 <<: *functest-containers
234 name: 'functest-opnfv-functest-healthcheck-rmi'
236 container: 'functest-healthcheck'
238 - 'functest-{repo}-{container}-{tag}-rmi'
241 name: 'functest-opnfv-functest-smoke-rmi'
243 container: 'functest-smoke'
245 - 'functest-{repo}-{container}-{tag}-rmi'
248 name: 'functest-opnfv-functest-smoke-cntt-rmi'
250 container: 'functest-smoke-cntt'
252 - 'functest-{repo}-{container}-{tag}-rmi'
255 name: 'functest-opnfv-functest-benchmarking-rmi'
257 container: 'functest-benchmarking'
259 - 'functest-{repo}-{container}-{tag}-rmi'
262 name: 'functest-opnfv-functest-benchmarking-cntt-rmi'
264 container: 'functest-benchmarking-cntt'
266 - 'functest-{repo}-{container}-{tag}-rmi'
269 name: 'functest-opnfv-functest-vnf-rmi'
271 container: 'functest-vnf'
273 - 'functest-{repo}-{container}-{tag}-rmi'
276 name: 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
280 - functest-build_tag:
282 - functest-EXTERNAL_NETWORK:
283 EXTERNAL_NETWORK: public
284 - functest-VOLUME_DEVICE_NAME:
285 VOLUME_DEVICE_NAME: sdb
286 - functest-IMAGE_PROPERTIES:
287 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
289 - functest-run-containers:
290 <<: *functest-run-containers
293 name: 'functest-opnfv-functest-healthcheck'
296 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
297 - /home/opnfv/functest/images:/home/opnfv/functest/images
299 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
300 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
301 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
302 container: 'functest-healthcheck'
320 - 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
323 name: 'functest-opnfv-functest-smoke-{tag}-{test}-run'
327 - functest-build_tag:
329 - functest-EXTERNAL_NETWORK:
330 EXTERNAL_NETWORK: public
331 - functest-VOLUME_DEVICE_NAME:
332 VOLUME_DEVICE_NAME: sdb
333 - functest-IMAGE_PROPERTIES:
334 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
336 - functest-run-containers:
337 <<: *functest-run-containers
340 name: 'functest-opnfv-functest-smoke'
343 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
344 - /home/opnfv/functest/images:/home/opnfv/functest/images
346 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
347 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
348 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
349 container: 'functest-smoke'
377 test: refstack_defcore
379 test: networking-bgpvpn
385 test: refstack_defcore
387 test: networking-bgpvpn
393 test: refstack_defcore
395 test: networking-bgpvpn
401 test: refstack_defcore
403 test: networking-bgpvpn
409 test: refstack_defcore
411 test: networking-bgpvpn
421 test: refstack_defcore
423 test: networking-bgpvpn
435 - 'functest-opnfv-functest-smoke-{tag}-{test}-run'
438 name: 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
442 - functest-build_tag:
444 - functest-EXTERNAL_NETWORK:
445 EXTERNAL_NETWORK: public
446 - functest-VOLUME_DEVICE_NAME:
447 VOLUME_DEVICE_NAME: sdb
448 - functest-IMAGE_PROPERTIES:
449 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
451 - functest-run-containers:
452 <<: *functest-run-containers
455 name: 'functest-opnfv-functest-smoke-cntt'
458 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
459 - /home/opnfv/functest/images:/home/opnfv/functest/images
461 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
462 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
463 - 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
493 - functest-run-containers:
494 <<: *functest-run-containers
497 name: 'functest-opnfv-functest-benchmarking'
500 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
501 - /home/opnfv/functest/images:/home/opnfv/functest/images
503 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
504 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
505 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
506 container: 'functest-benchmarking'
515 - 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
518 name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
522 - functest-build_tag:
524 - functest-EXTERNAL_NETWORK:
525 EXTERNAL_NETWORK: public
526 - functest-VOLUME_DEVICE_NAME:
527 VOLUME_DEVICE_NAME: sdb
528 - functest-IMAGE_PROPERTIES:
529 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
531 - functest-run-containers:
532 <<: *functest-run-containers
535 name: 'functest-opnfv-functest-benchmarking-cntt'
538 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
539 - /home/opnfv/functest/images:/home/opnfv/functest/images
541 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
542 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
543 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
544 container: 'functest-benchmarking-cntt'
551 - 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
554 name: 'functest-opnfv-functest-vnf-{tag}-{test}-run'
558 - functest-build_tag:
560 - functest-EXTERNAL_NETWORK:
561 EXTERNAL_NETWORK: public
562 - functest-VOLUME_DEVICE_NAME:
563 VOLUME_DEVICE_NAME: sdb
564 - functest-IMAGE_PROPERTIES:
565 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
567 - functest-run-containers:
568 <<: *functest-run-containers
571 name: 'functest-opnfv-functest-vnf'
574 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
575 - /home/opnfv/functest/images:/home/opnfv/functest/images
577 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
578 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
579 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
580 container: 'functest-vnf'
590 - 'functest-opnfv-functest-vnf-{tag}-{test}-run'
598 if [ "{volumes}" != "None" ]; then
599 for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \
600 do volumes="-v $i $volumes"; done
603 if [ "{env}" != "None" ]; then
604 for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \
605 do env="-e $i $env"; done
607 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
608 if [ "{repo}" = "_" ]; then
609 image={container}:{tag}
610 elif [ "{port}" = "None" ]; then
611 image={repo}/{container}:{tag}
613 image={repo}:{port}/{container}:{tag}
615 sudo docker run --rm \
618 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
619 -e S3_DST_URL=s3://artifacts.opnfv.org/functest \
620 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \
621 -v /home/opnfv/functest/.boto:/root/.boto \
622 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
623 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
624 -e BUILD_TAG=$BUILD_TAG \
625 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
629 name: 'functest-{tag}-zip'
633 - functest-build_tag:
635 - functest-EXTERNAL_NETWORK:
636 EXTERNAL_NETWORK: public
637 - functest-VOLUME_DEVICE_NAME:
638 VOLUME_DEVICE_NAME: sdb
639 - functest-IMAGE_PROPERTIES:
640 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
643 <<: *functest-containers
648 name: 'functest-{tag}-zip'
651 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
652 - /home/opnfv/functest/images:/home/opnfv/functest/images
654 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
655 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
656 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
657 container: 'functest-healthcheck'
659 - 'functest-{tag}-zip'
662 name: 'functest-{tag}-daily'
663 project-type: multijob
669 - functest-build_tag:
671 - functest-EXTERNAL_NETWORK:
672 EXTERNAL_NETWORK: public
673 - functest-VOLUME_DEVICE_NAME:
674 VOLUME_DEVICE_NAME: sdb
675 - functest-IMAGE_PROPERTIES:
676 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
677 # PyYAML and yamllint differ here
678 # see https://github.com/yaml/pyyaml/issues/234
679 # yamllint disable rule:indentation
683 - ^functest-(pi-)*{tag}-(daily|docker|review)$
684 # yamllint enable rule:indentation
687 name: remove former images
689 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
691 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
693 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
695 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
697 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
699 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
702 name: pull containers
704 - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
706 - name: 'functest-opnfv-functest-smoke-{tag}-pull'
708 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
710 - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
712 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
714 - name: 'functest-opnfv-functest-vnf-{tag}-pull'
717 name: opnfv/functest-healthcheck:{tag}
719 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
721 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
723 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
725 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
727 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
729 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
731 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
733 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
735 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
737 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
739 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
741 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
743 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
746 name: opnfv/functest-smoke:{tag}
748 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
750 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
752 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
754 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
756 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
758 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
760 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
762 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
764 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
766 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
768 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
770 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
772 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
774 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
776 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
778 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
780 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
782 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
784 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
786 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
788 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
790 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
793 name: opnfv/functest-smoke-cntt:{tag}
795 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
797 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
799 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
801 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
803 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
805 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
807 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
809 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
812 name: opnfv/functest-benchmarking:{tag}
814 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
816 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
818 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
820 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
823 name: opnfv/functest-benchmarking-cntt:{tag}
825 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
827 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
830 name: opnfv/functest-vnf:{tag}
832 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
834 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
836 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
838 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
840 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
843 name: dump all campaign data
845 - name: 'functest-{tag}-zip'
849 name: 'functest-daily'
852 - 'functest-{tag}-daily'
864 regex: ^functest-[a-z0-9.]+-daily$
866 - functest-build-containers: &functest-build-containers
867 name: 'functest-build-containers'
868 <<: *functest-containers
871 build_args: '{build_args}'
875 name: functest-build-containers
879 if [ "{repo}" = "_" ]; then
880 image={container}:{tag}
881 elif [ "{port}" = "None" ]; then
882 image={repo}/{container}:{tag}
884 image={repo}:{port}/{container}:{tag}
887 if [ "{build_args}" != "None" ]; then
888 for i in $(echo {build_args} | tr -d '[]' |sed "s/, / /g" ); \
889 do build_args="--build-arg $i $build_args"; done
891 if [ "{ref_arg}" != "None" ]; then
892 build_args="$build_args --build-arg {ref_arg}={ref}"
895 if [ "{from}" != "None" ]; then
896 sed -i {from} Dockerfile
898 sudo docker build $build_args \
899 --pull=false --no-cache --force-rm=true \
906 url: 'https://gerrit.opnfv.org/gerrit/functest'
907 refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
911 - functest-dep: &functest-dep
912 name: 'functest-containers'
916 dependency: '{dependency}'
919 name: functest-pull-dep-images
923 if [ "_" = "_" ]; then
924 image=alpine:{dependency}
925 elif [ "None" = "None" ]; then
926 image=_/alpine:{dependency}
928 image=_:/alpine:{dependency}
930 sudo docker pull $image || true
933 name: functest-remove-dep-images
937 if [ "_" = "_" ]; then
938 image=alpine:{dependency}
939 elif [ "" = "None" ]; then
940 image=_/alpine:{dependency}
942 image=_:/alpine:{dependency}
944 sudo docker rmi $image || true
947 name: 'functest-{repo}-{tag}-dep-pull'
952 - functest-pull-dep-images:
956 name: 'functest-{repo}-{tag}-dep-pull'
959 - 'functest-{repo}-{tag}-dep-pull'
962 name: 'functest-{repo}-{tag}-dep-rmi'
967 - functest-remove-dep-images:
971 name: 'functest-{repo}-{tag}-dep-rmi'
974 - 'functest-{repo}-{tag}-dep-rmi'
981 sudo apt-get update && \
982 sudo DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y
983 sudo DEBIAN_FRONTEND=noninteractive \
984 apt-get install software-properties-common gpg -y
985 sudo add-apt-repository -y ppa:deadsnakes/ppa
986 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
988 python3.9 python3.9-dev python3.9-distutils \
989 python3.8 python3.8-dev python3.8-distutils \
990 python3.7 python3.7-dev python3.6 python3.6-dev \
991 python python-dev python3-pip enchant -y
992 sudo pip3 install tox tox-pip-version
997 name: 'functest-{tag}-tox'
1000 ref: $GERRIT_REFSPEC
1002 - functest-patchset-created:
1012 <<: *functest-params
1014 - 'functest-{tag}-tox'
1017 name: 'functest-{repo}-{container}-{tag}-gate'
1023 ref: $GERRIT_REFSPEC
1025 - functest-build-containers:
1026 <<: *functest-build-containers
1027 ref: $GERRIT_REFSPEC
1028 build_args: '{build_args}'
1031 name: functest-opnfv-functest-core-{tag}-gate
1032 <<: *functest-params
1033 container: functest-core
1037 - 'functest-{repo}-{container}-{tag}-gate'
1040 name: functest-opnfv-functest-tempest-{tag}-gate
1041 <<: *functest-params
1042 container: functest-tempest
1044 path: docker/tempest
1048 - {'tag': 'wallaby'}
1053 - 'functest-{repo}-{container}-{tag}-gate'
1056 name: functest-opnfv-functest-healthcheck-{tag}-gate
1057 <<: *functest-params
1058 container: functest-healthcheck
1060 path: docker/healthcheck
1062 - 'functest-{repo}-{container}-{tag}-gate'
1065 name: functest-opnfv-functest-smoke-{tag}-gate
1066 <<: *functest-params
1067 container: functest-smoke
1071 - 'functest-{repo}-{container}-{tag}-gate'
1074 name: functest-opnfv-functest-benchmarking-{tag}-gate
1075 <<: *functest-params
1076 container: functest-benchmarking
1078 path: docker/benchmarking
1080 - 'functest-{repo}-{container}-{tag}-gate'
1083 name: functest-opnfv-functest-vnf-{tag}-gate
1084 <<: *functest-params
1085 container: functest-vnf
1089 - 'functest-{repo}-{container}-{tag}-gate'
1092 name: functest-opnfv-functest-smoke-cntt-{tag}-gate
1093 <<: *functest-params
1094 container: functest-smoke-cntt
1096 path: docker/smoke-cntt
1098 - 'functest-{repo}-{container}-{tag}-gate'
1101 name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate
1102 <<: *functest-params
1103 container: functest-benchmarking-cntt
1105 path: docker/benchmarking-cntt
1107 - 'functest-{repo}-{container}-{tag}-gate'
1110 name: functest-patchset-created
1114 - patchset-created-event
1115 - comment-added-contains-event:
1116 comment-contains-value: 'recheck'
1117 - comment-added-contains-event:
1118 comment-contains-value: 'reverify'
1120 - project-compare-type: 'ANT'
1121 project-pattern: 'functest'
1123 - branch-compare-type: 'ANT'
1124 branch-pattern: '**/{branch}'
1127 name: 'functest-{tag}-review'
1128 project-type: multijob
1130 - functest-patchset-created:
1135 - functest-build_tag:
1137 - functest-EXTERNAL_NETWORK:
1138 EXTERNAL_NETWORK: public
1139 - functest-VOLUME_DEVICE_NAME:
1140 VOLUME_DEVICE_NAME: sdb
1141 - functest-IMAGE_PROPERTIES:
1142 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
1143 # PyYAML and yamllint differ here
1144 # see https://github.com/yaml/pyyaml/issues/234
1145 # yamllint disable rule:indentation
1149 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1150 # yamllint enable rule:indentation
1153 name: remove former images
1155 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
1157 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
1159 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
1161 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
1163 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
1165 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
1168 name: remove dependency
1170 - name: 'functest-{repo}-{tag}-dep-rmi'
1173 name: pull dependency
1175 - name: 'functest-{repo}-{tag}-dep-pull'
1178 name: build opnfv/functest-core
1180 - name: 'functest-opnfv-functest-core-{tag}-gate'
1183 name: build opnfv/functest-tempest
1185 - name: 'functest-opnfv-functest-tempest-{tag}-gate'
1188 name: build containers
1190 - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1192 - name: 'functest-opnfv-functest-smoke-{tag}-gate'
1194 - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1196 - name: 'functest-opnfv-functest-vnf-{tag}-gate'
1199 name: build cntt containers
1201 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1203 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1206 name: opnfv/functest-healthcheck:{tag}
1208 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1210 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1212 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1214 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1216 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1218 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1220 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1222 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1224 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1226 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1228 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1230 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1232 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1235 name: opnfv/functest-smoke:{tag}
1237 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1239 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1241 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1243 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1245 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1247 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1249 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
1251 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1253 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1255 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1257 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1259 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1261 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1263 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
1265 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1267 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1269 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1271 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
1273 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
1275 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1277 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1279 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1282 name: opnfv/functest-smoke-cntt:{tag}
1284 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1286 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1288 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1290 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1292 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1294 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1296 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1298 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1301 name: opnfv/functest-benchmarking:{tag}
1303 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1305 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1307 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1309 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1312 name: opnfv/functest-benchmarking-cntt:{tag}
1314 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1316 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1319 name: opnfv/functest-vnf:{tag}
1321 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1323 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1325 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1327 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1329 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1333 name: 'functest-review'
1334 <<: *functest-params
1336 - 'functest-{tag}-review'
1339 name: functest-review
1348 regex: ^functest-[a-z0-9.]+-review$
1360 regex: ^functest-[a-z0-9.]+-tox$
1363 name: functest-push-containers
1367 if [ "{repo}" = "_" ]; then
1368 image={container}:{tag}
1369 elif [ "{port}" = "None" ]; then
1370 image={repo}/{container}:{tag}
1372 image={repo}:{port}/{container}:{tag}
1374 sudo docker push $image
1377 name: functest-commit
1380 cron: "*/30 * * * *"
1383 name: 'functest-{repo}-{container}-{tag}-build'
1391 - functest-build-containers:
1392 <<: *functest-build-containers
1394 build_args: '{build_args}'
1395 - functest-push-containers:
1396 <<: *functest-build-containers
1400 name: functest-opnfv-functest-core-{tag}-build
1401 <<: *functest-params
1402 container: functest-core
1406 - 'functest-{repo}-{container}-{tag}-build'
1409 name: functest-opnfv-functest-tempest-{tag}-build
1410 <<: *functest-params
1411 container: functest-tempest
1413 path: docker/tempest
1417 - {'tag': 'wallaby'}
1422 - 'functest-{repo}-{container}-{tag}-build'
1425 name: functest-opnfv-functest-healthcheck-{tag}-build
1426 <<: *functest-params
1427 container: functest-healthcheck
1429 path: docker/healthcheck
1431 - 'functest-{repo}-{container}-{tag}-build'
1434 name: functest-opnfv-functest-smoke-{tag}-build
1435 <<: *functest-params
1436 container: functest-smoke
1440 - 'functest-{repo}-{container}-{tag}-build'
1443 name: functest-opnfv-functest-benchmarking-{tag}-build
1444 <<: *functest-params
1445 container: functest-benchmarking
1447 path: docker/benchmarking
1449 - 'functest-{repo}-{container}-{tag}-build'
1452 name: functest-opnfv-functest-vnf-{tag}-build
1453 <<: *functest-params
1454 container: functest-vnf
1458 - 'functest-{repo}-{container}-{tag}-build'
1461 name: functest-opnfv-functest-smoke-cntt-{tag}-build
1462 <<: *functest-params
1463 container: functest-smoke-cntt
1465 path: docker/smoke-cntt
1467 - 'functest-{repo}-{container}-{tag}-build'
1470 name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
1471 <<: *functest-params
1472 container: functest-benchmarking-cntt
1474 path: docker/benchmarking-cntt
1476 - 'functest-{repo}-{container}-{tag}-build'
1479 name: 'functest-{tag}-docker'
1480 project-type: multijob
1489 # PyYAML and yamllint differ here
1490 # see https://github.com/yaml/pyyaml/issues/234
1491 # yamllint disable rule:indentation
1495 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1496 # yamllint enable rule:indentation
1499 name: remove dependency
1501 - name: 'functest-{repo}-{tag}-dep-rmi'
1504 name: pull dependency
1506 - name: 'functest-{repo}-{tag}-dep-pull'
1509 name: build opnfv/functest-core
1511 - name: 'functest-opnfv-functest-core-{tag}-build'
1514 name: build opnfv/functest-tempest
1516 - name: 'functest-opnfv-functest-tempest-{tag}-build'
1519 name: build containers
1521 - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1523 - name: 'functest-opnfv-functest-smoke-{tag}-build'
1525 - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1527 - name: 'functest-opnfv-functest-vnf-{tag}-build'
1530 name: build cntt containers
1532 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1534 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1538 name: functest-trivy
1541 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
1542 apt-get install curl -y
1544 curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
1545 if [ "{repo}" = "_" ]; then
1546 image={container}:{tag}
1547 elif [ "{port}" = "None" ]; then
1548 image={repo}/{container}:{tag}
1550 image={repo}:{port}/{container}:{tag}
1552 ./trivy --exit-code 1 $image
1555 name: 'functest-{repo}-{container}-{tag}-trivy'
1563 <<: *functest-containers
1566 name: 'functest-opnfv-functest-core-trivy'
1567 <<: *functest-params
1568 container: 'functest-core'
1570 - 'functest-{repo}-{container}-{tag}-trivy'
1573 name: 'functest-opnfv-functest-tempest-trivy'
1574 <<: *functest-params
1575 container: 'functest-tempest'
1577 - 'functest-{repo}-{container}-{tag}-trivy'
1580 name: 'functest-opnfv-functest-healthcheck-trivy'
1581 <<: *functest-params
1582 container: 'functest-healthcheck'
1584 - 'functest-{repo}-{container}-{tag}-trivy'
1587 name: 'functest-opnfv-functest-smoke-trivy'
1588 <<: *functest-params
1589 container: 'functest-smoke'
1591 - 'functest-{repo}-{container}-{tag}-trivy'
1594 name: 'functest-opnfv-functest-benchmarking-trivy'
1595 <<: *functest-params
1596 container: 'functest-benchmarking'
1598 - 'functest-{repo}-{container}-{tag}-trivy'
1601 name: 'functest-opnfv-functest-vnf-trivy'
1602 <<: *functest-params
1603 container: 'functest-vnf'
1605 - 'functest-{repo}-{container}-{tag}-trivy'
1608 name: 'functest-opnfv-functest-smoke-cntt-trivy'
1609 <<: *functest-params
1610 container: 'functest-smoke-cntt'
1612 - 'functest-{repo}-{container}-{tag}-trivy'
1615 name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
1616 <<: *functest-params
1617 container: 'functest-benchmarking-cntt'
1619 - 'functest-{repo}-{container}-{tag}-trivy'
1623 <<: *functest-params
1625 - 'functest-{tag}-docker'
1628 name: functest-docker
1637 regex: ^functest-[a-z0-9.]+-docker$
1640 name: functest-trivy
1649 regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$