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" ); \
120 do volumes="-v $i $volumes"; done
123 if [ "{env}" != "None" ]; then
124 for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \
125 do env="-e $i $env"; done
127 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
128 if [ "{repo}" = "_" ]; then
129 image={container}:{tag}
130 elif [ "{port}" = "None" ]; then
131 image={repo}/{container}:{tag}
133 image={repo}:{port}/{container}:{tag}
135 sudo docker run --rm \
136 --privileged={privileged} \
137 --network={network} \
140 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
141 -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
142 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
143 -v /home/opnfv/functest/.boto:/root/.boto \
144 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
145 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
146 -e NODE_NAME=$slave \
147 -e BUILD_TAG=$BUILD_TAG \
148 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
149 -e DASHBOARD_URL={DASHBOARD_URL} \
150 $image run_tests -t {test} -p -r
153 name: functest-remove-images
157 if [ "{repo}" = "_" ]; then
158 image={container}:{tag}
159 elif [ "{port}" = "None" ]; then
160 image={repo}/{container}:{tag}
162 image={repo}:{port}/{container}:{tag}
164 sudo docker rmi $image || true
167 name: 'functest-{repo}-{container}-{tag}-pull'
172 - functest-pull-containers:
173 <<: *functest-containers
176 name: 'functest-opnfv-functest-healthcheck-pull'
178 container: 'functest-healthcheck'
180 - 'functest-{repo}-{container}-{tag}-pull'
183 name: 'functest-opnfv-functest-smoke-pull'
185 container: 'functest-smoke'
187 - 'functest-{repo}-{container}-{tag}-pull'
190 name: 'functest-opnfv-functest-smoke-cntt-pull'
192 container: 'functest-smoke-cntt'
194 - 'functest-{repo}-{container}-{tag}-pull'
197 name: 'functest-opnfv-functest-benchmarking-pull'
199 container: 'functest-benchmarking'
201 - 'functest-{repo}-{container}-{tag}-pull'
204 name: 'functest-opnfv-functest-benchmarking-cntt-pull'
206 container: 'functest-benchmarking-cntt'
208 - 'functest-{repo}-{container}-{tag}-pull'
211 name: 'functest-opnfv-functest-vnf-pull'
213 container: 'functest-vnf'
215 - 'functest-{repo}-{container}-{tag}-pull'
218 name: 'functest-{repo}-{container}-{tag}-rmi'
223 - functest-remove-images:
224 <<: *functest-containers
227 name: 'functest-opnfv-functest-healthcheck-rmi'
229 container: 'functest-healthcheck'
231 - 'functest-{repo}-{container}-{tag}-rmi'
234 name: 'functest-opnfv-functest-smoke-rmi'
236 container: 'functest-smoke'
238 - 'functest-{repo}-{container}-{tag}-rmi'
241 name: 'functest-opnfv-functest-smoke-cntt-rmi'
243 container: 'functest-smoke-cntt'
245 - 'functest-{repo}-{container}-{tag}-rmi'
248 name: 'functest-opnfv-functest-benchmarking-rmi'
250 container: 'functest-benchmarking'
252 - 'functest-{repo}-{container}-{tag}-rmi'
255 name: 'functest-opnfv-functest-benchmarking-cntt-rmi'
257 container: 'functest-benchmarking-cntt'
259 - 'functest-{repo}-{container}-{tag}-rmi'
262 name: 'functest-opnfv-functest-vnf-rmi'
264 container: 'functest-vnf'
266 - 'functest-{repo}-{container}-{tag}-rmi'
269 name: 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
273 - functest-build_tag:
275 - functest-EXTERNAL_NETWORK:
276 EXTERNAL_NETWORK: public
277 - functest-VOLUME_DEVICE_NAME:
278 VOLUME_DEVICE_NAME: sdb
279 - functest-IMAGE_PROPERTIES:
280 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
282 - functest-run-containers:
283 <<: *functest-run-containers
286 name: 'functest-opnfv-functest-healthcheck'
289 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
290 - /home/opnfv/functest/images:/home/opnfv/functest/images
292 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
293 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
294 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
295 container: 'functest-healthcheck'
313 - 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
316 name: 'functest-opnfv-functest-smoke-{tag}-{test}-run'
320 - functest-build_tag:
322 - functest-EXTERNAL_NETWORK:
323 EXTERNAL_NETWORK: public
324 - functest-VOLUME_DEVICE_NAME:
325 VOLUME_DEVICE_NAME: sdb
326 - functest-IMAGE_PROPERTIES:
327 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
329 - functest-run-containers:
330 <<: *functest-run-containers
333 name: 'functest-opnfv-functest-smoke'
336 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
337 - /home/opnfv/functest/images:/home/opnfv/functest/images
339 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
340 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
341 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
342 container: 'functest-smoke'
370 test: refstack_defcore
372 test: networking-bgpvpn
378 test: refstack_defcore
380 test: networking-bgpvpn
386 test: refstack_defcore
388 test: networking-bgpvpn
394 test: refstack_defcore
396 test: networking-bgpvpn
406 test: refstack_defcore
408 test: networking-bgpvpn
420 - 'functest-opnfv-functest-smoke-{tag}-{test}-run'
423 name: 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
427 - functest-build_tag:
429 - functest-EXTERNAL_NETWORK:
430 EXTERNAL_NETWORK: public
431 - functest-VOLUME_DEVICE_NAME:
432 VOLUME_DEVICE_NAME: sdb
433 - functest-IMAGE_PROPERTIES:
434 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
436 - functest-run-containers:
437 <<: *functest-run-containers
440 name: 'functest-opnfv-functest-smoke-cntt'
443 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
444 - /home/opnfv/functest/images:/home/opnfv/functest/images
446 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
447 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
448 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
449 container: 'functest-smoke-cntt'
451 - tempest_neutron_cntt
452 - tempest_cinder_cntt
453 - tempest_keystone_cntt
457 - tempest_scenario_cntt
462 - 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
465 name: 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
469 - functest-build_tag:
471 - functest-EXTERNAL_NETWORK:
472 EXTERNAL_NETWORK: public
473 - functest-VOLUME_DEVICE_NAME:
474 VOLUME_DEVICE_NAME: sdb
475 - functest-IMAGE_PROPERTIES:
476 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
478 - functest-run-containers:
479 <<: *functest-run-containers
482 name: 'functest-opnfv-functest-benchmarking'
485 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
486 - /home/opnfv/functest/images:/home/opnfv/functest/images
488 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
489 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
490 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
491 container: 'functest-benchmarking'
500 - 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
503 name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
507 - functest-build_tag:
509 - functest-EXTERNAL_NETWORK:
510 EXTERNAL_NETWORK: public
511 - functest-VOLUME_DEVICE_NAME:
512 VOLUME_DEVICE_NAME: sdb
513 - functest-IMAGE_PROPERTIES:
514 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
516 - functest-run-containers:
517 <<: *functest-run-containers
520 name: 'functest-opnfv-functest-benchmarking-cntt'
523 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
524 - /home/opnfv/functest/images:/home/opnfv/functest/images
526 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
527 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
528 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
529 container: 'functest-benchmarking-cntt'
536 - 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
539 name: 'functest-opnfv-functest-vnf-{tag}-{test}-run'
543 - functest-build_tag:
545 - functest-EXTERNAL_NETWORK:
546 EXTERNAL_NETWORK: public
547 - functest-VOLUME_DEVICE_NAME:
548 VOLUME_DEVICE_NAME: sdb
549 - functest-IMAGE_PROPERTIES:
550 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
552 - functest-run-containers:
553 <<: *functest-run-containers
556 name: 'functest-opnfv-functest-vnf'
559 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
560 - /home/opnfv/functest/images:/home/opnfv/functest/images
562 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
563 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
564 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
565 container: 'functest-vnf'
575 - 'functest-opnfv-functest-vnf-{tag}-{test}-run'
583 if [ "{volumes}" != "None" ]; then
584 for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \
585 do volumes="-v $i $volumes"; done
588 if [ "{env}" != "None" ]; then
589 for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \
590 do env="-e $i $env"; done
592 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
593 if [ "{repo}" = "_" ]; then
594 image={container}:{tag}
595 elif [ "{port}" = "None" ]; then
596 image={repo}/{container}:{tag}
598 image={repo}:{port}/{container}:{tag}
600 sudo docker run --rm \
603 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
604 -e S3_DST_URL=s3://artifacts.opnfv.org/functest \
605 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \
606 -v /home/opnfv/functest/.boto:/root/.boto \
607 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
608 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
609 -e BUILD_TAG=$BUILD_TAG \
610 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
614 name: 'functest-{tag}-zip'
618 - functest-build_tag:
620 - functest-EXTERNAL_NETWORK:
621 EXTERNAL_NETWORK: public
622 - functest-VOLUME_DEVICE_NAME:
623 VOLUME_DEVICE_NAME: sdb
624 - functest-IMAGE_PROPERTIES:
625 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
628 <<: *functest-containers
633 name: 'functest-{tag}-zip'
636 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
637 - /home/opnfv/functest/images:/home/opnfv/functest/images
639 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
640 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
641 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
642 container: 'functest-healthcheck'
644 - 'functest-{tag}-zip'
647 name: 'functest-{tag}-daily'
648 project-type: multijob
654 - functest-build_tag:
656 - functest-EXTERNAL_NETWORK:
657 EXTERNAL_NETWORK: public
658 - functest-VOLUME_DEVICE_NAME:
659 VOLUME_DEVICE_NAME: sdb
660 - functest-IMAGE_PROPERTIES:
661 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
662 # PyYAML and yamllint differ here
663 # see https://github.com/yaml/pyyaml/issues/234
664 # yamllint disable rule:indentation
668 - ^functest-(pi-)*{tag}-(daily|docker|review)$
669 # yamllint enable rule:indentation
672 name: remove former images
674 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
676 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
678 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
680 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
682 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
684 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
687 name: pull containers
689 - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
691 - name: 'functest-opnfv-functest-smoke-{tag}-pull'
693 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
695 - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
697 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
699 - name: 'functest-opnfv-functest-vnf-{tag}-pull'
702 name: opnfv/functest-healthcheck:{tag}
704 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
706 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
708 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
710 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
712 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
714 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
716 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
718 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
720 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
722 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
724 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
726 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
728 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
731 name: opnfv/functest-smoke:{tag}
733 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
735 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
737 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
739 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
741 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
743 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
745 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
747 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
749 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
751 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
753 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
755 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
757 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
759 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
761 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
763 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
765 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
767 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
769 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
771 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
773 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
775 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
778 name: opnfv/functest-smoke-cntt:{tag}
780 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
782 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
784 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
786 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
788 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
790 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
792 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
794 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
797 name: opnfv/functest-benchmarking:{tag}
799 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
801 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
803 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
805 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
808 name: opnfv/functest-benchmarking-cntt:{tag}
810 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
812 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
815 name: opnfv/functest-vnf:{tag}
817 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
819 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
821 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
823 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
825 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
828 name: dump all campaign data
830 - name: 'functest-{tag}-zip'
834 name: 'functest-daily'
837 - 'functest-{tag}-daily'
849 regex: ^functest-[a-z0-9.]+-daily$
851 - functest-build-containers: &functest-build-containers
852 name: 'functest-build-containers'
853 <<: *functest-containers
856 build_args: '{build_args}'
860 name: functest-build-containers
864 if [ "{repo}" = "_" ]; then
865 image={container}:{tag}
866 elif [ "{port}" = "None" ]; then
867 image={repo}/{container}:{tag}
869 image={repo}:{port}/{container}:{tag}
872 if [ "{build_args}" != "None" ]; then
873 for i in $(echo {build_args} | tr -d '[]' |sed "s/, / /g" ); \
874 do build_args="--build-arg $i $build_args"; done
876 if [ "{ref_arg}" != "None" ]; then
877 build_args="$build_args --build-arg {ref_arg}={ref}"
880 if [ "{from}" != "None" ]; then
881 sed -i {from} Dockerfile
883 sudo docker build $build_args \
884 --pull=false --no-cache --force-rm=true \
891 url: 'https://gerrit.opnfv.org/gerrit/functest'
892 refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
896 - functest-dep: &functest-dep
897 name: 'functest-containers'
901 dependency: '{dependency}'
904 name: functest-pull-dep-images
908 if [ "_" = "_" ]; then
909 image=alpine:{dependency}
910 elif [ "None" = "None" ]; then
911 image=_/alpine:{dependency}
913 image=_:/alpine:{dependency}
915 sudo docker pull $image || true
918 name: functest-remove-dep-images
922 if [ "_" = "_" ]; then
923 image=alpine:{dependency}
924 elif [ "" = "None" ]; then
925 image=_/alpine:{dependency}
927 image=_:/alpine:{dependency}
929 sudo docker rmi $image || true
932 name: 'functest-{repo}-{tag}-dep-pull'
937 - functest-pull-dep-images:
941 name: 'functest-{repo}-{tag}-dep-pull'
944 - 'functest-{repo}-{tag}-dep-pull'
947 name: 'functest-{repo}-{tag}-dep-rmi'
952 - functest-remove-dep-images:
956 name: 'functest-{repo}-{tag}-dep-rmi'
959 - 'functest-{repo}-{tag}-dep-rmi'
966 sudo apt-get update && \
967 sudo DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y \
968 sudo DEBIAN_FRONTEND=noninteractive \
969 apt-get install software-properties-common gpg -y
970 sudo add-apt-repository -y ppa:deadsnakes/ppa
971 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
973 python3.9 python3.9-dev python3.9-distutils \
974 python3.8 python3.8-dev python3.8-distutils \
975 python3.7 python3.7-dev python3.6 python3.6-dev \
976 python python-dev python3-pip enchant -y
977 sudo pip3 install tox tox-pip-version
982 name: 'functest-{tag}-tox'
987 - functest-patchset-created:
999 - 'functest-{tag}-tox'
1002 name: 'functest-{repo}-{container}-{tag}-gate'
1008 ref: $GERRIT_REFSPEC
1010 - functest-build-containers:
1011 <<: *functest-build-containers
1012 ref: $GERRIT_REFSPEC
1013 build_args: '{build_args}'
1016 name: functest-opnfv-functest-core-{tag}-gate
1017 <<: *functest-params
1018 container: functest-core
1022 - 'functest-{repo}-{container}-{tag}-gate'
1025 name: functest-opnfv-functest-tempest-{tag}-gate
1026 <<: *functest-params
1027 container: functest-tempest
1029 path: docker/tempest
1032 - {'tag': 'wallaby'}
1037 - 'functest-{repo}-{container}-{tag}-gate'
1040 name: functest-opnfv-functest-healthcheck-{tag}-gate
1041 <<: *functest-params
1042 container: functest-healthcheck
1044 path: docker/healthcheck
1046 - 'functest-{repo}-{container}-{tag}-gate'
1049 name: functest-opnfv-functest-smoke-{tag}-gate
1050 <<: *functest-params
1051 container: functest-smoke
1055 - 'functest-{repo}-{container}-{tag}-gate'
1058 name: functest-opnfv-functest-benchmarking-{tag}-gate
1059 <<: *functest-params
1060 container: functest-benchmarking
1062 path: docker/benchmarking
1064 - 'functest-{repo}-{container}-{tag}-gate'
1067 name: functest-opnfv-functest-vnf-{tag}-gate
1068 <<: *functest-params
1069 container: functest-vnf
1073 - 'functest-{repo}-{container}-{tag}-gate'
1076 name: functest-opnfv-functest-smoke-cntt-{tag}-gate
1077 <<: *functest-params
1078 container: functest-smoke-cntt
1080 path: docker/smoke-cntt
1082 - 'functest-{repo}-{container}-{tag}-gate'
1085 name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate
1086 <<: *functest-params
1087 container: functest-benchmarking-cntt
1089 path: docker/benchmarking-cntt
1091 - 'functest-{repo}-{container}-{tag}-gate'
1094 name: functest-patchset-created
1098 - patchset-created-event
1099 - comment-added-contains-event:
1100 comment-contains-value: 'recheck'
1101 - comment-added-contains-event:
1102 comment-contains-value: 'reverify'
1104 - project-compare-type: 'ANT'
1105 project-pattern: 'functest'
1107 - branch-compare-type: 'ANT'
1108 branch-pattern: '**/{branch}'
1111 name: 'functest-{tag}-review'
1112 project-type: multijob
1114 - functest-patchset-created:
1119 - functest-build_tag:
1121 - functest-EXTERNAL_NETWORK:
1122 EXTERNAL_NETWORK: public
1123 - functest-VOLUME_DEVICE_NAME:
1124 VOLUME_DEVICE_NAME: sdb
1125 - functest-IMAGE_PROPERTIES:
1126 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
1127 # PyYAML and yamllint differ here
1128 # see https://github.com/yaml/pyyaml/issues/234
1129 # yamllint disable rule:indentation
1133 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1134 # yamllint enable rule:indentation
1137 name: remove former images
1139 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
1141 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
1143 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
1145 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
1147 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
1149 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
1152 name: remove dependency
1154 - name: 'functest-{repo}-{tag}-dep-rmi'
1157 name: pull dependency
1159 - name: 'functest-{repo}-{tag}-dep-pull'
1162 name: build opnfv/functest-core
1164 - name: 'functest-opnfv-functest-core-{tag}-gate'
1167 name: build opnfv/functest-tempest
1169 - name: 'functest-opnfv-functest-tempest-{tag}-gate'
1172 name: build containers
1174 - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1176 - name: 'functest-opnfv-functest-smoke-{tag}-gate'
1178 - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1180 - name: 'functest-opnfv-functest-vnf-{tag}-gate'
1183 name: build cntt containers
1185 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1187 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1190 name: opnfv/functest-healthcheck:{tag}
1192 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1194 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1196 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1198 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1200 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1202 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1204 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1206 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1208 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1210 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1212 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1214 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1216 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1219 name: opnfv/functest-smoke:{tag}
1221 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1223 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1225 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1227 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1229 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1231 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1233 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
1235 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1237 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1239 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1241 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1243 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1245 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1247 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
1249 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1251 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1253 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1255 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
1257 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
1259 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1261 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1263 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1266 name: opnfv/functest-smoke-cntt:{tag}
1268 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1270 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1272 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1274 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1276 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1278 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1280 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1282 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1285 name: opnfv/functest-benchmarking:{tag}
1287 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1289 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1291 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1293 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1296 name: opnfv/functest-benchmarking-cntt:{tag}
1298 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1300 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1303 name: opnfv/functest-vnf:{tag}
1305 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1307 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1309 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1311 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1313 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1317 name: 'functest-review'
1318 <<: *functest-params
1320 - 'functest-{tag}-review'
1323 name: functest-review
1332 regex: ^functest-[a-z0-9.]+-review$
1344 regex: ^functest-[a-z0-9.]+-tox$
1347 name: functest-push-containers
1351 if [ "{repo}" = "_" ]; then
1352 image={container}:{tag}
1353 elif [ "{port}" = "None" ]; then
1354 image={repo}/{container}:{tag}
1356 image={repo}:{port}/{container}:{tag}
1358 sudo docker push $image
1361 name: functest-commit
1364 cron: "*/30 * * * *"
1367 name: 'functest-{repo}-{container}-{tag}-build'
1375 - functest-build-containers:
1376 <<: *functest-build-containers
1378 build_args: '{build_args}'
1379 - functest-push-containers:
1380 <<: *functest-build-containers
1384 name: functest-opnfv-functest-core-{tag}-build
1385 <<: *functest-params
1386 container: functest-core
1390 - 'functest-{repo}-{container}-{tag}-build'
1393 name: functest-opnfv-functest-tempest-{tag}-build
1394 <<: *functest-params
1395 container: functest-tempest
1397 path: docker/tempest
1400 - {'tag': 'wallaby'}
1405 - 'functest-{repo}-{container}-{tag}-build'
1408 name: functest-opnfv-functest-healthcheck-{tag}-build
1409 <<: *functest-params
1410 container: functest-healthcheck
1412 path: docker/healthcheck
1414 - 'functest-{repo}-{container}-{tag}-build'
1417 name: functest-opnfv-functest-smoke-{tag}-build
1418 <<: *functest-params
1419 container: functest-smoke
1423 - 'functest-{repo}-{container}-{tag}-build'
1426 name: functest-opnfv-functest-benchmarking-{tag}-build
1427 <<: *functest-params
1428 container: functest-benchmarking
1430 path: docker/benchmarking
1432 - 'functest-{repo}-{container}-{tag}-build'
1435 name: functest-opnfv-functest-vnf-{tag}-build
1436 <<: *functest-params
1437 container: functest-vnf
1441 - 'functest-{repo}-{container}-{tag}-build'
1444 name: functest-opnfv-functest-smoke-cntt-{tag}-build
1445 <<: *functest-params
1446 container: functest-smoke-cntt
1448 path: docker/smoke-cntt
1450 - 'functest-{repo}-{container}-{tag}-build'
1453 name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
1454 <<: *functest-params
1455 container: functest-benchmarking-cntt
1457 path: docker/benchmarking-cntt
1459 - 'functest-{repo}-{container}-{tag}-build'
1462 name: 'functest-{tag}-docker'
1463 project-type: multijob
1472 # PyYAML and yamllint differ here
1473 # see https://github.com/yaml/pyyaml/issues/234
1474 # yamllint disable rule:indentation
1478 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1479 # yamllint enable rule:indentation
1482 name: remove dependency
1484 - name: 'functest-{repo}-{tag}-dep-rmi'
1487 name: pull dependency
1489 - name: 'functest-{repo}-{tag}-dep-pull'
1492 name: build opnfv/functest-core
1494 - name: 'functest-opnfv-functest-core-{tag}-build'
1497 name: build opnfv/functest-tempest
1499 - name: 'functest-opnfv-functest-tempest-{tag}-build'
1502 name: build containers
1504 - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1506 - name: 'functest-opnfv-functest-smoke-{tag}-build'
1508 - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1510 - name: 'functest-opnfv-functest-vnf-{tag}-build'
1513 name: build cntt containers
1515 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1517 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1521 name: functest-trivy
1524 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
1525 apt-get install curl -y
1527 curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
1528 if [ "{repo}" = "_" ]; then
1529 image={container}:{tag}
1530 elif [ "{port}" = "None" ]; then
1531 image={repo}/{container}:{tag}
1533 image={repo}:{port}/{container}:{tag}
1535 ./trivy --exit-code 1 $image
1538 name: 'functest-{repo}-{container}-{tag}-trivy'
1546 <<: *functest-containers
1549 name: 'functest-opnfv-functest-core-trivy'
1550 <<: *functest-params
1551 container: 'functest-core'
1553 - 'functest-{repo}-{container}-{tag}-trivy'
1556 name: 'functest-opnfv-functest-tempest-trivy'
1557 <<: *functest-params
1558 container: 'functest-tempest'
1560 - 'functest-{repo}-{container}-{tag}-trivy'
1563 name: 'functest-opnfv-functest-healthcheck-trivy'
1564 <<: *functest-params
1565 container: 'functest-healthcheck'
1567 - 'functest-{repo}-{container}-{tag}-trivy'
1570 name: 'functest-opnfv-functest-smoke-trivy'
1571 <<: *functest-params
1572 container: 'functest-smoke'
1574 - 'functest-{repo}-{container}-{tag}-trivy'
1577 name: 'functest-opnfv-functest-benchmarking-trivy'
1578 <<: *functest-params
1579 container: 'functest-benchmarking'
1581 - 'functest-{repo}-{container}-{tag}-trivy'
1584 name: 'functest-opnfv-functest-vnf-trivy'
1585 <<: *functest-params
1586 container: 'functest-vnf'
1588 - 'functest-{repo}-{container}-{tag}-trivy'
1591 name: 'functest-opnfv-functest-smoke-cntt-trivy'
1592 <<: *functest-params
1593 container: 'functest-smoke-cntt'
1595 - 'functest-{repo}-{container}-{tag}-trivy'
1598 name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
1599 <<: *functest-params
1600 container: 'functest-benchmarking-cntt'
1602 - 'functest-{repo}-{container}-{tag}-trivy'
1606 <<: *functest-params
1608 - 'functest-{tag}-docker'
1611 name: functest-docker
1620 regex: ^functest-[a-z0-9.]+-docker$
1623 name: functest-trivy
1632 regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$