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
88 - functest-run-containers: &functest-run-containers
89 name: 'functest-run-containers'
90 <<: *functest-containers
92 privileged: '{privileged}'
96 DASHBOARD_URL: '{DASHBOARD_URL}'
99 name: functest-pull-containers
103 if [ "{repo}" = "_" ]; then
104 image={container}:{tag}
105 elif [ "{port}" = "None" ]; then
106 image={repo}/{container}:{tag}
108 image={repo}:{port}/{container}:{tag}
110 sudo docker pull $image
113 name: functest-run-containers
118 if [ "{volumes}" != "None" ]; then
119 for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); do volumes="-v $i $volumes"; done
122 if [ "{env}" != "None" ]; then
123 for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); do env="-e $i $env"; done
125 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
126 if [ "{repo}" = "_" ]; then
127 image={container}:{tag}
128 elif [ "{port}" = "None" ]; then
129 image={repo}/{container}:{tag}
131 image={repo}:{port}/{container}:{tag}
133 sudo docker run --rm \
134 --privileged={privileged} \
135 --network={network} \
138 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
139 -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
140 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
141 -v /home/opnfv/functest/.boto:/root/.boto \
142 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
143 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
144 -e NODE_NAME=$slave \
145 -e BUILD_TAG=$BUILD_TAG \
146 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
147 -e DASHBOARD_URL={DASHBOARD_URL} \
148 $image run_tests -t {test} -p -r
151 name: functest-remove-images
155 if [ "{repo}" = "_" ]; then
156 image={container}:{tag}
157 elif [ "{port}" = "None" ]; then
158 image={repo}/{container}:{tag}
160 image={repo}:{port}/{container}:{tag}
162 sudo docker rmi $image || true
165 name: 'functest-{repo}-{container}-{tag}-pull'
170 - functest-pull-containers:
171 <<: *functest-containers
174 name: 'functest-opnfv-functest-healthcheck-pull'
176 container: 'functest-healthcheck'
178 - 'functest-{repo}-{container}-{tag}-pull'
181 name: 'functest-opnfv-functest-smoke-pull'
183 container: 'functest-smoke'
185 - 'functest-{repo}-{container}-{tag}-pull'
188 name: 'functest-opnfv-functest-smoke-cntt-pull'
190 container: 'functest-smoke-cntt'
192 - 'functest-{repo}-{container}-{tag}-pull'
195 name: 'functest-opnfv-functest-benchmarking-pull'
197 container: 'functest-benchmarking'
199 - 'functest-{repo}-{container}-{tag}-pull'
202 name: 'functest-opnfv-functest-benchmarking-cntt-pull'
204 container: 'functest-benchmarking-cntt'
206 - 'functest-{repo}-{container}-{tag}-pull'
209 name: 'functest-opnfv-functest-vnf-pull'
211 container: 'functest-vnf'
213 - 'functest-{repo}-{container}-{tag}-pull'
216 name: 'functest-{repo}-{container}-{tag}-rmi'
221 - functest-remove-images:
222 <<: *functest-containers
225 name: 'functest-opnfv-functest-healthcheck-rmi'
227 container: 'functest-healthcheck'
229 - 'functest-{repo}-{container}-{tag}-rmi'
232 name: 'functest-opnfv-functest-smoke-rmi'
234 container: 'functest-smoke'
236 - 'functest-{repo}-{container}-{tag}-rmi'
239 name: 'functest-opnfv-functest-smoke-cntt-rmi'
241 container: 'functest-smoke-cntt'
243 - 'functest-{repo}-{container}-{tag}-rmi'
246 name: 'functest-opnfv-functest-benchmarking-rmi'
248 container: 'functest-benchmarking'
250 - 'functest-{repo}-{container}-{tag}-rmi'
253 name: 'functest-opnfv-functest-benchmarking-cntt-rmi'
255 container: 'functest-benchmarking-cntt'
257 - 'functest-{repo}-{container}-{tag}-rmi'
260 name: 'functest-opnfv-functest-vnf-rmi'
262 container: 'functest-vnf'
264 - 'functest-{repo}-{container}-{tag}-rmi'
267 name: 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
271 - functest-build_tag:
273 - functest-EXTERNAL_NETWORK:
274 EXTERNAL_NETWORK: public
275 - functest-VOLUME_DEVICE_NAME:
276 VOLUME_DEVICE_NAME: sdb
277 - functest-IMAGE_PROPERTIES:
278 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
280 - functest-run-containers:
281 <<: *functest-run-containers
284 name: 'functest-opnfv-functest-healthcheck'
287 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
288 - /home/opnfv/functest/images:/home/opnfv/functest/images
290 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
291 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
292 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
293 container: 'functest-healthcheck'
311 - 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
314 name: 'functest-opnfv-functest-smoke-{tag}-{test}-run'
318 - functest-build_tag:
320 - functest-EXTERNAL_NETWORK:
321 EXTERNAL_NETWORK: public
322 - functest-VOLUME_DEVICE_NAME:
323 VOLUME_DEVICE_NAME: sdb
324 - functest-IMAGE_PROPERTIES:
325 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
327 - functest-run-containers:
328 <<: *functest-run-containers
331 name: 'functest-opnfv-functest-smoke'
334 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
335 - /home/opnfv/functest/images:/home/opnfv/functest/images
337 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
338 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
339 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
340 container: 'functest-smoke'
368 test: refstack_defcore
370 test: networking-bgpvpn
376 test: refstack_defcore
378 test: networking-bgpvpn
384 test: refstack_defcore
386 test: networking-bgpvpn
392 test: refstack_defcore
394 test: networking-bgpvpn
404 test: refstack_defcore
406 test: networking-bgpvpn
418 - 'functest-opnfv-functest-smoke-{tag}-{test}-run'
421 name: 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
425 - functest-build_tag:
427 - functest-EXTERNAL_NETWORK:
428 EXTERNAL_NETWORK: public
429 - functest-VOLUME_DEVICE_NAME:
430 VOLUME_DEVICE_NAME: sdb
431 - functest-IMAGE_PROPERTIES:
432 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
434 - functest-run-containers:
435 <<: *functest-run-containers
438 name: 'functest-opnfv-functest-smoke-cntt'
441 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
442 - /home/opnfv/functest/images:/home/opnfv/functest/images
444 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
445 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
446 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
447 container: 'functest-smoke-cntt'
449 - tempest_neutron_cntt
450 - tempest_cinder_cntt
451 - tempest_keystone_cntt
455 - tempest_scenario_cntt
460 - 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
463 name: 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
467 - functest-build_tag:
469 - functest-EXTERNAL_NETWORK:
470 EXTERNAL_NETWORK: public
471 - functest-VOLUME_DEVICE_NAME:
472 VOLUME_DEVICE_NAME: sdb
473 - functest-IMAGE_PROPERTIES:
474 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
476 - functest-run-containers:
477 <<: *functest-run-containers
480 name: 'functest-opnfv-functest-benchmarking'
483 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
484 - /home/opnfv/functest/images:/home/opnfv/functest/images
486 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
487 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
488 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
489 container: 'functest-benchmarking'
498 - 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
501 name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
505 - functest-build_tag:
507 - functest-EXTERNAL_NETWORK:
508 EXTERNAL_NETWORK: public
509 - functest-VOLUME_DEVICE_NAME:
510 VOLUME_DEVICE_NAME: sdb
511 - functest-IMAGE_PROPERTIES:
512 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
514 - functest-run-containers:
515 <<: *functest-run-containers
518 name: 'functest-opnfv-functest-benchmarking-cntt'
521 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
522 - /home/opnfv/functest/images:/home/opnfv/functest/images
524 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
525 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
526 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
527 container: 'functest-benchmarking-cntt'
534 - 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
537 name: 'functest-opnfv-functest-vnf-{tag}-{test}-run'
541 - functest-build_tag:
543 - functest-EXTERNAL_NETWORK:
544 EXTERNAL_NETWORK: public
545 - functest-VOLUME_DEVICE_NAME:
546 VOLUME_DEVICE_NAME: sdb
547 - functest-IMAGE_PROPERTIES:
548 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
550 - functest-run-containers:
551 <<: *functest-run-containers
554 name: 'functest-opnfv-functest-vnf'
557 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
558 - /home/opnfv/functest/images:/home/opnfv/functest/images
560 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
561 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
562 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
563 container: 'functest-vnf'
573 - 'functest-opnfv-functest-vnf-{tag}-{test}-run'
581 if [ "{volumes}" != "None" ]; then
582 for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); do volumes="-v $i $volumes"; done
585 if [ "{env}" != "None" ]; then
586 for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); do env="-e $i $env"; done
588 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
589 if [ "{repo}" = "_" ]; then
590 image={container}:{tag}
591 elif [ "{port}" = "None" ]; then
592 image={repo}/{container}:{tag}
594 image={repo}:{port}/{container}:{tag}
596 sudo docker run --rm \
599 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
600 -e S3_DST_URL=s3://artifacts.opnfv.org/functest \
601 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \
602 -v /home/opnfv/functest/.boto:/root/.boto \
603 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
604 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
605 -e BUILD_TAG=$BUILD_TAG \
606 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
610 name: 'functest-{tag}-zip'
614 - functest-build_tag:
616 - functest-EXTERNAL_NETWORK:
617 EXTERNAL_NETWORK: public
618 - functest-VOLUME_DEVICE_NAME:
619 VOLUME_DEVICE_NAME: sdb
620 - functest-IMAGE_PROPERTIES:
621 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
624 <<: *functest-containers
629 name: 'functest-{tag}-zip'
632 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
633 - /home/opnfv/functest/images:/home/opnfv/functest/images
635 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
636 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
637 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
638 container: 'functest-healthcheck'
640 - 'functest-{tag}-zip'
643 name: 'functest-{tag}-daily'
644 project-type: multijob
650 - functest-build_tag:
652 - functest-EXTERNAL_NETWORK:
653 EXTERNAL_NETWORK: public
654 - functest-VOLUME_DEVICE_NAME:
655 VOLUME_DEVICE_NAME: sdb
656 - functest-IMAGE_PROPERTIES:
657 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
658 # PyYAML and yamllint differ here
659 # see https://github.com/yaml/pyyaml/issues/234
660 # yamllint disable rule:indentation
664 - ^functest-(pi-)*{tag}-(daily|docker|review)$
665 # yamllint enable rule:indentation
668 name: remove former images
670 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
672 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
674 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
676 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
678 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
680 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
683 name: pull containers
685 - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
687 - name: 'functest-opnfv-functest-smoke-{tag}-pull'
689 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
691 - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
693 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
695 - name: 'functest-opnfv-functest-vnf-{tag}-pull'
698 name: opnfv/functest-healthcheck:{tag}
700 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
702 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
704 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
706 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
708 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
710 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
712 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
714 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
716 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
718 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
720 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
722 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
724 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
727 name: opnfv/functest-smoke:{tag}
729 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
731 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
733 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
735 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
737 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
739 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
741 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
743 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
745 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
747 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
749 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
751 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
753 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
755 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
757 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
759 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
761 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
763 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
765 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
767 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
769 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
771 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
774 name: opnfv/functest-smoke-cntt:{tag}
776 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
778 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
780 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
782 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
784 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
786 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
788 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
790 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
793 name: opnfv/functest-benchmarking:{tag}
795 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
797 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
799 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
801 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
804 name: opnfv/functest-benchmarking-cntt:{tag}
806 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
808 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
811 name: opnfv/functest-vnf:{tag}
813 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
815 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
817 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
819 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
821 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
824 name: dump all campaign data
826 - name: 'functest-{tag}-zip'
830 name: 'functest-daily'
833 - 'functest-{tag}-daily'
845 regex: ^functest-[a-z0-9.]+-daily$
847 - functest-build-containers: &functest-build-containers
848 name: 'functest-build-containers'
849 <<: *functest-containers
852 buildargs: '{buildargs}'
856 name: functest-build-containers
860 if [ "{repo}" = "_" ]; then
861 image={container}:{tag}
862 elif [ "{port}" = "None" ]; then
863 image={repo}/{container}:{tag}
865 image={repo}:{port}/{container}:{tag}
868 if [ "{buildargs}" != "None" ]; then
869 build_args="{buildargs}"
871 if [ "{ref_arg}" != "None" ]; then
872 build_args="$build_args --build-arg {ref_arg}={ref}"
875 if [ "{from}" != "None" ]; then
876 sed -i {from} Dockerfile
878 sudo docker build $build_args \
879 --pull=false --no-cache --force-rm=true \
886 url: 'https://gerrit.opnfv.org/gerrit/functest'
887 refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
891 - functest-dep: &functest-dep
892 name: 'functest-containers'
896 dependency: '{dependency}'
899 name: functest-pull-dep-images
903 if [ "_" = "_" ]; then
904 image=alpine:{dependency}
905 elif [ "None" = "None" ]; then
906 image=_/alpine:{dependency}
908 image=_:/alpine:{dependency}
910 sudo docker pull $image || true
913 name: functest-remove-dep-images
917 if [ "_" = "_" ]; then
918 image=alpine:{dependency}
919 elif [ "" = "None" ]; then
920 image=_/alpine:{dependency}
922 image=_:/alpine:{dependency}
924 sudo docker rmi $image || true
927 name: 'functest-{repo}-{tag}-dep-pull'
932 - functest-pull-dep-images:
936 name: 'functest-{repo}-{tag}-dep-pull'
939 - 'functest-{repo}-{tag}-dep-pull'
942 name: 'functest-{repo}-{tag}-dep-rmi'
947 - functest-remove-dep-images:
951 name: 'functest-{repo}-{tag}-dep-rmi'
954 - 'functest-{repo}-{tag}-dep-rmi'
961 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
962 apt-get install software-properties-common gpg -y
963 sudo add-apt-repository -y ppa:deadsnakes/ppa
964 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
966 python3.9 python3.9-dev python3.9-distutils \
967 python3.8 python3.8-dev python3.8-distutils \
968 python3.7 python3.7-dev python3.6 python3.6-dev \
969 python python-dev python3-pip enchant -y
970 sudo pip3 install tox tox-pip-version
975 name: 'functest-{tag}-tox'
980 - functest-patchset-created:
992 - 'functest-{tag}-tox'
995 name: 'functest-{repo}-{container}-{tag}-gate'
1001 ref: $GERRIT_REFSPEC
1003 - functest-build-containers:
1004 <<: *functest-build-containers
1005 ref: $GERRIT_REFSPEC
1006 buildargs: '{buildargs}'
1009 name: functest-opnfv-functest-core-{tag}-gate
1010 <<: *functest-params
1011 container: functest-core
1015 - 'functest-{repo}-{container}-{tag}-gate'
1018 name: functest-opnfv-functest-tempest-{tag}-gate
1019 <<: *functest-params
1020 container: functest-tempest
1022 path: docker/tempest
1025 - {'tag': 'wallaby'}
1030 - 'functest-{repo}-{container}-{tag}-gate'
1033 name: functest-opnfv-functest-healthcheck-{tag}-gate
1034 <<: *functest-params
1035 container: functest-healthcheck
1037 path: docker/healthcheck
1039 - 'functest-{repo}-{container}-{tag}-gate'
1042 name: functest-opnfv-functest-smoke-{tag}-gate
1043 <<: *functest-params
1044 container: functest-smoke
1048 - 'functest-{repo}-{container}-{tag}-gate'
1051 name: functest-opnfv-functest-benchmarking-{tag}-gate
1052 <<: *functest-params
1053 container: functest-benchmarking
1055 path: docker/benchmarking
1057 - 'functest-{repo}-{container}-{tag}-gate'
1060 name: functest-opnfv-functest-vnf-{tag}-gate
1061 <<: *functest-params
1062 container: functest-vnf
1066 - 'functest-{repo}-{container}-{tag}-gate'
1069 name: functest-opnfv-functest-smoke-cntt-{tag}-gate
1070 <<: *functest-params
1071 container: functest-smoke-cntt
1073 path: docker/smoke-cntt
1075 - 'functest-{repo}-{container}-{tag}-gate'
1078 name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate
1079 <<: *functest-params
1080 container: functest-benchmarking-cntt
1082 path: docker/benchmarking-cntt
1084 - 'functest-{repo}-{container}-{tag}-gate'
1087 name: functest-patchset-created
1091 - patchset-created-event
1092 - comment-added-contains-event:
1093 comment-contains-value: 'recheck'
1094 - comment-added-contains-event:
1095 comment-contains-value: 'reverify'
1097 - project-compare-type: 'ANT'
1098 project-pattern: 'functest'
1100 - branch-compare-type: 'ANT'
1101 branch-pattern: '**/{branch}'
1104 name: 'functest-{tag}-review'
1105 project-type: multijob
1107 - functest-patchset-created:
1112 - functest-build_tag:
1114 - functest-EXTERNAL_NETWORK:
1115 EXTERNAL_NETWORK: public
1116 - functest-VOLUME_DEVICE_NAME:
1117 VOLUME_DEVICE_NAME: sdb
1118 - functest-IMAGE_PROPERTIES:
1119 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
1120 # PyYAML and yamllint differ here
1121 # see https://github.com/yaml/pyyaml/issues/234
1122 # yamllint disable rule:indentation
1126 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1127 # yamllint enable rule:indentation
1130 name: remove former images
1132 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
1134 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
1136 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
1138 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
1140 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
1142 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
1145 name: remove dependency
1147 - name: 'functest-{repo}-{tag}-dep-rmi'
1150 name: pull dependency
1152 - name: 'functest-{repo}-{tag}-dep-pull'
1155 name: build opnfv/functest-core
1157 - name: 'functest-opnfv-functest-core-{tag}-gate'
1160 name: build opnfv/functest-tempest
1162 - name: 'functest-opnfv-functest-tempest-{tag}-gate'
1165 name: build containers
1167 - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1169 - name: 'functest-opnfv-functest-smoke-{tag}-gate'
1171 - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1173 - name: 'functest-opnfv-functest-vnf-{tag}-gate'
1176 name: build cntt containers
1178 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1180 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1183 name: opnfv/functest-healthcheck:{tag}
1185 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1187 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1189 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1191 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1193 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1195 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1197 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1199 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1201 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1203 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1205 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1207 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1209 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1212 name: opnfv/functest-smoke:{tag}
1214 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1216 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1218 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1220 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1222 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1224 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1226 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
1228 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1230 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1232 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1234 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1236 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1238 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1240 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
1242 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1244 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1246 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1248 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
1250 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
1252 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1254 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1256 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1259 name: opnfv/functest-smoke-cntt:{tag}
1261 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1263 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1265 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1267 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1269 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1271 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1273 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1275 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1278 name: opnfv/functest-benchmarking:{tag}
1280 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1282 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1284 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1286 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1289 name: opnfv/functest-benchmarking-cntt:{tag}
1291 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1293 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1296 name: opnfv/functest-vnf:{tag}
1298 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1300 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1302 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1304 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1306 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1310 name: 'functest-review'
1311 <<: *functest-params
1313 - 'functest-{tag}-review'
1316 name: functest-review
1325 regex: ^functest-[a-z0-9.]+-review$
1337 regex: ^functest-[a-z0-9.]+-tox$
1340 name: functest-push-containers
1344 if [ "{repo}" = "_" ]; then
1345 image={container}:{tag}
1346 elif [ "{port}" = "None" ]; then
1347 image={repo}/{container}:{tag}
1349 image={repo}:{port}/{container}:{tag}
1351 sudo docker push $image
1354 name: functest-commit
1357 cron: "*/30 * * * *"
1360 name: 'functest-{repo}-{container}-{tag}-build'
1368 - functest-build-containers:
1369 <<: *functest-build-containers
1371 buildargs: '{buildargs}'
1372 - functest-push-containers:
1373 <<: *functest-build-containers
1377 name: functest-opnfv-functest-core-{tag}-build
1378 <<: *functest-params
1379 container: functest-core
1383 - 'functest-{repo}-{container}-{tag}-build'
1386 name: functest-opnfv-functest-tempest-{tag}-build
1387 <<: *functest-params
1388 container: functest-tempest
1390 path: docker/tempest
1393 - {'tag': 'wallaby'}
1398 - 'functest-{repo}-{container}-{tag}-build'
1401 name: functest-opnfv-functest-healthcheck-{tag}-build
1402 <<: *functest-params
1403 container: functest-healthcheck
1405 path: docker/healthcheck
1407 - 'functest-{repo}-{container}-{tag}-build'
1410 name: functest-opnfv-functest-smoke-{tag}-build
1411 <<: *functest-params
1412 container: functest-smoke
1416 - 'functest-{repo}-{container}-{tag}-build'
1419 name: functest-opnfv-functest-benchmarking-{tag}-build
1420 <<: *functest-params
1421 container: functest-benchmarking
1423 path: docker/benchmarking
1425 - 'functest-{repo}-{container}-{tag}-build'
1428 name: functest-opnfv-functest-vnf-{tag}-build
1429 <<: *functest-params
1430 container: functest-vnf
1434 - 'functest-{repo}-{container}-{tag}-build'
1437 name: functest-opnfv-functest-smoke-cntt-{tag}-build
1438 <<: *functest-params
1439 container: functest-smoke-cntt
1441 path: docker/smoke-cntt
1443 - 'functest-{repo}-{container}-{tag}-build'
1446 name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
1447 <<: *functest-params
1448 container: functest-benchmarking-cntt
1450 path: docker/benchmarking-cntt
1452 - 'functest-{repo}-{container}-{tag}-build'
1455 name: 'functest-{tag}-docker'
1456 project-type: multijob
1465 # PyYAML and yamllint differ here
1466 # see https://github.com/yaml/pyyaml/issues/234
1467 # yamllint disable rule:indentation
1471 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1472 # yamllint enable rule:indentation
1475 name: remove dependency
1477 - name: 'functest-{repo}-{tag}-dep-rmi'
1480 name: pull dependency
1482 - name: 'functest-{repo}-{tag}-dep-pull'
1485 name: build opnfv/functest-core
1487 - name: 'functest-opnfv-functest-core-{tag}-build'
1490 name: build opnfv/functest-tempest
1492 - name: 'functest-opnfv-functest-tempest-{tag}-build'
1495 name: build containers
1497 - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1499 - name: 'functest-opnfv-functest-smoke-{tag}-build'
1501 - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1503 - name: 'functest-opnfv-functest-vnf-{tag}-build'
1506 name: build cntt containers
1508 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1510 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1514 name: functest-trivy
1517 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
1518 apt-get install curl -y
1520 curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
1521 if [ "{repo}" = "_" ]; then
1522 image={container}:{tag}
1523 elif [ "{port}" = "None" ]; then
1524 image={repo}/{container}:{tag}
1526 image={repo}:{port}/{container}:{tag}
1528 ./trivy --exit-code 1 $image
1531 name: 'functest-{repo}-{container}-{tag}-trivy'
1539 <<: *functest-containers
1542 name: 'functest-opnfv-functest-core-trivy'
1543 <<: *functest-params
1544 container: 'functest-core'
1546 - 'functest-{repo}-{container}-{tag}-trivy'
1549 name: 'functest-opnfv-functest-tempest-trivy'
1550 <<: *functest-params
1551 container: 'functest-tempest'
1553 - 'functest-{repo}-{container}-{tag}-trivy'
1556 name: 'functest-opnfv-functest-healthcheck-trivy'
1557 <<: *functest-params
1558 container: 'functest-healthcheck'
1560 - 'functest-{repo}-{container}-{tag}-trivy'
1563 name: 'functest-opnfv-functest-smoke-trivy'
1564 <<: *functest-params
1565 container: 'functest-smoke'
1567 - 'functest-{repo}-{container}-{tag}-trivy'
1570 name: 'functest-opnfv-functest-benchmarking-trivy'
1571 <<: *functest-params
1572 container: 'functest-benchmarking'
1574 - 'functest-{repo}-{container}-{tag}-trivy'
1577 name: 'functest-opnfv-functest-vnf-trivy'
1578 <<: *functest-params
1579 container: 'functest-vnf'
1581 - 'functest-{repo}-{container}-{tag}-trivy'
1584 name: 'functest-opnfv-functest-smoke-cntt-trivy'
1585 <<: *functest-params
1586 container: 'functest-smoke-cntt'
1588 - 'functest-{repo}-{container}-{tag}-trivy'
1591 name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
1592 <<: *functest-params
1593 container: 'functest-benchmarking-cntt'
1595 - 'functest-{repo}-{container}-{tag}-trivy'
1599 <<: *functest-params
1601 - 'functest-{tag}-docker'
1604 name: functest-docker
1613 regex: ^functest-[a-z0-9.]+-docker$
1616 name: functest-trivy
1625 regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$