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.10 python3.10-dev python3.10-distutils \
1040 python3.9 python3.9-dev python3.9-distutils \
1041 python3.8 python3.8-dev python3.8-distutils \
1042 python3.7 python3.7-dev python3.6 python3.6-dev \
1043 python python-dev python3-pip enchant -y
1044 sudo pip3 install tox tox-pip-version
1049 name: 'functest-{tag}-tox'
1052 ref: $GERRIT_REFSPEC
1054 - functest-patchset-created:
1064 <<: *functest-params
1066 - 'functest-{tag}-tox'
1069 name: 'functest-{repo}-{container}-{tag}-gate'
1075 ref: $GERRIT_REFSPEC
1077 - functest-build-containers:
1078 <<: *functest-build-containers
1079 ref: $GERRIT_REFSPEC
1080 build_args: '{build_args}'
1083 name: functest-opnfv-functest-core-{tag}-gate
1084 <<: *functest-params
1085 container: functest-core
1089 - 'functest-{repo}-{container}-{tag}-gate'
1092 name: functest-opnfv-functest-tempest-{tag}-gate
1093 <<: *functest-params
1094 container: functest-tempest
1096 path: docker/tempest
1100 - {'tag': 'wallaby'}
1105 - 'functest-{repo}-{container}-{tag}-gate'
1108 name: functest-opnfv-functest-healthcheck-{tag}-gate
1109 <<: *functest-params
1110 container: functest-healthcheck
1112 path: docker/healthcheck
1114 - 'functest-{repo}-{container}-{tag}-gate'
1117 name: functest-opnfv-functest-smoke-{tag}-gate
1118 <<: *functest-params
1119 container: functest-smoke
1123 - 'functest-{repo}-{container}-{tag}-gate'
1126 name: functest-opnfv-functest-benchmarking-{tag}-gate
1127 <<: *functest-params
1128 container: functest-benchmarking
1130 path: docker/benchmarking
1132 - 'functest-{repo}-{container}-{tag}-gate'
1135 name: functest-opnfv-functest-vnf-{tag}-gate
1136 <<: *functest-params
1137 container: functest-vnf
1141 - 'functest-{repo}-{container}-{tag}-gate'
1144 name: functest-opnfv-functest-smoke-cntt-{tag}-gate
1145 <<: *functest-params
1146 container: functest-smoke-cntt
1148 path: docker/smoke-cntt
1150 - 'functest-{repo}-{container}-{tag}-gate'
1153 name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate
1154 <<: *functest-params
1155 container: functest-benchmarking-cntt
1157 path: docker/benchmarking-cntt
1159 - 'functest-{repo}-{container}-{tag}-gate'
1162 name: functest-patchset-created
1166 - patchset-created-event
1167 - comment-added-contains-event:
1168 comment-contains-value: 'recheck'
1169 - comment-added-contains-event:
1170 comment-contains-value: 'reverify'
1172 - project-compare-type: 'ANT'
1173 project-pattern: 'functest'
1175 - branch-compare-type: 'ANT'
1176 branch-pattern: '**/{branch}'
1179 name: 'functest-{tag}-review'
1180 project-type: multijob
1182 - functest-patchset-created:
1187 - functest-build_tag:
1189 - functest-EXTERNAL_NETWORK:
1190 EXTERNAL_NETWORK: public
1191 - functest-VOLUME_DEVICE_NAME:
1192 VOLUME_DEVICE_NAME: sdb
1193 - functest-IMAGE_PROPERTIES:
1194 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
1195 # PyYAML and yamllint differ here
1196 # see https://github.com/yaml/pyyaml/issues/234
1197 # yamllint disable rule:indentation
1201 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1202 # yamllint enable rule:indentation
1205 name: remove former images
1207 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
1209 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
1211 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
1213 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
1215 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
1217 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
1220 name: remove dependency
1222 - name: 'functest-{repo}-{tag}-dep-rmi'
1225 name: pull dependency
1227 - name: 'functest-{repo}-{tag}-dep-pull'
1230 name: build opnfv/functest-core
1232 - name: 'functest-opnfv-functest-core-{tag}-gate'
1235 name: build opnfv/functest-tempest
1237 - name: 'functest-opnfv-functest-tempest-{tag}-gate'
1240 name: build containers
1242 - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1244 - name: 'functest-opnfv-functest-smoke-{tag}-gate'
1246 - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1248 - name: 'functest-opnfv-functest-vnf-{tag}-gate'
1251 name: build cntt containers
1253 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1255 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1258 name: opnfv/functest-healthcheck:{tag}
1260 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1262 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1264 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1266 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1268 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1270 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1272 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1274 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1276 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1278 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1280 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1282 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1284 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1287 name: opnfv/functest-smoke:{tag}
1289 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1291 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1293 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1295 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1297 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1299 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1301 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
1303 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1305 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1307 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1309 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1311 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1313 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1315 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
1317 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1319 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1321 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1323 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
1325 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
1327 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1329 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1331 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1334 name: opnfv/functest-smoke-cntt:{tag}
1336 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1338 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1340 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1342 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1344 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1346 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1348 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1350 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1353 name: opnfv/functest-benchmarking:{tag}
1355 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1357 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1359 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1361 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1364 name: opnfv/functest-benchmarking-cntt:{tag}
1366 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1368 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1371 name: opnfv/functest-vnf:{tag}
1373 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1375 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1377 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1379 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1381 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1388 recipients: cedric.ollivier@orange.com
1391 name: 'functest-review'
1392 <<: *functest-params
1394 - 'functest-{tag}-review'
1397 name: functest-review
1406 regex: ^functest-[a-z0-9.]+-review$
1418 regex: ^functest-[a-z0-9.]+-tox$
1421 name: functest-push-containers
1425 if [ "{repo}" = "_" ]; then
1426 image={container}:{tag}
1427 elif [ "{port}" = "None" ]; then
1428 image={repo}/{container}:{tag}
1430 image={repo}:{port}/{container}:{tag}
1432 sudo docker push $image
1435 name: functest-commit
1438 cron: "*/30 * * * *"
1441 name: 'functest-{repo}-{container}-{tag}-build'
1449 - functest-build-containers:
1450 <<: *functest-build-containers
1452 build_args: '{build_args}'
1453 - functest-push-containers:
1454 <<: *functest-build-containers
1458 name: functest-opnfv-functest-core-{tag}-build
1459 <<: *functest-params
1460 container: functest-core
1464 - 'functest-{repo}-{container}-{tag}-build'
1467 name: functest-opnfv-functest-tempest-{tag}-build
1468 <<: *functest-params
1469 container: functest-tempest
1471 path: docker/tempest
1475 - {'tag': 'wallaby'}
1480 - 'functest-{repo}-{container}-{tag}-build'
1483 name: functest-opnfv-functest-healthcheck-{tag}-build
1484 <<: *functest-params
1485 container: functest-healthcheck
1487 path: docker/healthcheck
1489 - 'functest-{repo}-{container}-{tag}-build'
1492 name: functest-opnfv-functest-smoke-{tag}-build
1493 <<: *functest-params
1494 container: functest-smoke
1498 - 'functest-{repo}-{container}-{tag}-build'
1501 name: functest-opnfv-functest-benchmarking-{tag}-build
1502 <<: *functest-params
1503 container: functest-benchmarking
1505 path: docker/benchmarking
1507 - 'functest-{repo}-{container}-{tag}-build'
1510 name: functest-opnfv-functest-vnf-{tag}-build
1511 <<: *functest-params
1512 container: functest-vnf
1516 - 'functest-{repo}-{container}-{tag}-build'
1519 name: functest-opnfv-functest-smoke-cntt-{tag}-build
1520 <<: *functest-params
1521 container: functest-smoke-cntt
1523 path: docker/smoke-cntt
1525 - 'functest-{repo}-{container}-{tag}-build'
1528 name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
1529 <<: *functest-params
1530 container: functest-benchmarking-cntt
1532 path: docker/benchmarking-cntt
1534 - 'functest-{repo}-{container}-{tag}-build'
1537 name: 'functest-{tag}-docker'
1538 project-type: multijob
1547 # PyYAML and yamllint differ here
1548 # see https://github.com/yaml/pyyaml/issues/234
1549 # yamllint disable rule:indentation
1553 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1554 # yamllint enable rule:indentation
1557 name: remove dependency
1559 - name: 'functest-{repo}-{tag}-dep-rmi'
1562 name: pull dependency
1564 - name: 'functest-{repo}-{tag}-dep-pull'
1567 name: build opnfv/functest-core
1569 - name: 'functest-opnfv-functest-core-{tag}-build'
1572 name: build opnfv/functest-tempest
1574 - name: 'functest-opnfv-functest-tempest-{tag}-build'
1577 name: build containers
1579 - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1581 - name: 'functest-opnfv-functest-smoke-{tag}-build'
1583 - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1585 - name: 'functest-opnfv-functest-vnf-{tag}-build'
1588 name: build cntt containers
1590 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1592 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1599 recipients: cedric.ollivier@orange.com
1602 name: functest-trivy
1605 sudo apt-get -o DPkg::Lock::Timeout=300 update && \
1606 sudo DEBIAN_FRONTEND=noninteractive apt-get \
1607 -o DPkg::Lock::Timeout=300 install curl -y
1609 curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
1610 if [ "{repo}" = "_" ]; then
1611 image={container}:{tag}
1612 elif [ "{port}" = "None" ]; then
1613 image={repo}/{container}:{tag}
1615 image={repo}:{port}/{container}:{tag}
1617 ./trivy image --exit-code 1 $image
1620 name: 'functest-{repo}-{container}-{tag}-trivy'
1628 <<: *functest-containers
1634 recipients: cedric.ollivier@orange.com
1637 name: 'functest-opnfv-functest-core-trivy'
1638 <<: *functest-params
1639 container: 'functest-core'
1641 - 'functest-{repo}-{container}-{tag}-trivy'
1644 name: 'functest-opnfv-functest-tempest-trivy'
1645 <<: *functest-params
1646 container: 'functest-tempest'
1648 - 'functest-{repo}-{container}-{tag}-trivy'
1651 name: 'functest-opnfv-functest-healthcheck-trivy'
1652 <<: *functest-params
1653 container: 'functest-healthcheck'
1655 - 'functest-{repo}-{container}-{tag}-trivy'
1658 name: 'functest-opnfv-functest-smoke-trivy'
1659 <<: *functest-params
1660 container: 'functest-smoke'
1662 - 'functest-{repo}-{container}-{tag}-trivy'
1665 name: 'functest-opnfv-functest-benchmarking-trivy'
1666 <<: *functest-params
1667 container: 'functest-benchmarking'
1669 - 'functest-{repo}-{container}-{tag}-trivy'
1672 name: 'functest-opnfv-functest-vnf-trivy'
1673 <<: *functest-params
1674 container: 'functest-vnf'
1676 - 'functest-{repo}-{container}-{tag}-trivy'
1679 name: 'functest-opnfv-functest-smoke-cntt-trivy'
1680 <<: *functest-params
1681 container: 'functest-smoke-cntt'
1683 - 'functest-{repo}-{container}-{tag}-trivy'
1686 name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
1687 <<: *functest-params
1688 container: 'functest-benchmarking-cntt'
1690 - 'functest-{repo}-{container}-{tag}-trivy'
1693 name: functest-grype
1696 sudo apt-get -o DPkg::Lock::Timeout=300 update && \
1697 sudo DEBIAN_FRONTEND=noninteractive apt-get \
1698 -o DPkg::Lock::Timeout=300 install curl -y
1700 curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sudo sh -s -- -b .
1701 if [ "{repo}" = "_" ]; then
1702 image={container}:{tag}
1703 elif [ "{port}" = "None" ]; then
1704 image={repo}/{container}:{tag}
1706 image={repo}:{port}/{container}:{tag}
1711 name: 'functest-{repo}-{container}-{tag}-grype'
1719 <<: *functest-containers
1725 recipients: cedric.ollivier@orange.com
1728 name: 'functest-opnfv-functest-core-grype'
1729 <<: *functest-params
1730 container: 'functest-core'
1732 - 'functest-{repo}-{container}-{tag}-grype'
1735 name: 'functest-opnfv-functest-tempest-grype'
1736 <<: *functest-params
1737 container: 'functest-tempest'
1739 - 'functest-{repo}-{container}-{tag}-grype'
1742 name: 'functest-opnfv-functest-healthcheck-grype'
1743 <<: *functest-params
1744 container: 'functest-healthcheck'
1746 - 'functest-{repo}-{container}-{tag}-grype'
1749 name: 'functest-opnfv-functest-smoke-grype'
1750 <<: *functest-params
1751 container: 'functest-smoke'
1753 - 'functest-{repo}-{container}-{tag}-grype'
1756 name: 'functest-opnfv-functest-benchmarking-grype'
1757 <<: *functest-params
1758 container: 'functest-benchmarking'
1760 - 'functest-{repo}-{container}-{tag}-grype'
1763 name: 'functest-opnfv-functest-vnf-grype'
1764 <<: *functest-params
1765 container: 'functest-vnf'
1767 - 'functest-{repo}-{container}-{tag}-grype'
1770 name: 'functest-opnfv-functest-smoke-cntt-grype'
1771 <<: *functest-params
1772 container: 'functest-smoke-cntt'
1774 - 'functest-{repo}-{container}-{tag}-grype'
1777 name: 'functest-opnfv-functest-benchmarking-cntt-grype'
1778 <<: *functest-params
1779 container: 'functest-benchmarking-cntt'
1781 - 'functest-{repo}-{container}-{tag}-grype'
1785 <<: *functest-params
1787 - 'functest-{tag}-docker'
1790 name: functest-docker
1799 regex: ^functest-[a-z0-9.]+-docker$
1802 name: functest-trivy
1811 regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$
1814 name: functest-grype
1823 regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-grype$