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.83
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}'
105 published_ports: '{published_ports}'
106 DASHBOARD_URL: '{DASHBOARD_URL}'
109 name: functest-pull-containers
113 if [ "{repo}" = "_" ]; then
114 image={container}:{tag}
115 elif [ "{port}" = "None" ]; then
116 image={repo}/{container}:{tag}
118 image={repo}:{port}/{container}:{tag}
120 sudo docker pull $image
123 name: functest-run-containers
128 if [ "{volumes}" != "None" ]; then
129 for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \
130 do volumes="-v $i $volumes"; done
133 if [ "{env}" != "None" ]; then
134 for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \
135 do env="-e $i $env"; done
138 if [ "{published_ports}" != "None" ]; then
139 for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \
140 do published_ports="-p $i $published_ports"; done
142 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
143 if [ "{repo}" = "_" ]; then
144 image={container}:{tag}
145 elif [ "{port}" = "None" ]; then
146 image={repo}/{container}:{tag}
148 image={repo}:{port}/{container}:{tag}
150 sudo mkdir -p $WORKSPACE/results
151 sudo chown {uid}:{gid} $WORKSPACE/results
152 sudo docker run --rm \
153 --privileged={privileged} \
154 --network={network} \
158 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
159 -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
160 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
161 -v /home/opnfv/functest/.boto:/etc/boto.cfg \
162 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
163 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
164 -e NODE_NAME=$slave \
165 -e BUILD_TAG=$BUILD_TAG \
166 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
167 -e DASHBOARD_URL={DASHBOARD_URL} \
168 $image run_tests -t {test} -p -r
171 name: functest-remove-images
175 if [ "{repo}" = "_" ]; then
176 image={container}:{tag}
177 elif [ "{port}" = "None" ]; then
178 image={repo}/{container}:{tag}
180 image={repo}:{port}/{container}:{tag}
182 sudo docker rmi $image || true
185 name: 'functest-{repo}-{container}-{tag}-pull'
190 - functest-pull-containers:
191 <<: *functest-containers
194 name: 'functest-opnfv-functest-healthcheck-pull'
196 container: 'functest-healthcheck'
198 - 'functest-{repo}-{container}-{tag}-pull'
201 name: 'functest-opnfv-functest-smoke-pull'
203 container: 'functest-smoke'
205 - 'functest-{repo}-{container}-{tag}-pull'
208 name: 'functest-opnfv-functest-smoke-cntt-pull'
210 container: 'functest-smoke-cntt'
212 - 'functest-{repo}-{container}-{tag}-pull'
215 name: 'functest-opnfv-functest-benchmarking-pull'
217 container: 'functest-benchmarking'
219 - 'functest-{repo}-{container}-{tag}-pull'
222 name: 'functest-opnfv-functest-benchmarking-cntt-pull'
224 container: 'functest-benchmarking-cntt'
226 - 'functest-{repo}-{container}-{tag}-pull'
229 name: 'functest-opnfv-functest-vnf-pull'
231 container: 'functest-vnf'
233 - 'functest-{repo}-{container}-{tag}-pull'
236 name: 'functest-{repo}-{container}-{tag}-rmi'
241 - functest-remove-images:
242 <<: *functest-containers
245 name: 'functest-opnfv-functest-healthcheck-rmi'
247 container: 'functest-healthcheck'
249 - 'functest-{repo}-{container}-{tag}-rmi'
252 name: 'functest-opnfv-functest-smoke-rmi'
254 container: 'functest-smoke'
256 - 'functest-{repo}-{container}-{tag}-rmi'
259 name: 'functest-opnfv-functest-smoke-cntt-rmi'
261 container: 'functest-smoke-cntt'
263 - 'functest-{repo}-{container}-{tag}-rmi'
266 name: 'functest-opnfv-functest-benchmarking-rmi'
268 container: 'functest-benchmarking'
270 - 'functest-{repo}-{container}-{tag}-rmi'
273 name: 'functest-opnfv-functest-benchmarking-cntt-rmi'
275 container: 'functest-benchmarking-cntt'
277 - 'functest-{repo}-{container}-{tag}-rmi'
280 name: 'functest-opnfv-functest-vnf-rmi'
282 container: 'functest-vnf'
284 - 'functest-{repo}-{container}-{tag}-rmi'
287 name: 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
291 - functest-build_tag:
293 - functest-EXTERNAL_NETWORK:
294 EXTERNAL_NETWORK: public
295 - functest-VOLUME_DEVICE_NAME:
296 VOLUME_DEVICE_NAME: sdb
297 - functest-IMAGE_PROPERTIES:
298 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
300 - functest-run-containers:
301 <<: *functest-run-containers
304 name: 'functest-opnfv-functest-healthcheck'
307 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
308 - /home/opnfv/functest/images:/home/opnfv/functest/images
310 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
311 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
312 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
314 container: 'functest-healthcheck'
334 - 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
337 name: 'functest-opnfv-functest-smoke-{tag}-{test}-run'
341 - functest-build_tag:
343 - functest-EXTERNAL_NETWORK:
344 EXTERNAL_NETWORK: public
345 - functest-VOLUME_DEVICE_NAME:
346 VOLUME_DEVICE_NAME: sdb
347 - functest-IMAGE_PROPERTIES:
348 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
350 - functest-run-containers:
351 <<: *functest-run-containers
354 name: 'functest-opnfv-functest-smoke'
357 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
358 - /home/opnfv/functest/images:/home/opnfv/functest/images
360 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
361 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
362 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
364 container: 'functest-smoke'
394 test: refstack_defcore
396 test: networking-bgpvpn
402 test: refstack_defcore
404 test: networking-bgpvpn
410 test: refstack_defcore
412 test: networking-bgpvpn
418 test: refstack_defcore
420 test: networking-bgpvpn
426 test: refstack_defcore
428 test: networking-bgpvpn
438 test: refstack_defcore
440 test: networking-bgpvpn
452 - 'functest-opnfv-functest-smoke-{tag}-{test}-run'
455 name: 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
459 - functest-build_tag:
461 - functest-EXTERNAL_NETWORK:
462 EXTERNAL_NETWORK: public
463 - functest-VOLUME_DEVICE_NAME:
464 VOLUME_DEVICE_NAME: sdb
465 - functest-IMAGE_PROPERTIES:
466 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
468 - functest-run-containers:
469 <<: *functest-run-containers
472 name: 'functest-opnfv-functest-smoke-cntt'
475 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
476 - /home/opnfv/functest/images:/home/opnfv/functest/images
478 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
479 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
480 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
482 container: 'functest-smoke-cntt'
484 - tempest_neutron_cntt
485 - tempest_cinder_cntt
486 - tempest_keystone_cntt
490 - tempest_scenario_cntt
497 - 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
500 name: 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
504 - functest-build_tag:
506 - functest-EXTERNAL_NETWORK:
507 EXTERNAL_NETWORK: public
508 - functest-VOLUME_DEVICE_NAME:
509 VOLUME_DEVICE_NAME: sdb
510 - functest-IMAGE_PROPERTIES:
511 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
513 - functest-run-containers:
514 <<: *functest-run-containers
517 name: 'functest-opnfv-functest-benchmarking'
520 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
521 - /home/opnfv/functest/images:/home/opnfv/functest/images
523 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
524 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
525 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
527 container: 'functest-benchmarking'
538 - 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
541 name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
545 - functest-build_tag:
547 - functest-EXTERNAL_NETWORK:
548 EXTERNAL_NETWORK: public
549 - functest-VOLUME_DEVICE_NAME:
550 VOLUME_DEVICE_NAME: sdb
551 - functest-IMAGE_PROPERTIES:
552 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
554 - functest-run-containers:
555 <<: *functest-run-containers
558 name: 'functest-opnfv-functest-benchmarking-cntt'
561 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
562 - /home/opnfv/functest/images:/home/opnfv/functest/images
564 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
565 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
566 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
568 container: 'functest-benchmarking-cntt'
577 - 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
580 name: 'functest-opnfv-functest-vnf-{tag}-{test}-run'
584 - functest-build_tag:
586 - functest-EXTERNAL_NETWORK:
587 EXTERNAL_NETWORK: public
588 - functest-VOLUME_DEVICE_NAME:
589 VOLUME_DEVICE_NAME: sdb
590 - functest-IMAGE_PROPERTIES:
591 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
593 - functest-run-containers:
594 <<: *functest-run-containers
597 name: 'functest-opnfv-functest-vnf'
600 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
601 - /home/opnfv/functest/images:/home/opnfv/functest/images
603 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
604 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
605 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
607 container: 'functest-vnf'
619 - 'functest-opnfv-functest-vnf-{tag}-{test}-run'
627 if [ "{volumes}" != "None" ]; then
628 for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \
629 do volumes="-v $i $volumes"; done
632 if [ "{env}" != "None" ]; then
633 for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \
634 do env="-e $i $env"; done
637 if [ "{published_ports}" != "None" ]; then
638 for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \
639 do published_ports="-p $i $published_ports"; done
641 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
642 if [ "{repo}" = "_" ]; then
643 image={container}:{tag}
644 elif [ "{port}" = "None" ]; then
645 image={repo}/{container}:{tag}
647 image={repo}:{port}/{container}:{tag}
649 sudo mkdir -p $WORKSPACE/results
650 sudo chown {uid}:{gid} $WORKSPACE/results
651 sudo docker run --rm \
655 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
656 -e S3_DST_URL=s3://artifacts.opnfv.org/functest \
657 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \
658 -v /home/opnfv/functest/.boto:/etc/boto.cfg \
659 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
660 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
661 -e BUILD_TAG=$BUILD_TAG \
662 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
666 name: 'functest-{tag}-zip'
670 - functest-build_tag:
672 - functest-EXTERNAL_NETWORK:
673 EXTERNAL_NETWORK: public
674 - functest-VOLUME_DEVICE_NAME:
675 VOLUME_DEVICE_NAME: sdb
676 - functest-IMAGE_PROPERTIES:
677 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
680 <<: *functest-containers
685 published_ports: '{published_ports}'
688 name: 'functest-{tag}-zip'
691 - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file
692 - /home/opnfv/functest/images:/home/opnfv/functest/images
694 - EXTERNAL_NETWORK=$EXTERNAL_NETWORK
695 - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME
696 - IMAGE_PROPERTIES=$IMAGE_PROPERTIES
698 container: 'functest-healthcheck'
702 - 'functest-{tag}-zip'
705 name: 'functest-{tag}-daily'
706 project-type: multijob
712 - functest-build_tag:
714 - functest-EXTERNAL_NETWORK:
715 EXTERNAL_NETWORK: public
716 - functest-VOLUME_DEVICE_NAME:
717 VOLUME_DEVICE_NAME: sdb
718 - functest-IMAGE_PROPERTIES:
719 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
720 # PyYAML and yamllint differ here
721 # see https://github.com/yaml/pyyaml/issues/234
722 # yamllint disable rule:indentation
726 - ^functest-(pi-)*{tag}-(daily|docker|review)$
727 # yamllint enable rule:indentation
730 name: remove former images
732 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
734 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
736 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
738 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
740 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
742 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
745 name: pull containers
747 - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
749 - name: 'functest-opnfv-functest-smoke-{tag}-pull'
751 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
753 - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
755 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
757 - name: 'functest-opnfv-functest-vnf-{tag}-pull'
760 name: opnfv/functest-healthcheck:{tag}
762 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
764 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
766 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
768 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
770 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
772 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
774 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
776 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
778 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
780 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
782 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
784 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
786 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
789 name: opnfv/functest-smoke:{tag}
791 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
793 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
795 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
797 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
799 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
801 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
803 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
805 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
807 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
809 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
811 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
813 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
815 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
817 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
819 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
821 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
823 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
825 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
827 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
829 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
831 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
833 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
836 name: opnfv/functest-smoke-cntt:{tag}
838 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
840 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
842 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
844 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
846 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
848 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
850 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
852 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
855 name: opnfv/functest-benchmarking:{tag}
857 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
859 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
861 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
863 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
866 name: opnfv/functest-benchmarking-cntt:{tag}
868 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
870 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
873 name: opnfv/functest-vnf:{tag}
875 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
877 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
879 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
881 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
883 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
886 name: dump all campaign data
888 - name: 'functest-{tag}-zip'
895 recipients: cedric.ollivier@orange.com
898 name: 'functest-daily'
901 - 'functest-{tag}-daily'
913 regex: ^functest-[a-z0-9.]+-daily$
915 - functest-build-containers: &functest-build-containers
916 name: 'functest-build-containers'
917 <<: *functest-containers
920 build_args: '{build_args}'
924 name: functest-build-containers
928 if [ "{repo}" = "_" ]; then
929 image={container}:{tag}
930 elif [ "{port}" = "None" ]; then
931 image={repo}/{container}:{tag}
933 image={repo}:{port}/{container}:{tag}
936 if [ "{build_args}" != "None" ]; then
937 for i in $(echo {build_args} | tr -d '[]' |sed "s/, / /g" ); \
938 do build_args="--build-arg $i $build_args"; done
940 if [ "{ref_arg}" != "None" ]; then
941 build_args="$build_args --build-arg {ref_arg}={ref}"
944 if [ "{from}" != "None" ]; then
945 sed -i {from} Dockerfile
947 sudo docker build $build_args \
948 --pull=false --no-cache --force-rm=true \
955 url: 'https://gerrit.opnfv.org/gerrit/functest'
956 refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
960 - functest-dep: &functest-dep
961 name: 'functest-containers'
965 dependency: '{dependency}'
968 name: functest-pull-dep-images
972 if [ "_" = "_" ]; then
973 image=alpine:{dependency}
974 elif [ "None" = "None" ]; then
975 image=_/alpine:{dependency}
977 image=_:/alpine:{dependency}
979 sudo docker pull $image || true
982 name: functest-remove-dep-images
986 if [ "_" = "_" ]; then
987 image=alpine:{dependency}
988 elif [ "" = "None" ]; then
989 image=_/alpine:{dependency}
991 image=_:/alpine:{dependency}
993 sudo docker rmi $image || true
996 name: 'functest-{repo}-{tag}-dep-pull'
1001 - functest-pull-dep-images:
1005 name: 'functest-{repo}-{tag}-dep-pull'
1006 <<: *functest-params
1008 - 'functest-{repo}-{tag}-dep-pull'
1011 name: 'functest-{repo}-{tag}-dep-rmi'
1016 - functest-remove-dep-images:
1020 name: 'functest-{repo}-{tag}-dep-rmi'
1021 <<: *functest-params
1023 - 'functest-{repo}-{tag}-dep-rmi'
1030 sudo apt-get -o DPkg::Lock::Timeout=300 update && \
1031 sudo DEBIAN_FRONTEND=noninteractive apt-get \
1032 -o DPkg::Lock::Timeout=300 dist-upgrade -y
1033 sudo DEBIAN_FRONTEND=noninteractive \
1034 apt-get -o DPkg::Lock::Timeout=300 install software-properties-common gpg -y
1035 sudo add-apt-repository -y ppa:deadsnakes/ppa
1036 sudo apt-get -o DPkg::Lock::Timeout=300 update && \
1037 sudo DEBIAN_FRONTEND=noninteractive apt-get \
1038 -o DPkg::Lock::Timeout=300 install \
1039 python3.9 python3.9-dev python3.9-distutils \
1040 python3.8 python3.8-dev python3.8-distutils \
1041 python3.7 python3.7-dev python3.6 python3.6-dev \
1042 python python-dev python3-pip enchant -y
1043 sudo pip3 install tox tox-pip-version
1048 name: 'functest-{tag}-tox'
1051 ref: $GERRIT_REFSPEC
1053 - functest-patchset-created:
1063 <<: *functest-params
1065 - 'functest-{tag}-tox'
1068 name: 'functest-{repo}-{container}-{tag}-gate'
1074 ref: $GERRIT_REFSPEC
1076 - functest-build-containers:
1077 <<: *functest-build-containers
1078 ref: $GERRIT_REFSPEC
1079 build_args: '{build_args}'
1082 name: functest-opnfv-functest-core-{tag}-gate
1083 <<: *functest-params
1084 container: functest-core
1088 - 'functest-{repo}-{container}-{tag}-gate'
1091 name: functest-opnfv-functest-tempest-{tag}-gate
1092 <<: *functest-params
1093 container: functest-tempest
1095 path: docker/tempest
1099 - {'tag': 'wallaby'}
1104 - 'functest-{repo}-{container}-{tag}-gate'
1107 name: functest-opnfv-functest-healthcheck-{tag}-gate
1108 <<: *functest-params
1109 container: functest-healthcheck
1111 path: docker/healthcheck
1113 - 'functest-{repo}-{container}-{tag}-gate'
1116 name: functest-opnfv-functest-smoke-{tag}-gate
1117 <<: *functest-params
1118 container: functest-smoke
1122 - 'functest-{repo}-{container}-{tag}-gate'
1125 name: functest-opnfv-functest-benchmarking-{tag}-gate
1126 <<: *functest-params
1127 container: functest-benchmarking
1129 path: docker/benchmarking
1131 - 'functest-{repo}-{container}-{tag}-gate'
1134 name: functest-opnfv-functest-vnf-{tag}-gate
1135 <<: *functest-params
1136 container: functest-vnf
1140 - 'functest-{repo}-{container}-{tag}-gate'
1143 name: functest-opnfv-functest-smoke-cntt-{tag}-gate
1144 <<: *functest-params
1145 container: functest-smoke-cntt
1147 path: docker/smoke-cntt
1149 - 'functest-{repo}-{container}-{tag}-gate'
1152 name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate
1153 <<: *functest-params
1154 container: functest-benchmarking-cntt
1156 path: docker/benchmarking-cntt
1158 - 'functest-{repo}-{container}-{tag}-gate'
1161 name: functest-patchset-created
1165 - patchset-created-event
1166 - comment-added-contains-event:
1167 comment-contains-value: 'recheck'
1168 - comment-added-contains-event:
1169 comment-contains-value: 'reverify'
1171 - project-compare-type: 'ANT'
1172 project-pattern: 'functest'
1174 - branch-compare-type: 'ANT'
1175 branch-pattern: '**/{branch}'
1178 name: 'functest-{tag}-review'
1179 project-type: multijob
1181 - functest-patchset-created:
1186 - functest-build_tag:
1188 - functest-EXTERNAL_NETWORK:
1189 EXTERNAL_NETWORK: public
1190 - functest-VOLUME_DEVICE_NAME:
1191 VOLUME_DEVICE_NAME: sdb
1192 - functest-IMAGE_PROPERTIES:
1193 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
1194 # PyYAML and yamllint differ here
1195 # see https://github.com/yaml/pyyaml/issues/234
1196 # yamllint disable rule:indentation
1200 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1201 # yamllint enable rule:indentation
1204 name: remove former images
1206 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
1208 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
1210 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
1212 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
1214 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
1216 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
1219 name: remove dependency
1221 - name: 'functest-{repo}-{tag}-dep-rmi'
1224 name: pull dependency
1226 - name: 'functest-{repo}-{tag}-dep-pull'
1229 name: build opnfv/functest-core
1231 - name: 'functest-opnfv-functest-core-{tag}-gate'
1234 name: build opnfv/functest-tempest
1236 - name: 'functest-opnfv-functest-tempest-{tag}-gate'
1239 name: build containers
1241 - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1243 - name: 'functest-opnfv-functest-smoke-{tag}-gate'
1245 - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1247 - name: 'functest-opnfv-functest-vnf-{tag}-gate'
1250 name: build cntt containers
1252 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1254 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1257 name: opnfv/functest-healthcheck:{tag}
1259 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1261 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1263 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1265 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1267 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1269 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1271 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1273 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1275 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1277 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1279 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1281 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1283 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1286 name: opnfv/functest-smoke:{tag}
1288 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1290 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1292 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1294 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1296 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1298 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1300 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
1302 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1304 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1306 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1308 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1310 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1312 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1314 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
1316 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1318 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1320 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1322 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
1324 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
1326 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1328 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1330 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1333 name: opnfv/functest-smoke-cntt:{tag}
1335 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1337 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1339 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1341 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1343 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1345 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1347 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1349 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1352 name: opnfv/functest-benchmarking:{tag}
1354 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1356 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1358 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1360 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1363 name: opnfv/functest-benchmarking-cntt:{tag}
1365 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1367 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1370 name: opnfv/functest-vnf:{tag}
1372 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1374 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1376 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1378 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1380 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1387 recipients: cedric.ollivier@orange.com
1390 name: 'functest-review'
1391 <<: *functest-params
1393 - 'functest-{tag}-review'
1396 name: functest-review
1405 regex: ^functest-[a-z0-9.]+-review$
1417 regex: ^functest-[a-z0-9.]+-tox$
1420 name: functest-push-containers
1424 if [ "{repo}" = "_" ]; then
1425 image={container}:{tag}
1426 elif [ "{port}" = "None" ]; then
1427 image={repo}/{container}:{tag}
1429 image={repo}:{port}/{container}:{tag}
1431 sudo docker push $image
1434 name: functest-commit
1437 cron: "*/30 * * * *"
1440 name: 'functest-{repo}-{container}-{tag}-build'
1448 - functest-build-containers:
1449 <<: *functest-build-containers
1451 build_args: '{build_args}'
1452 - functest-push-containers:
1453 <<: *functest-build-containers
1457 name: functest-opnfv-functest-core-{tag}-build
1458 <<: *functest-params
1459 container: functest-core
1463 - 'functest-{repo}-{container}-{tag}-build'
1466 name: functest-opnfv-functest-tempest-{tag}-build
1467 <<: *functest-params
1468 container: functest-tempest
1470 path: docker/tempest
1474 - {'tag': 'wallaby'}
1479 - 'functest-{repo}-{container}-{tag}-build'
1482 name: functest-opnfv-functest-healthcheck-{tag}-build
1483 <<: *functest-params
1484 container: functest-healthcheck
1486 path: docker/healthcheck
1488 - 'functest-{repo}-{container}-{tag}-build'
1491 name: functest-opnfv-functest-smoke-{tag}-build
1492 <<: *functest-params
1493 container: functest-smoke
1497 - 'functest-{repo}-{container}-{tag}-build'
1500 name: functest-opnfv-functest-benchmarking-{tag}-build
1501 <<: *functest-params
1502 container: functest-benchmarking
1504 path: docker/benchmarking
1506 - 'functest-{repo}-{container}-{tag}-build'
1509 name: functest-opnfv-functest-vnf-{tag}-build
1510 <<: *functest-params
1511 container: functest-vnf
1515 - 'functest-{repo}-{container}-{tag}-build'
1518 name: functest-opnfv-functest-smoke-cntt-{tag}-build
1519 <<: *functest-params
1520 container: functest-smoke-cntt
1522 path: docker/smoke-cntt
1524 - 'functest-{repo}-{container}-{tag}-build'
1527 name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
1528 <<: *functest-params
1529 container: functest-benchmarking-cntt
1531 path: docker/benchmarking-cntt
1533 - 'functest-{repo}-{container}-{tag}-build'
1536 name: 'functest-{tag}-docker'
1537 project-type: multijob
1546 # PyYAML and yamllint differ here
1547 # see https://github.com/yaml/pyyaml/issues/234
1548 # yamllint disable rule:indentation
1552 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1553 # yamllint enable rule:indentation
1556 name: remove dependency
1558 - name: 'functest-{repo}-{tag}-dep-rmi'
1561 name: pull dependency
1563 - name: 'functest-{repo}-{tag}-dep-pull'
1566 name: build opnfv/functest-core
1568 - name: 'functest-opnfv-functest-core-{tag}-build'
1571 name: build opnfv/functest-tempest
1573 - name: 'functest-opnfv-functest-tempest-{tag}-build'
1576 name: build containers
1578 - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1580 - name: 'functest-opnfv-functest-smoke-{tag}-build'
1582 - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1584 - name: 'functest-opnfv-functest-vnf-{tag}-build'
1587 name: build cntt containers
1589 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1591 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1598 recipients: cedric.ollivier@orange.com
1601 name: functest-trivy
1604 sudo apt-get -o DPkg::Lock::Timeout=300 update && \
1605 sudo DEBIAN_FRONTEND=noninteractive apt-get \
1606 -o DPkg::Lock::Timeout=300 install curl -y
1608 curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
1609 if [ "{repo}" = "_" ]; then
1610 image={container}:{tag}
1611 elif [ "{port}" = "None" ]; then
1612 image={repo}/{container}:{tag}
1614 image={repo}:{port}/{container}:{tag}
1616 ./trivy image --exit-code 1 $image
1619 name: 'functest-{repo}-{container}-{tag}-trivy'
1627 <<: *functest-containers
1633 recipients: cedric.ollivier@orange.com
1636 name: 'functest-opnfv-functest-core-trivy'
1637 <<: *functest-params
1638 container: 'functest-core'
1640 - 'functest-{repo}-{container}-{tag}-trivy'
1643 name: 'functest-opnfv-functest-tempest-trivy'
1644 <<: *functest-params
1645 container: 'functest-tempest'
1647 - 'functest-{repo}-{container}-{tag}-trivy'
1650 name: 'functest-opnfv-functest-healthcheck-trivy'
1651 <<: *functest-params
1652 container: 'functest-healthcheck'
1654 - 'functest-{repo}-{container}-{tag}-trivy'
1657 name: 'functest-opnfv-functest-smoke-trivy'
1658 <<: *functest-params
1659 container: 'functest-smoke'
1661 - 'functest-{repo}-{container}-{tag}-trivy'
1664 name: 'functest-opnfv-functest-benchmarking-trivy'
1665 <<: *functest-params
1666 container: 'functest-benchmarking'
1668 - 'functest-{repo}-{container}-{tag}-trivy'
1671 name: 'functest-opnfv-functest-vnf-trivy'
1672 <<: *functest-params
1673 container: 'functest-vnf'
1675 - 'functest-{repo}-{container}-{tag}-trivy'
1678 name: 'functest-opnfv-functest-smoke-cntt-trivy'
1679 <<: *functest-params
1680 container: 'functest-smoke-cntt'
1682 - 'functest-{repo}-{container}-{tag}-trivy'
1685 name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
1686 <<: *functest-params
1687 container: 'functest-benchmarking-cntt'
1689 - 'functest-{repo}-{container}-{tag}-trivy'
1692 name: functest-grype
1695 sudo apt-get -o DPkg::Lock::Timeout=300 update && \
1696 sudo DEBIAN_FRONTEND=noninteractive apt-get \
1697 -o DPkg::Lock::Timeout=300 install curl -y
1699 curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sudo sh -s -- -b .
1700 if [ "{repo}" = "_" ]; then
1701 image={container}:{tag}
1702 elif [ "{port}" = "None" ]; then
1703 image={repo}/{container}:{tag}
1705 image={repo}:{port}/{container}:{tag}
1710 name: 'functest-{repo}-{container}-{tag}-grype'
1718 <<: *functest-containers
1724 recipients: cedric.ollivier@orange.com
1727 name: 'functest-opnfv-functest-core-grype'
1728 <<: *functest-params
1729 container: 'functest-core'
1731 - 'functest-{repo}-{container}-{tag}-grype'
1734 name: 'functest-opnfv-functest-tempest-grype'
1735 <<: *functest-params
1736 container: 'functest-tempest'
1738 - 'functest-{repo}-{container}-{tag}-grype'
1741 name: 'functest-opnfv-functest-healthcheck-grype'
1742 <<: *functest-params
1743 container: 'functest-healthcheck'
1745 - 'functest-{repo}-{container}-{tag}-grype'
1748 name: 'functest-opnfv-functest-smoke-grype'
1749 <<: *functest-params
1750 container: 'functest-smoke'
1752 - 'functest-{repo}-{container}-{tag}-grype'
1755 name: 'functest-opnfv-functest-benchmarking-grype'
1756 <<: *functest-params
1757 container: 'functest-benchmarking'
1759 - 'functest-{repo}-{container}-{tag}-grype'
1762 name: 'functest-opnfv-functest-vnf-grype'
1763 <<: *functest-params
1764 container: 'functest-vnf'
1766 - 'functest-{repo}-{container}-{tag}-grype'
1769 name: 'functest-opnfv-functest-smoke-cntt-grype'
1770 <<: *functest-params
1771 container: 'functest-smoke-cntt'
1773 - 'functest-{repo}-{container}-{tag}-grype'
1776 name: 'functest-opnfv-functest-benchmarking-cntt-grype'
1777 <<: *functest-params
1778 container: 'functest-benchmarking-cntt'
1780 - 'functest-{repo}-{container}-{tag}-grype'
1784 <<: *functest-params
1786 - 'functest-{tag}-docker'
1789 name: functest-docker
1798 regex: ^functest-[a-z0-9.]+-docker$
1801 name: functest-trivy
1810 regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$
1813 name: functest-grype
1822 regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-grype$