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 libxml2-dev libxslt-dev libffi-dev libjpeg-dev \
1040 python3.10 python3.10-dev python3.10-distutils \
1041 python3.9 python3.9-dev python3.9-distutils \
1042 python3.8 python3.8-dev python3.8-distutils \
1043 python3.7 python3.7-dev python3.6 python3.6-dev \
1044 python python-dev python3-pip enchant -y
1045 sudo pip3 install tox tox-pip-version
1050 name: 'functest-{tag}-tox'
1053 ref: $GERRIT_REFSPEC
1055 - functest-patchset-created:
1065 <<: *functest-params
1067 - 'functest-{tag}-tox'
1070 name: 'functest-{repo}-{container}-{tag}-gate'
1076 ref: $GERRIT_REFSPEC
1078 - functest-build-containers:
1079 <<: *functest-build-containers
1080 ref: $GERRIT_REFSPEC
1081 build_args: '{build_args}'
1084 name: functest-opnfv-functest-core-{tag}-gate
1085 <<: *functest-params
1086 container: functest-core
1090 - 'functest-{repo}-{container}-{tag}-gate'
1093 name: functest-opnfv-functest-tempest-{tag}-gate
1094 <<: *functest-params
1095 container: functest-tempest
1097 path: docker/tempest
1101 - {'tag': 'wallaby'}
1106 - 'functest-{repo}-{container}-{tag}-gate'
1109 name: functest-opnfv-functest-healthcheck-{tag}-gate
1110 <<: *functest-params
1111 container: functest-healthcheck
1113 path: docker/healthcheck
1115 - 'functest-{repo}-{container}-{tag}-gate'
1118 name: functest-opnfv-functest-smoke-{tag}-gate
1119 <<: *functest-params
1120 container: functest-smoke
1124 - 'functest-{repo}-{container}-{tag}-gate'
1127 name: functest-opnfv-functest-benchmarking-{tag}-gate
1128 <<: *functest-params
1129 container: functest-benchmarking
1131 path: docker/benchmarking
1133 - 'functest-{repo}-{container}-{tag}-gate'
1136 name: functest-opnfv-functest-vnf-{tag}-gate
1137 <<: *functest-params
1138 container: functest-vnf
1142 - 'functest-{repo}-{container}-{tag}-gate'
1145 name: functest-opnfv-functest-smoke-cntt-{tag}-gate
1146 <<: *functest-params
1147 container: functest-smoke-cntt
1149 path: docker/smoke-cntt
1151 - 'functest-{repo}-{container}-{tag}-gate'
1154 name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate
1155 <<: *functest-params
1156 container: functest-benchmarking-cntt
1158 path: docker/benchmarking-cntt
1160 - 'functest-{repo}-{container}-{tag}-gate'
1163 name: functest-patchset-created
1167 - patchset-created-event
1168 - comment-added-contains-event:
1169 comment-contains-value: 'recheck'
1170 - comment-added-contains-event:
1171 comment-contains-value: 'reverify'
1173 - project-compare-type: 'ANT'
1174 project-pattern: 'functest'
1176 - branch-compare-type: 'ANT'
1177 branch-pattern: '**/{branch}'
1180 name: 'functest-{tag}-review'
1181 project-type: multijob
1183 - functest-patchset-created:
1188 - functest-build_tag:
1190 - functest-EXTERNAL_NETWORK:
1191 EXTERNAL_NETWORK: public
1192 - functest-VOLUME_DEVICE_NAME:
1193 VOLUME_DEVICE_NAME: sdb
1194 - functest-IMAGE_PROPERTIES:
1195 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
1196 # PyYAML and yamllint differ here
1197 # see https://github.com/yaml/pyyaml/issues/234
1198 # yamllint disable rule:indentation
1202 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1203 # yamllint enable rule:indentation
1206 name: remove former images
1208 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
1210 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
1212 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
1214 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
1216 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
1218 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
1221 name: remove dependency
1223 - name: 'functest-{repo}-{tag}-dep-rmi'
1226 name: pull dependency
1228 - name: 'functest-{repo}-{tag}-dep-pull'
1231 name: build opnfv/functest-core
1233 - name: 'functest-opnfv-functest-core-{tag}-gate'
1236 name: build opnfv/functest-tempest
1238 - name: 'functest-opnfv-functest-tempest-{tag}-gate'
1241 name: build containers
1243 - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1245 - name: 'functest-opnfv-functest-smoke-{tag}-gate'
1247 - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1249 - name: 'functest-opnfv-functest-vnf-{tag}-gate'
1252 name: build cntt containers
1254 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1256 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1259 name: opnfv/functest-healthcheck:{tag}
1261 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1263 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1265 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1267 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1269 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1271 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1273 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1275 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1277 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1279 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1281 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1283 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1285 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1288 name: opnfv/functest-smoke:{tag}
1290 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1292 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1294 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1296 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1298 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1300 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1302 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
1304 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1306 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1308 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1310 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1312 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1314 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1316 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
1318 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1320 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1322 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1324 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
1326 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
1328 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1330 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1332 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1335 name: opnfv/functest-smoke-cntt:{tag}
1337 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1339 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1341 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1343 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1345 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1347 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1349 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1351 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1354 name: opnfv/functest-benchmarking:{tag}
1356 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1358 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1360 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1362 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1365 name: opnfv/functest-benchmarking-cntt:{tag}
1367 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1369 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1372 name: opnfv/functest-vnf:{tag}
1374 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1376 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1378 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1380 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1382 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1389 recipients: cedric.ollivier@orange.com
1392 name: 'functest-review'
1393 <<: *functest-params
1395 - 'functest-{tag}-review'
1398 name: functest-review
1407 regex: ^functest-[a-z0-9.]+-review$
1419 regex: ^functest-[a-z0-9.]+-tox$
1422 name: functest-push-containers
1426 if [ "{repo}" = "_" ]; then
1427 image={container}:{tag}
1428 elif [ "{port}" = "None" ]; then
1429 image={repo}/{container}:{tag}
1431 image={repo}:{port}/{container}:{tag}
1433 sudo docker push $image
1436 name: functest-commit
1439 cron: "*/30 * * * *"
1442 name: 'functest-{repo}-{container}-{tag}-build'
1450 - functest-build-containers:
1451 <<: *functest-build-containers
1453 build_args: '{build_args}'
1454 - functest-push-containers:
1455 <<: *functest-build-containers
1459 name: functest-opnfv-functest-core-{tag}-build
1460 <<: *functest-params
1461 container: functest-core
1465 - 'functest-{repo}-{container}-{tag}-build'
1468 name: functest-opnfv-functest-tempest-{tag}-build
1469 <<: *functest-params
1470 container: functest-tempest
1472 path: docker/tempest
1476 - {'tag': 'wallaby'}
1481 - 'functest-{repo}-{container}-{tag}-build'
1484 name: functest-opnfv-functest-healthcheck-{tag}-build
1485 <<: *functest-params
1486 container: functest-healthcheck
1488 path: docker/healthcheck
1490 - 'functest-{repo}-{container}-{tag}-build'
1493 name: functest-opnfv-functest-smoke-{tag}-build
1494 <<: *functest-params
1495 container: functest-smoke
1499 - 'functest-{repo}-{container}-{tag}-build'
1502 name: functest-opnfv-functest-benchmarking-{tag}-build
1503 <<: *functest-params
1504 container: functest-benchmarking
1506 path: docker/benchmarking
1508 - 'functest-{repo}-{container}-{tag}-build'
1511 name: functest-opnfv-functest-vnf-{tag}-build
1512 <<: *functest-params
1513 container: functest-vnf
1517 - 'functest-{repo}-{container}-{tag}-build'
1520 name: functest-opnfv-functest-smoke-cntt-{tag}-build
1521 <<: *functest-params
1522 container: functest-smoke-cntt
1524 path: docker/smoke-cntt
1526 - 'functest-{repo}-{container}-{tag}-build'
1529 name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
1530 <<: *functest-params
1531 container: functest-benchmarking-cntt
1533 path: docker/benchmarking-cntt
1535 - 'functest-{repo}-{container}-{tag}-build'
1538 name: 'functest-{tag}-docker'
1539 project-type: multijob
1548 # PyYAML and yamllint differ here
1549 # see https://github.com/yaml/pyyaml/issues/234
1550 # yamllint disable rule:indentation
1554 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1555 # yamllint enable rule:indentation
1558 name: remove dependency
1560 - name: 'functest-{repo}-{tag}-dep-rmi'
1563 name: pull dependency
1565 - name: 'functest-{repo}-{tag}-dep-pull'
1568 name: build opnfv/functest-core
1570 - name: 'functest-opnfv-functest-core-{tag}-build'
1573 name: build opnfv/functest-tempest
1575 - name: 'functest-opnfv-functest-tempest-{tag}-build'
1578 name: build containers
1580 - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1582 - name: 'functest-opnfv-functest-smoke-{tag}-build'
1584 - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1586 - name: 'functest-opnfv-functest-vnf-{tag}-build'
1589 name: build cntt containers
1591 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1593 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1600 recipients: cedric.ollivier@orange.com
1603 name: functest-trivy
1606 sudo apt-get -o DPkg::Lock::Timeout=300 update && \
1607 sudo DEBIAN_FRONTEND=noninteractive apt-get \
1608 -o DPkg::Lock::Timeout=300 install curl -y
1610 curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
1611 if [ "{repo}" = "_" ]; then
1612 image={container}:{tag}
1613 elif [ "{port}" = "None" ]; then
1614 image={repo}/{container}:{tag}
1616 image={repo}:{port}/{container}:{tag}
1618 ./trivy image --exit-code 1 $image
1621 name: 'functest-{repo}-{container}-{tag}-trivy'
1629 <<: *functest-containers
1635 recipients: cedric.ollivier@orange.com
1638 name: 'functest-opnfv-functest-core-trivy'
1639 <<: *functest-params
1640 container: 'functest-core'
1642 - 'functest-{repo}-{container}-{tag}-trivy'
1645 name: 'functest-opnfv-functest-tempest-trivy'
1646 <<: *functest-params
1647 container: 'functest-tempest'
1649 - 'functest-{repo}-{container}-{tag}-trivy'
1652 name: 'functest-opnfv-functest-healthcheck-trivy'
1653 <<: *functest-params
1654 container: 'functest-healthcheck'
1656 - 'functest-{repo}-{container}-{tag}-trivy'
1659 name: 'functest-opnfv-functest-smoke-trivy'
1660 <<: *functest-params
1661 container: 'functest-smoke'
1663 - 'functest-{repo}-{container}-{tag}-trivy'
1666 name: 'functest-opnfv-functest-benchmarking-trivy'
1667 <<: *functest-params
1668 container: 'functest-benchmarking'
1670 - 'functest-{repo}-{container}-{tag}-trivy'
1673 name: 'functest-opnfv-functest-vnf-trivy'
1674 <<: *functest-params
1675 container: 'functest-vnf'
1677 - 'functest-{repo}-{container}-{tag}-trivy'
1680 name: 'functest-opnfv-functest-smoke-cntt-trivy'
1681 <<: *functest-params
1682 container: 'functest-smoke-cntt'
1684 - 'functest-{repo}-{container}-{tag}-trivy'
1687 name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
1688 <<: *functest-params
1689 container: 'functest-benchmarking-cntt'
1691 - 'functest-{repo}-{container}-{tag}-trivy'
1694 name: functest-grype
1697 sudo apt-get -o DPkg::Lock::Timeout=300 update && \
1698 sudo DEBIAN_FRONTEND=noninteractive apt-get \
1699 -o DPkg::Lock::Timeout=300 install curl -y
1701 curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sudo sh -s -- -b .
1702 if [ "{repo}" = "_" ]; then
1703 image={container}:{tag}
1704 elif [ "{port}" = "None" ]; then
1705 image={repo}/{container}:{tag}
1707 image={repo}:{port}/{container}:{tag}
1712 name: 'functest-{repo}-{container}-{tag}-grype'
1720 <<: *functest-containers
1726 recipients: cedric.ollivier@orange.com
1729 name: 'functest-opnfv-functest-core-grype'
1730 <<: *functest-params
1731 container: 'functest-core'
1733 - 'functest-{repo}-{container}-{tag}-grype'
1736 name: 'functest-opnfv-functest-tempest-grype'
1737 <<: *functest-params
1738 container: 'functest-tempest'
1740 - 'functest-{repo}-{container}-{tag}-grype'
1743 name: 'functest-opnfv-functest-healthcheck-grype'
1744 <<: *functest-params
1745 container: 'functest-healthcheck'
1747 - 'functest-{repo}-{container}-{tag}-grype'
1750 name: 'functest-opnfv-functest-smoke-grype'
1751 <<: *functest-params
1752 container: 'functest-smoke'
1754 - 'functest-{repo}-{container}-{tag}-grype'
1757 name: 'functest-opnfv-functest-benchmarking-grype'
1758 <<: *functest-params
1759 container: 'functest-benchmarking'
1761 - 'functest-{repo}-{container}-{tag}-grype'
1764 name: 'functest-opnfv-functest-vnf-grype'
1765 <<: *functest-params
1766 container: 'functest-vnf'
1768 - 'functest-{repo}-{container}-{tag}-grype'
1771 name: 'functest-opnfv-functest-smoke-cntt-grype'
1772 <<: *functest-params
1773 container: 'functest-smoke-cntt'
1775 - 'functest-{repo}-{container}-{tag}-grype'
1778 name: 'functest-opnfv-functest-benchmarking-cntt-grype'
1779 <<: *functest-params
1780 container: 'functest-benchmarking-cntt'
1782 - 'functest-{repo}-{container}-{tag}-grype'
1786 <<: *functest-params
1788 - 'functest-{tag}-docker'
1791 name: functest-docker
1800 regex: ^functest-[a-z0-9.]+-docker$
1803 name: functest-trivy
1812 regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$
1815 name: functest-grype
1824 regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-grype$