2 - functest-containers: &functest-containers
3 name: 'functest-containers'
6 container: '{container}'
9 - functest-params: &functest-params
10 name: 'functest-params'
19 DASHBOARD_URL: http://172.30.12.85
26 DASHBOARD_URL: http://172.30.12.85
31 branch: stable/wallaby
33 DASHBOARD_URL: http://172.30.13.91
40 DASHBOARD_URL: http://172.30.13.94
47 DASHBOARD_URL: http://172.30.12.88
54 DASHBOARD_URL: http://172.30.12.83
57 - functest-jobs: &functest-jobs
59 current-parameters: true
69 name: functest-build_tag
75 name: functest-EXTERNAL_NETWORK
78 name: EXTERNAL_NETWORK
82 name: functest-VOLUME_DEVICE_NAME
85 name: VOLUME_DEVICE_NAME
89 name: functest-IMAGE_PROPERTIES
92 name: IMAGE_PROPERTIES
93 default: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
95 - functest-run-containers: &functest-run-containers
96 name: 'functest-run-containers'
97 <<: *functest-containers
99 privileged: '{privileged}'
103 DASHBOARD_URL: '{DASHBOARD_URL}'
106 name: functest-pull-containers
110 if [ "{repo}" = "_" ]; then
111 image={container}:{tag}
112 elif [ "{port}" = "None" ]; then
113 image={repo}/{container}:{tag}
115 image={repo}:{port}/{container}:{tag}
117 sudo docker pull $image
120 name: functest-run-containers
125 if [ "{volumes}" != "None" ]; then
126 for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \
127 do volumes="-v $i $volumes"; done
130 if [ "{env}" != "None" ]; then
131 for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \
132 do env="-e $i $env"; done
134 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
135 if [ "{repo}" = "_" ]; then
136 image={container}:{tag}
137 elif [ "{port}" = "None" ]; then
138 image={repo}/{container}:{tag}
140 image={repo}:{port}/{container}:{tag}
142 sudo docker run --rm \
143 --privileged={privileged} \
144 --network={network} \
147 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
148 -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
149 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
150 -v /home/opnfv/functest/.boto:/root/.boto \
151 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
152 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
153 -e NODE_NAME=$slave \
154 -e BUILD_TAG=$BUILD_TAG \
155 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
156 -e DASHBOARD_URL={DASHBOARD_URL} \
157 $image run_tests -t {test} -p -r
160 name: functest-remove-images
164 if [ "{repo}" = "_" ]; then
165 image={container}:{tag}
166 elif [ "{port}" = "None" ]; then
167 image={repo}/{container}:{tag}
169 image={repo}:{port}/{container}:{tag}
171 sudo docker rmi $image || true
174 name: 'functest-{repo}-{container}-{tag}-pull'
179 - functest-pull-containers:
180 <<: *functest-containers
183 name: 'functest-opnfv-functest-healthcheck-pull'
185 container: 'functest-healthcheck'
187 - 'functest-{repo}-{container}-{tag}-pull'
190 name: 'functest-opnfv-functest-smoke-pull'
192 container: 'functest-smoke'
194 - 'functest-{repo}-{container}-{tag}-pull'
197 name: 'functest-opnfv-functest-smoke-cntt-pull'
199 container: 'functest-smoke-cntt'
201 - 'functest-{repo}-{container}-{tag}-pull'
204 name: 'functest-opnfv-functest-benchmarking-pull'
206 container: 'functest-benchmarking'
208 - 'functest-{repo}-{container}-{tag}-pull'
211 name: 'functest-opnfv-functest-benchmarking-cntt-pull'
213 container: 'functest-benchmarking-cntt'
215 - 'functest-{repo}-{container}-{tag}-pull'
218 name: 'functest-opnfv-functest-vnf-pull'
220 container: 'functest-vnf'
222 - 'functest-{repo}-{container}-{tag}-pull'
225 name: 'functest-{repo}-{container}-{tag}-rmi'
230 - functest-remove-images:
231 <<: *functest-containers
234 name: 'functest-opnfv-functest-healthcheck-rmi'
236 container: 'functest-healthcheck'
238 - 'functest-{repo}-{container}-{tag}-rmi'
241 name: 'functest-opnfv-functest-smoke-rmi'
243 container: 'functest-smoke'
245 - 'functest-{repo}-{container}-{tag}-rmi'
248 name: 'functest-opnfv-functest-smoke-cntt-rmi'
250 container: 'functest-smoke-cntt'
252 - 'functest-{repo}-{container}-{tag}-rmi'
255 name: 'functest-opnfv-functest-benchmarking-rmi'
257 container: 'functest-benchmarking'
259 - 'functest-{repo}-{container}-{tag}-rmi'
262 name: 'functest-opnfv-functest-benchmarking-cntt-rmi'
264 container: 'functest-benchmarking-cntt'
266 - 'functest-{repo}-{container}-{tag}-rmi'
269 name: 'functest-opnfv-functest-vnf-rmi'
271 container: 'functest-vnf'
273 - 'functest-{repo}-{container}-{tag}-rmi'
276 name: 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
280 - functest-build_tag:
282 - functest-EXTERNAL_NETWORK:
283 EXTERNAL_NETWORK: public
284 - functest-VOLUME_DEVICE_NAME:
285 VOLUME_DEVICE_NAME: sdb
286 - functest-IMAGE_PROPERTIES:
287 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
289 - functest-run-containers:
290 <<: *functest-run-containers
293 name: 'functest-opnfv-functest-healthcheck'
296 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
297 - /home/opnfv/functest/images:/home/opnfv/functest/images
299 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
300 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
301 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
302 container: 'functest-healthcheck'
320 - 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
323 name: 'functest-opnfv-functest-smoke-{tag}-{test}-run'
327 - functest-build_tag:
329 - functest-EXTERNAL_NETWORK:
330 EXTERNAL_NETWORK: public
331 - functest-VOLUME_DEVICE_NAME:
332 VOLUME_DEVICE_NAME: sdb
333 - functest-IMAGE_PROPERTIES:
334 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
336 - functest-run-containers:
337 <<: *functest-run-containers
340 name: 'functest-opnfv-functest-smoke'
343 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
344 - /home/opnfv/functest/images:/home/opnfv/functest/images
346 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
347 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
348 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
349 container: 'functest-smoke'
377 test: refstack_defcore
379 test: networking-bgpvpn
385 test: refstack_defcore
387 test: networking-bgpvpn
393 test: refstack_defcore
395 test: networking-bgpvpn
401 test: refstack_defcore
403 test: networking-bgpvpn
413 test: refstack_defcore
415 test: networking-bgpvpn
427 - 'functest-opnfv-functest-smoke-{tag}-{test}-run'
430 name: 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
434 - functest-build_tag:
436 - functest-EXTERNAL_NETWORK:
437 EXTERNAL_NETWORK: public
438 - functest-VOLUME_DEVICE_NAME:
439 VOLUME_DEVICE_NAME: sdb
440 - functest-IMAGE_PROPERTIES:
441 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
443 - functest-run-containers:
444 <<: *functest-run-containers
447 name: 'functest-opnfv-functest-smoke-cntt'
450 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
451 - /home/opnfv/functest/images:/home/opnfv/functest/images
453 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
454 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
455 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
456 container: 'functest-smoke-cntt'
458 - tempest_neutron_cntt
459 - tempest_cinder_cntt
460 - tempest_keystone_cntt
464 - tempest_scenario_cntt
469 - 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
472 name: 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
476 - functest-build_tag:
478 - functest-EXTERNAL_NETWORK:
479 EXTERNAL_NETWORK: public
480 - functest-VOLUME_DEVICE_NAME:
481 VOLUME_DEVICE_NAME: sdb
482 - functest-IMAGE_PROPERTIES:
483 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
485 - functest-run-containers:
486 <<: *functest-run-containers
489 name: 'functest-opnfv-functest-benchmarking'
492 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
493 - /home/opnfv/functest/images:/home/opnfv/functest/images
495 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
496 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
497 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
498 container: 'functest-benchmarking'
507 - 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
510 name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
514 - functest-build_tag:
516 - functest-EXTERNAL_NETWORK:
517 EXTERNAL_NETWORK: public
518 - functest-VOLUME_DEVICE_NAME:
519 VOLUME_DEVICE_NAME: sdb
520 - functest-IMAGE_PROPERTIES:
521 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
523 - functest-run-containers:
524 <<: *functest-run-containers
527 name: 'functest-opnfv-functest-benchmarking-cntt'
530 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
531 - /home/opnfv/functest/images:/home/opnfv/functest/images
533 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
534 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
535 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
536 container: 'functest-benchmarking-cntt'
543 - 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
546 name: 'functest-opnfv-functest-vnf-{tag}-{test}-run'
550 - functest-build_tag:
552 - functest-EXTERNAL_NETWORK:
553 EXTERNAL_NETWORK: public
554 - functest-VOLUME_DEVICE_NAME:
555 VOLUME_DEVICE_NAME: sdb
556 - functest-IMAGE_PROPERTIES:
557 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
559 - functest-run-containers:
560 <<: *functest-run-containers
563 name: 'functest-opnfv-functest-vnf'
566 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
567 - /home/opnfv/functest/images:/home/opnfv/functest/images
569 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
570 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
571 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
572 container: 'functest-vnf'
582 - 'functest-opnfv-functest-vnf-{tag}-{test}-run'
590 if [ "{volumes}" != "None" ]; then
591 for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \
592 do volumes="-v $i $volumes"; done
595 if [ "{env}" != "None" ]; then
596 for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \
597 do env="-e $i $env"; done
599 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
600 if [ "{repo}" = "_" ]; then
601 image={container}:{tag}
602 elif [ "{port}" = "None" ]; then
603 image={repo}/{container}:{tag}
605 image={repo}:{port}/{container}:{tag}
607 sudo docker run --rm \
610 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
611 -e S3_DST_URL=s3://artifacts.opnfv.org/functest \
612 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \
613 -v /home/opnfv/functest/.boto:/root/.boto \
614 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
615 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
616 -e BUILD_TAG=$BUILD_TAG \
617 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
621 name: 'functest-{tag}-zip'
625 - functest-build_tag:
627 - functest-EXTERNAL_NETWORK:
628 EXTERNAL_NETWORK: public
629 - functest-VOLUME_DEVICE_NAME:
630 VOLUME_DEVICE_NAME: sdb
631 - functest-IMAGE_PROPERTIES:
632 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
635 <<: *functest-containers
640 name: 'functest-{tag}-zip'
643 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
644 - /home/opnfv/functest/images:/home/opnfv/functest/images
646 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
647 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
648 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
649 container: 'functest-healthcheck'
651 - 'functest-{tag}-zip'
654 name: 'functest-{tag}-daily'
655 project-type: multijob
661 - functest-build_tag:
663 - functest-EXTERNAL_NETWORK:
664 EXTERNAL_NETWORK: public
665 - functest-VOLUME_DEVICE_NAME:
666 VOLUME_DEVICE_NAME: sdb
667 - functest-IMAGE_PROPERTIES:
668 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
669 # PyYAML and yamllint differ here
670 # see https://github.com/yaml/pyyaml/issues/234
671 # yamllint disable rule:indentation
675 - ^functest-(pi-)*{tag}-(daily|docker|review)$
676 # yamllint enable rule:indentation
679 name: remove former images
681 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
683 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
685 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
687 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
689 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
691 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
694 name: pull containers
696 - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
698 - name: 'functest-opnfv-functest-smoke-{tag}-pull'
700 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
702 - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
704 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
706 - name: 'functest-opnfv-functest-vnf-{tag}-pull'
709 name: opnfv/functest-healthcheck:{tag}
711 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
713 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
715 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
717 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
719 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
721 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
723 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
725 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
727 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
729 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
731 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
733 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
735 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
738 name: opnfv/functest-smoke:{tag}
740 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
742 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
744 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
746 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
748 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
750 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
752 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
754 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
756 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
758 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
760 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
762 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
764 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
766 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
768 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
770 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
772 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
774 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
776 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
778 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
780 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
782 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
785 name: opnfv/functest-smoke-cntt:{tag}
787 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
789 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
791 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
793 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
795 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
797 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
799 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
801 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
804 name: opnfv/functest-benchmarking:{tag}
806 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
808 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
810 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
812 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
815 name: opnfv/functest-benchmarking-cntt:{tag}
817 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
819 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
822 name: opnfv/functest-vnf:{tag}
824 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
826 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
828 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
830 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
832 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
835 name: dump all campaign data
837 - name: 'functest-{tag}-zip'
841 name: 'functest-daily'
844 - 'functest-{tag}-daily'
856 regex: ^functest-[a-z0-9.]+-daily$
858 - functest-build-containers: &functest-build-containers
859 name: 'functest-build-containers'
860 <<: *functest-containers
863 build_args: '{build_args}'
867 name: functest-build-containers
871 if [ "{repo}" = "_" ]; then
872 image={container}:{tag}
873 elif [ "{port}" = "None" ]; then
874 image={repo}/{container}:{tag}
876 image={repo}:{port}/{container}:{tag}
879 if [ "{build_args}" != "None" ]; then
880 for i in $(echo {build_args} | tr -d '[]' |sed "s/, / /g" ); \
881 do build_args="--build-arg $i $build_args"; done
883 if [ "{ref_arg}" != "None" ]; then
884 build_args="$build_args --build-arg {ref_arg}={ref}"
887 if [ "{from}" != "None" ]; then
888 sed -i {from} Dockerfile
890 sudo docker build $build_args \
891 --pull=false --no-cache --force-rm=true \
898 url: 'https://gerrit.opnfv.org/gerrit/functest'
899 refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
903 - functest-dep: &functest-dep
904 name: 'functest-containers'
908 dependency: '{dependency}'
911 name: functest-pull-dep-images
915 if [ "_" = "_" ]; then
916 image=alpine:{dependency}
917 elif [ "None" = "None" ]; then
918 image=_/alpine:{dependency}
920 image=_:/alpine:{dependency}
922 sudo docker pull $image || true
925 name: functest-remove-dep-images
929 if [ "_" = "_" ]; then
930 image=alpine:{dependency}
931 elif [ "" = "None" ]; then
932 image=_/alpine:{dependency}
934 image=_:/alpine:{dependency}
936 sudo docker rmi $image || true
939 name: 'functest-{repo}-{tag}-dep-pull'
944 - functest-pull-dep-images:
948 name: 'functest-{repo}-{tag}-dep-pull'
951 - 'functest-{repo}-{tag}-dep-pull'
954 name: 'functest-{repo}-{tag}-dep-rmi'
959 - functest-remove-dep-images:
963 name: 'functest-{repo}-{tag}-dep-rmi'
966 - 'functest-{repo}-{tag}-dep-rmi'
973 sudo apt-get update && \
974 sudo DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y
975 sudo DEBIAN_FRONTEND=noninteractive \
976 apt-get install software-properties-common gpg -y
977 sudo add-apt-repository -y ppa:deadsnakes/ppa
978 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
980 python3.9 python3.9-dev python3.9-distutils \
981 python3.8 python3.8-dev python3.8-distutils \
982 python3.7 python3.7-dev python3.6 python3.6-dev \
983 python python-dev python3-pip enchant -y
984 sudo pip3 install tox tox-pip-version
989 name: 'functest-{tag}-tox'
994 - functest-patchset-created:
1004 <<: *functest-params
1006 - 'functest-{tag}-tox'
1009 name: 'functest-{repo}-{container}-{tag}-gate'
1015 ref: $GERRIT_REFSPEC
1017 - functest-build-containers:
1018 <<: *functest-build-containers
1019 ref: $GERRIT_REFSPEC
1020 build_args: '{build_args}'
1023 name: functest-opnfv-functest-core-{tag}-gate
1024 <<: *functest-params
1025 container: functest-core
1029 - 'functest-{repo}-{container}-{tag}-gate'
1032 name: functest-opnfv-functest-tempest-{tag}-gate
1033 <<: *functest-params
1034 container: functest-tempest
1036 path: docker/tempest
1039 - {'tag': 'wallaby'}
1044 - 'functest-{repo}-{container}-{tag}-gate'
1047 name: functest-opnfv-functest-healthcheck-{tag}-gate
1048 <<: *functest-params
1049 container: functest-healthcheck
1051 path: docker/healthcheck
1053 - 'functest-{repo}-{container}-{tag}-gate'
1056 name: functest-opnfv-functest-smoke-{tag}-gate
1057 <<: *functest-params
1058 container: functest-smoke
1062 - 'functest-{repo}-{container}-{tag}-gate'
1065 name: functest-opnfv-functest-benchmarking-{tag}-gate
1066 <<: *functest-params
1067 container: functest-benchmarking
1069 path: docker/benchmarking
1071 - 'functest-{repo}-{container}-{tag}-gate'
1074 name: functest-opnfv-functest-vnf-{tag}-gate
1075 <<: *functest-params
1076 container: functest-vnf
1080 - 'functest-{repo}-{container}-{tag}-gate'
1083 name: functest-opnfv-functest-smoke-cntt-{tag}-gate
1084 <<: *functest-params
1085 container: functest-smoke-cntt
1087 path: docker/smoke-cntt
1089 - 'functest-{repo}-{container}-{tag}-gate'
1092 name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate
1093 <<: *functest-params
1094 container: functest-benchmarking-cntt
1096 path: docker/benchmarking-cntt
1098 - 'functest-{repo}-{container}-{tag}-gate'
1101 name: functest-patchset-created
1105 - patchset-created-event
1106 - comment-added-contains-event:
1107 comment-contains-value: 'recheck'
1108 - comment-added-contains-event:
1109 comment-contains-value: 'reverify'
1111 - project-compare-type: 'ANT'
1112 project-pattern: 'functest'
1114 - branch-compare-type: 'ANT'
1115 branch-pattern: '**/{branch}'
1118 name: 'functest-{tag}-review'
1119 project-type: multijob
1121 - functest-patchset-created:
1126 - functest-build_tag:
1128 - functest-EXTERNAL_NETWORK:
1129 EXTERNAL_NETWORK: public
1130 - functest-VOLUME_DEVICE_NAME:
1131 VOLUME_DEVICE_NAME: sdb
1132 - functest-IMAGE_PROPERTIES:
1133 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
1134 # PyYAML and yamllint differ here
1135 # see https://github.com/yaml/pyyaml/issues/234
1136 # yamllint disable rule:indentation
1140 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1141 # yamllint enable rule:indentation
1144 name: remove former images
1146 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
1148 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
1150 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
1152 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
1154 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
1156 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
1159 name: remove dependency
1161 - name: 'functest-{repo}-{tag}-dep-rmi'
1164 name: pull dependency
1166 - name: 'functest-{repo}-{tag}-dep-pull'
1169 name: build opnfv/functest-core
1171 - name: 'functest-opnfv-functest-core-{tag}-gate'
1174 name: build opnfv/functest-tempest
1176 - name: 'functest-opnfv-functest-tempest-{tag}-gate'
1179 name: build containers
1181 - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1183 - name: 'functest-opnfv-functest-smoke-{tag}-gate'
1185 - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1187 - name: 'functest-opnfv-functest-vnf-{tag}-gate'
1190 name: build cntt containers
1192 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1194 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1197 name: opnfv/functest-healthcheck:{tag}
1199 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1201 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1203 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1205 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1207 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1209 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1211 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1213 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1215 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1217 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1219 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1221 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1223 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1226 name: opnfv/functest-smoke:{tag}
1228 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1230 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1232 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1234 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1236 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1238 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1240 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
1242 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1244 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1246 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1248 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1250 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1252 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1254 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
1256 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1258 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1260 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1262 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
1264 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
1266 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1268 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1270 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1273 name: opnfv/functest-smoke-cntt:{tag}
1275 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1277 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1279 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1281 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1283 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1285 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1287 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1289 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1292 name: opnfv/functest-benchmarking:{tag}
1294 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1296 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1298 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1300 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1303 name: opnfv/functest-benchmarking-cntt:{tag}
1305 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1307 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1310 name: opnfv/functest-vnf:{tag}
1312 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1314 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1316 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1318 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1320 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1324 name: 'functest-review'
1325 <<: *functest-params
1327 - 'functest-{tag}-review'
1330 name: functest-review
1339 regex: ^functest-[a-z0-9.]+-review$
1351 regex: ^functest-[a-z0-9.]+-tox$
1354 name: functest-push-containers
1358 if [ "{repo}" = "_" ]; then
1359 image={container}:{tag}
1360 elif [ "{port}" = "None" ]; then
1361 image={repo}/{container}:{tag}
1363 image={repo}:{port}/{container}:{tag}
1365 sudo docker push $image
1368 name: functest-commit
1371 cron: "*/30 * * * *"
1374 name: 'functest-{repo}-{container}-{tag}-build'
1382 - functest-build-containers:
1383 <<: *functest-build-containers
1385 build_args: '{build_args}'
1386 - functest-push-containers:
1387 <<: *functest-build-containers
1391 name: functest-opnfv-functest-core-{tag}-build
1392 <<: *functest-params
1393 container: functest-core
1397 - 'functest-{repo}-{container}-{tag}-build'
1400 name: functest-opnfv-functest-tempest-{tag}-build
1401 <<: *functest-params
1402 container: functest-tempest
1404 path: docker/tempest
1407 - {'tag': 'wallaby'}
1412 - 'functest-{repo}-{container}-{tag}-build'
1415 name: functest-opnfv-functest-healthcheck-{tag}-build
1416 <<: *functest-params
1417 container: functest-healthcheck
1419 path: docker/healthcheck
1421 - 'functest-{repo}-{container}-{tag}-build'
1424 name: functest-opnfv-functest-smoke-{tag}-build
1425 <<: *functest-params
1426 container: functest-smoke
1430 - 'functest-{repo}-{container}-{tag}-build'
1433 name: functest-opnfv-functest-benchmarking-{tag}-build
1434 <<: *functest-params
1435 container: functest-benchmarking
1437 path: docker/benchmarking
1439 - 'functest-{repo}-{container}-{tag}-build'
1442 name: functest-opnfv-functest-vnf-{tag}-build
1443 <<: *functest-params
1444 container: functest-vnf
1448 - 'functest-{repo}-{container}-{tag}-build'
1451 name: functest-opnfv-functest-smoke-cntt-{tag}-build
1452 <<: *functest-params
1453 container: functest-smoke-cntt
1455 path: docker/smoke-cntt
1457 - 'functest-{repo}-{container}-{tag}-build'
1460 name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
1461 <<: *functest-params
1462 container: functest-benchmarking-cntt
1464 path: docker/benchmarking-cntt
1466 - 'functest-{repo}-{container}-{tag}-build'
1469 name: 'functest-{tag}-docker'
1470 project-type: multijob
1479 # PyYAML and yamllint differ here
1480 # see https://github.com/yaml/pyyaml/issues/234
1481 # yamllint disable rule:indentation
1485 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1486 # yamllint enable rule:indentation
1489 name: remove dependency
1491 - name: 'functest-{repo}-{tag}-dep-rmi'
1494 name: pull dependency
1496 - name: 'functest-{repo}-{tag}-dep-pull'
1499 name: build opnfv/functest-core
1501 - name: 'functest-opnfv-functest-core-{tag}-build'
1504 name: build opnfv/functest-tempest
1506 - name: 'functest-opnfv-functest-tempest-{tag}-build'
1509 name: build containers
1511 - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1513 - name: 'functest-opnfv-functest-smoke-{tag}-build'
1515 - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1517 - name: 'functest-opnfv-functest-vnf-{tag}-build'
1520 name: build cntt containers
1522 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1524 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1528 name: functest-trivy
1531 sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive \
1532 apt-get install curl -y
1534 curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
1535 if [ "{repo}" = "_" ]; then
1536 image={container}:{tag}
1537 elif [ "{port}" = "None" ]; then
1538 image={repo}/{container}:{tag}
1540 image={repo}:{port}/{container}:{tag}
1542 ./trivy --exit-code 1 $image
1545 name: 'functest-{repo}-{container}-{tag}-trivy'
1553 <<: *functest-containers
1556 name: 'functest-opnfv-functest-core-trivy'
1557 <<: *functest-params
1558 container: 'functest-core'
1560 - 'functest-{repo}-{container}-{tag}-trivy'
1563 name: 'functest-opnfv-functest-tempest-trivy'
1564 <<: *functest-params
1565 container: 'functest-tempest'
1567 - 'functest-{repo}-{container}-{tag}-trivy'
1570 name: 'functest-opnfv-functest-healthcheck-trivy'
1571 <<: *functest-params
1572 container: 'functest-healthcheck'
1574 - 'functest-{repo}-{container}-{tag}-trivy'
1577 name: 'functest-opnfv-functest-smoke-trivy'
1578 <<: *functest-params
1579 container: 'functest-smoke'
1581 - 'functest-{repo}-{container}-{tag}-trivy'
1584 name: 'functest-opnfv-functest-benchmarking-trivy'
1585 <<: *functest-params
1586 container: 'functest-benchmarking'
1588 - 'functest-{repo}-{container}-{tag}-trivy'
1591 name: 'functest-opnfv-functest-vnf-trivy'
1592 <<: *functest-params
1593 container: 'functest-vnf'
1595 - 'functest-{repo}-{container}-{tag}-trivy'
1598 name: 'functest-opnfv-functest-smoke-cntt-trivy'
1599 <<: *functest-params
1600 container: 'functest-smoke-cntt'
1602 - 'functest-{repo}-{container}-{tag}-trivy'
1605 name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
1606 <<: *functest-params
1607 container: 'functest-benchmarking-cntt'
1609 - 'functest-{repo}-{container}-{tag}-trivy'
1613 <<: *functest-params
1615 - 'functest-{tag}-docker'
1618 name: functest-docker
1627 regex: ^functest-[a-z0-9.]+-docker$
1630 name: functest-trivy
1639 regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$