2 - functest-containers: &functest-containers
3 name: 'functest-containers'
6 container: '{container}'
9 - functest-params: &functest-params
10 name: 'functest-params'
19 DASHBOARD_URL: http://172.30.12.85
24 branch: stable/wallaby
26 DASHBOARD_URL: http://172.30.13.91
33 DASHBOARD_URL: http://172.30.13.94
40 DASHBOARD_URL: http://172.30.12.88
47 DASHBOARD_URL: http://172.30.12.83
50 - functest-jobs: &functest-jobs
52 current-parameters: true
62 name: functest-build_tag
68 name: functest-EXTERNAL_NETWORK
71 name: EXTERNAL_NETWORK
75 name: functest-VOLUME_DEVICE_NAME
78 name: VOLUME_DEVICE_NAME
82 name: functest-IMAGE_PROPERTIES
85 name: IMAGE_PROPERTIES
86 default: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
95 - functest-run-containers: &functest-run-containers
96 name: 'functest-run-containers'
97 <<: *functest-containers
99 privileged: '{privileged}'
103 DASHBOARD_URL: '{DASHBOARD_URL}'
106 name: functest-pull-containers
110 if [ "{repo}" = "_" ]; then
111 image={container}:{tag}
112 elif [ "{port}" = "None" ]; then
113 image={repo}/{container}:{tag}
115 image={repo}:{port}/{container}:{tag}
117 sudo docker pull $image
120 name: functest-run-containers
125 if [ "{volumes}" != "None" ]; then
126 for i in $(echo {volumes} | tr -d '[] ' |sed "s/,/ /g" ); do volumes="-v $i $volumes"; done
130 if [ "{env}" != "None" ]; then
131 for i in $(eval echo {env} | tr -d '[] ' |sed "s/,/ /g" ); do env="-e $i $env"; done
133 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
134 if [ "{repo}" = "_" ]; then
135 image={container}:{tag}
136 elif [ "{port}" = "None" ]; then
137 image={repo}/{container}:{tag}
139 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
291 - functest-run-containers:
292 <<: *functest-run-containers
295 name: 'functest-opnfv-functest-healthcheck'
298 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
299 - /home/opnfv/functest/images:/home/opnfv/functest/images
301 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
302 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
303 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
305 container: 'functest-healthcheck'
323 - 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
326 name: 'functest-opnfv-functest-smoke-{tag}-{test}-run'
330 - functest-build_tag:
332 - functest-EXTERNAL_NETWORK:
333 EXTERNAL_NETWORK: public
334 - functest-VOLUME_DEVICE_NAME:
335 VOLUME_DEVICE_NAME: sdb
336 - functest-IMAGE_PROPERTIES:
337 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
341 - functest-run-containers:
342 <<: *functest-run-containers
345 name: 'functest-opnfv-functest-smoke'
348 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
349 - /home/opnfv/functest/images:/home/opnfv/functest/images
351 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
352 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
353 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
355 container: 'functest-smoke'
383 test: refstack_defcore
385 test: networking-bgpvpn
391 test: refstack_defcore
393 test: networking-bgpvpn
399 test: refstack_defcore
401 test: networking-bgpvpn
407 test: refstack_defcore
409 test: networking-bgpvpn
419 test: refstack_defcore
421 test: networking-bgpvpn
433 - 'functest-opnfv-functest-smoke-{tag}-{test}-run'
436 name: 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
440 - functest-build_tag:
442 - functest-EXTERNAL_NETWORK:
443 EXTERNAL_NETWORK: public
444 - functest-VOLUME_DEVICE_NAME:
445 VOLUME_DEVICE_NAME: sdb
446 - functest-IMAGE_PROPERTIES:
447 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
465 container: 'functest-smoke-cntt'
467 - tempest_neutron_cntt
468 - tempest_cinder_cntt
469 - tempest_keystone_cntt
473 - tempest_scenario_cntt
478 - 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
481 name: 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
485 - functest-build_tag:
487 - functest-EXTERNAL_NETWORK:
488 EXTERNAL_NETWORK: public
489 - functest-VOLUME_DEVICE_NAME:
490 VOLUME_DEVICE_NAME: sdb
491 - functest-IMAGE_PROPERTIES:
492 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
496 - functest-run-containers:
497 <<: *functest-run-containers
500 name: 'functest-opnfv-functest-benchmarking'
503 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
504 - /home/opnfv/functest/images:/home/opnfv/functest/images
506 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
507 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
508 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
510 container: 'functest-benchmarking'
519 - 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
522 name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
526 - functest-build_tag:
528 - functest-EXTERNAL_NETWORK:
529 EXTERNAL_NETWORK: public
530 - functest-VOLUME_DEVICE_NAME:
531 VOLUME_DEVICE_NAME: sdb
532 - functest-IMAGE_PROPERTIES:
533 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
537 - functest-run-containers:
538 <<: *functest-run-containers
541 name: 'functest-opnfv-functest-benchmarking-cntt'
544 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
545 - /home/opnfv/functest/images:/home/opnfv/functest/images
547 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
548 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
549 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
551 container: 'functest-benchmarking-cntt'
558 - 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
561 name: 'functest-opnfv-functest-vnf-{tag}-{test}-run'
565 - functest-build_tag:
567 - functest-EXTERNAL_NETWORK:
568 EXTERNAL_NETWORK: public
569 - functest-VOLUME_DEVICE_NAME:
570 VOLUME_DEVICE_NAME: sdb
571 - functest-IMAGE_PROPERTIES:
572 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
576 - functest-run-containers:
577 <<: *functest-run-containers
580 name: 'functest-opnfv-functest-vnf'
583 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
584 - /home/opnfv/functest/images:/home/opnfv/functest/images
586 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
587 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
588 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
590 container: 'functest-vnf'
600 - 'functest-opnfv-functest-vnf-{tag}-{test}-run'
608 if [ "{volumes}" != "None" ]; then
609 for i in $(echo {volumes} | tr -d '[] ' |sed "s/,/ /g" ); do volumes="-v $i $volumes"; done
612 if [ "{env}" != "None" ]; then
613 for i in $(eval echo {env} | tr -d '[] ' |sed "s/,/ /g" ); do env="-e $i $env"; done
615 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
616 if [ "{repo}" = "_" ]; then
617 image={container}:{tag}
618 elif [ "{port}" = "None" ]; then
619 image={repo}/{container}:{tag}
621 image={repo}:{port}/{container}:{tag}
623 sudo docker run --rm \
626 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
627 -e S3_DST_URL=s3://artifacts.opnfv.org/functest \
628 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \
629 -v /home/opnfv/functest/.boto:/root/.boto \
630 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
631 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
632 -e BUILD_TAG=$BUILD_TAG \
633 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
637 name: 'functest-{tag}-zip'
641 - functest-build_tag:
643 - functest-EXTERNAL_NETWORK:
644 EXTERNAL_NETWORK: public
645 - functest-VOLUME_DEVICE_NAME:
646 VOLUME_DEVICE_NAME: sdb
647 - functest-IMAGE_PROPERTIES:
648 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
653 <<: *functest-containers
658 name: 'functest-{tag}-zip'
661 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
662 - /home/opnfv/functest/images:/home/opnfv/functest/images
664 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
665 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
666 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
668 container: 'functest-healthcheck'
670 - 'functest-{tag}-zip'
673 name: 'functest-{tag}-daily'
674 project-type: multijob
680 - functest-build_tag:
682 - functest-EXTERNAL_NETWORK:
683 EXTERNAL_NETWORK: public
684 - functest-VOLUME_DEVICE_NAME:
685 VOLUME_DEVICE_NAME: sdb
686 - functest-IMAGE_PROPERTIES:
687 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
690 # PyYAML and yamllint differ here
691 # see https://github.com/yaml/pyyaml/issues/234
692 # yamllint disable rule:indentation
696 - ^functest-(pi-)*{tag}-(daily|docker|review)$
697 # yamllint enable rule:indentation
700 name: remove former images
702 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
704 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
706 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
708 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
710 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
712 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
715 name: pull containers
717 - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
719 - name: 'functest-opnfv-functest-smoke-{tag}-pull'
721 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
723 - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
725 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
727 - name: 'functest-opnfv-functest-vnf-{tag}-pull'
730 name: opnfv/functest-healthcheck:{tag}
732 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
734 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
736 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
738 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
740 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
742 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
744 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
746 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
748 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
750 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
752 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
754 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
756 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
759 name: opnfv/functest-smoke:{tag}
761 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
763 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
765 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
767 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
769 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
771 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
773 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
775 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
777 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
779 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
781 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
783 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
785 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
787 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
789 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
791 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
793 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
795 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
797 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
799 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
801 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
803 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
806 name: opnfv/functest-smoke-cntt:{tag}
808 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
810 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
812 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
814 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
816 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
818 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
820 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
822 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
825 name: opnfv/functest-benchmarking:{tag}
827 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
829 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
831 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
833 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
836 name: opnfv/functest-benchmarking-cntt:{tag}
838 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
840 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
843 name: opnfv/functest-vnf:{tag}
845 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
847 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
849 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
851 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
853 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
856 name: dump all campaign data
858 - name: 'functest-{tag}-zip'
862 name: 'functest-daily'
865 - 'functest-{tag}-daily'
877 regex: ^functest-[a-z0-9.]+-daily$
879 - functest-build-containers: &functest-build-containers
880 name: 'functest-build-containers'
881 <<: *functest-containers
884 buildargs: '{buildargs}'
888 name: functest-build-containers
892 if [ "{repo}" = "_" ]; then
893 image={container}:{tag}
894 elif [ "{port}" = "None" ]; then
895 image={repo}/{container}:{tag}
897 image={repo}:{port}/{container}:{tag}
900 if [ "{buildargs}" != "None" ]; then
901 build_args="{buildargs}"
903 if [ "{ref_arg}" != "None" ]; then
904 build_args="$build_args --build-arg {ref_arg}={ref}"
907 if [ "{from}" != "None" ]; then
908 sed -i {from} Dockerfile
910 sudo docker build $build_args \
911 --pull=false --no-cache --force-rm=true \
918 url: 'https://gerrit.opnfv.org/gerrit/functest'
919 refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
923 - functest-dep: &functest-dep
924 name: 'functest-containers'
928 dependency: '{dependency}'
931 name: functest-pull-dep-images
935 if [ "_" = "_" ]; then
936 image=alpine:{dependency}
937 elif [ "None" = "None" ]; then
938 image=_/alpine:{dependency}
940 image=_:/alpine:{dependency}
942 sudo docker pull $image || true
945 name: functest-remove-dep-images
949 if [ "_" = "_" ]; then
950 image=alpine:{dependency}
951 elif [ "" = "None" ]; then
952 image=_/alpine:{dependency}
954 image=_:/alpine:{dependency}
956 sudo docker rmi $image || true
959 name: 'functest-{repo}-{tag}-dep-pull'
964 - functest-pull-dep-images:
968 name: 'functest-{repo}-{tag}-dep-pull'
971 - 'functest-{repo}-{tag}-dep-pull'
974 name: 'functest-{repo}-{tag}-dep-rmi'
979 - functest-remove-dep-images:
983 name: 'functest-{repo}-{tag}-dep-rmi'
986 - 'functest-{repo}-{tag}-dep-rmi'
993 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
994 apt-get install software-properties-common gpg -y
995 sudo add-apt-repository -y ppa:deadsnakes/ppa
996 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
998 python3.9 python3.9-dev python3.9-distutils \
999 python3.8 python3.8-dev python3.8-distutils \
1000 python3.7 python3.7-dev python3.6 python3.6-dev \
1001 python python-dev python3-pip enchant -y
1002 sudo pip3 install tox tox-pip-version
1007 name: 'functest-{tag}-tox'
1010 ref: $GERRIT_REFSPEC
1012 - functest-patchset-created:
1022 <<: *functest-params
1024 - 'functest-{tag}-tox'
1027 name: 'functest-{repo}-{container}-{tag}-gate'
1033 ref: $GERRIT_REFSPEC
1035 - functest-build-containers:
1036 <<: *functest-build-containers
1037 ref: $GERRIT_REFSPEC
1038 buildargs: '{buildargs}'
1041 name: functest-opnfv-functest-core-{tag}-gate
1042 <<: *functest-params
1043 container: functest-core
1047 - 'functest-{repo}-{container}-{tag}-gate'
1050 name: functest-opnfv-functest-tempest-{tag}-gate
1051 <<: *functest-params
1052 container: functest-tempest
1054 path: docker/tempest
1057 - {'tag': 'wallaby'}
1062 - 'functest-{repo}-{container}-{tag}-gate'
1065 name: functest-opnfv-functest-healthcheck-{tag}-gate
1066 <<: *functest-params
1067 container: functest-healthcheck
1069 path: docker/healthcheck
1071 - 'functest-{repo}-{container}-{tag}-gate'
1074 name: functest-opnfv-functest-smoke-{tag}-gate
1075 <<: *functest-params
1076 container: functest-smoke
1080 - 'functest-{repo}-{container}-{tag}-gate'
1083 name: functest-opnfv-functest-benchmarking-{tag}-gate
1084 <<: *functest-params
1085 container: functest-benchmarking
1087 path: docker/benchmarking
1089 - 'functest-{repo}-{container}-{tag}-gate'
1092 name: functest-opnfv-functest-vnf-{tag}-gate
1093 <<: *functest-params
1094 container: functest-vnf
1098 - 'functest-{repo}-{container}-{tag}-gate'
1101 name: functest-opnfv-functest-smoke-cntt-{tag}-gate
1102 <<: *functest-params
1103 container: functest-smoke-cntt
1105 path: docker/smoke-cntt
1107 - 'functest-{repo}-{container}-{tag}-gate'
1110 name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate
1111 <<: *functest-params
1112 container: functest-benchmarking-cntt
1114 path: docker/benchmarking-cntt
1116 - 'functest-{repo}-{container}-{tag}-gate'
1119 name: functest-patchset-created
1123 - patchset-created-event
1124 - comment-added-contains-event:
1125 comment-contains-value: 'recheck'
1126 - comment-added-contains-event:
1127 comment-contains-value: 'reverify'
1129 - project-compare-type: 'ANT'
1130 project-pattern: 'functest'
1132 - branch-compare-type: 'ANT'
1133 branch-pattern: '**/{branch}'
1136 name: 'functest-{tag}-review'
1137 project-type: multijob
1139 - functest-patchset-created:
1144 - functest-build_tag:
1146 - functest-EXTERNAL_NETWORK:
1147 EXTERNAL_NETWORK: public
1148 - functest-VOLUME_DEVICE_NAME:
1149 VOLUME_DEVICE_NAME: sdb
1150 - functest-IMAGE_PROPERTIES:
1151 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
1154 # PyYAML and yamllint differ here
1155 # see https://github.com/yaml/pyyaml/issues/234
1156 # yamllint disable rule:indentation
1160 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1161 # yamllint enable rule:indentation
1164 name: remove former images
1166 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
1168 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
1170 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
1172 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
1174 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
1176 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
1179 name: remove dependency
1181 - name: 'functest-{repo}-{tag}-dep-rmi'
1184 name: pull dependency
1186 - name: 'functest-{repo}-{tag}-dep-pull'
1189 name: build opnfv/functest-core
1191 - name: 'functest-opnfv-functest-core-{tag}-gate'
1194 name: build opnfv/functest-tempest
1196 - name: 'functest-opnfv-functest-tempest-{tag}-gate'
1199 name: build containers
1201 - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1203 - name: 'functest-opnfv-functest-smoke-{tag}-gate'
1205 - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1207 - name: 'functest-opnfv-functest-vnf-{tag}-gate'
1210 name: build cntt containers
1212 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1214 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1217 name: opnfv/functest-healthcheck:{tag}
1219 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1221 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1223 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1225 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1227 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1229 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1231 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1233 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1235 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1237 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1239 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1241 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1243 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1246 name: opnfv/functest-smoke:{tag}
1248 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1250 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1252 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1254 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1256 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1258 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1260 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
1262 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1264 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1266 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1268 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1270 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1272 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1274 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
1276 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1278 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1280 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1282 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
1284 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
1286 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1288 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1290 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1293 name: opnfv/functest-smoke-cntt:{tag}
1295 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1297 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1299 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1301 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1303 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1305 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1307 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1309 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1312 name: opnfv/functest-benchmarking:{tag}
1314 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1316 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1318 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1320 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1323 name: opnfv/functest-benchmarking-cntt:{tag}
1325 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1327 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1330 name: opnfv/functest-vnf:{tag}
1332 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1334 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1336 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1338 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1340 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1344 name: 'functest-review'
1345 <<: *functest-params
1347 - 'functest-{tag}-review'
1350 name: functest-review
1359 regex: ^functest-[a-z0-9.]+-review$
1371 regex: ^functest-[a-z0-9.]+-tox$
1374 name: functest-push-containers
1378 if [ "{repo}" = "_" ]; then
1379 image={container}:{tag}
1380 elif [ "{port}" = "None" ]; then
1381 image={repo}/{container}:{tag}
1383 image={repo}:{port}/{container}:{tag}
1385 sudo docker push $image
1388 name: functest-commit
1391 cron: "*/30 * * * *"
1394 name: 'functest-{repo}-{container}-{tag}-build'
1402 - functest-build-containers:
1403 <<: *functest-build-containers
1405 buildargs: '{buildargs}'
1406 - functest-push-containers:
1407 <<: *functest-build-containers
1411 name: functest-opnfv-functest-core-{tag}-build
1412 <<: *functest-params
1413 container: functest-core
1417 - 'functest-{repo}-{container}-{tag}-build'
1420 name: functest-opnfv-functest-tempest-{tag}-build
1421 <<: *functest-params
1422 container: functest-tempest
1424 path: docker/tempest
1427 - {'tag': 'wallaby'}
1432 - 'functest-{repo}-{container}-{tag}-build'
1435 name: functest-opnfv-functest-healthcheck-{tag}-build
1436 <<: *functest-params
1437 container: functest-healthcheck
1439 path: docker/healthcheck
1441 - 'functest-{repo}-{container}-{tag}-build'
1444 name: functest-opnfv-functest-smoke-{tag}-build
1445 <<: *functest-params
1446 container: functest-smoke
1450 - 'functest-{repo}-{container}-{tag}-build'
1453 name: functest-opnfv-functest-benchmarking-{tag}-build
1454 <<: *functest-params
1455 container: functest-benchmarking
1457 path: docker/benchmarking
1459 - 'functest-{repo}-{container}-{tag}-build'
1462 name: functest-opnfv-functest-vnf-{tag}-build
1463 <<: *functest-params
1464 container: functest-vnf
1468 - 'functest-{repo}-{container}-{tag}-build'
1471 name: functest-opnfv-functest-smoke-cntt-{tag}-build
1472 <<: *functest-params
1473 container: functest-smoke-cntt
1475 path: docker/smoke-cntt
1477 - 'functest-{repo}-{container}-{tag}-build'
1480 name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
1481 <<: *functest-params
1482 container: functest-benchmarking-cntt
1484 path: docker/benchmarking-cntt
1486 - 'functest-{repo}-{container}-{tag}-build'
1489 name: 'functest-{tag}-docker'
1490 project-type: multijob
1499 # PyYAML and yamllint differ here
1500 # see https://github.com/yaml/pyyaml/issues/234
1501 # yamllint disable rule:indentation
1505 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1506 # yamllint enable rule:indentation
1509 name: remove dependency
1511 - name: 'functest-{repo}-{tag}-dep-rmi'
1514 name: pull dependency
1516 - name: 'functest-{repo}-{tag}-dep-pull'
1519 name: build opnfv/functest-core
1521 - name: 'functest-opnfv-functest-core-{tag}-build'
1524 name: build opnfv/functest-tempest
1526 - name: 'functest-opnfv-functest-tempest-{tag}-build'
1529 name: build containers
1531 - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1533 - name: 'functest-opnfv-functest-smoke-{tag}-build'
1535 - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1537 - name: 'functest-opnfv-functest-vnf-{tag}-build'
1540 name: build cntt containers
1542 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1544 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1548 name: functest-trivy
1551 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
1552 apt-get install curl -y
1554 curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
1555 if [ "{repo}" = "_" ]; then
1556 image={container}:{tag}
1557 elif [ "{port}" = "None" ]; then
1558 image={repo}/{container}:{tag}
1560 image={repo}:{port}/{container}:{tag}
1562 ./trivy --exit-code 1 $image
1565 name: 'functest-{repo}-{container}-{tag}-trivy'
1573 <<: *functest-containers
1576 name: 'functest-opnfv-functest-core-trivy'
1577 <<: *functest-params
1578 container: 'functest-core'
1580 - 'functest-{repo}-{container}-{tag}-trivy'
1583 name: 'functest-opnfv-functest-tempest-trivy'
1584 <<: *functest-params
1585 container: 'functest-tempest'
1587 - 'functest-{repo}-{container}-{tag}-trivy'
1590 name: 'functest-opnfv-functest-healthcheck-trivy'
1591 <<: *functest-params
1592 container: 'functest-healthcheck'
1594 - 'functest-{repo}-{container}-{tag}-trivy'
1597 name: 'functest-opnfv-functest-smoke-trivy'
1598 <<: *functest-params
1599 container: 'functest-smoke'
1601 - 'functest-{repo}-{container}-{tag}-trivy'
1604 name: 'functest-opnfv-functest-benchmarking-trivy'
1605 <<: *functest-params
1606 container: 'functest-benchmarking'
1608 - 'functest-{repo}-{container}-{tag}-trivy'
1611 name: 'functest-opnfv-functest-vnf-trivy'
1612 <<: *functest-params
1613 container: 'functest-vnf'
1615 - 'functest-{repo}-{container}-{tag}-trivy'
1618 name: 'functest-opnfv-functest-smoke-cntt-trivy'
1619 <<: *functest-params
1620 container: 'functest-smoke-cntt'
1622 - 'functest-{repo}-{container}-{tag}-trivy'
1625 name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
1626 <<: *functest-params
1627 container: 'functest-benchmarking-cntt'
1629 - 'functest-{repo}-{container}-{tag}-trivy'
1633 <<: *functest-params
1635 - 'functest-{tag}-docker'
1638 name: functest-docker
1647 regex: ^functest-[a-z0-9.]+-docker$
1650 name: functest-trivy
1659 regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$