2 - functest-containers: &functest-containers
3 name: 'functest-containers'
6 container: '{container}'
9 - functest-params: &functest-params
10 name: 'functest-params'
19 DASHBOARD_URL: http://172.30.12.85
24 branch: stable/wallaby
26 DASHBOARD_URL: http://172.30.13.91
33 DASHBOARD_URL: http://172.30.13.94
40 DASHBOARD_URL: http://172.30.12.88
47 DASHBOARD_URL: http://172.30.12.83
50 - functest-jobs: &functest-jobs
52 current-parameters: true
62 name: functest-build_tag
68 name: functest-EXTERNAL_NETWORK
71 name: EXTERNAL_NETWORK
75 name: functest-VOLUME_DEVICE_NAME
78 name: VOLUME_DEVICE_NAME
82 name: functest-IMAGE_PROPERTIES
85 name: IMAGE_PROPERTIES
86 default: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
88 - functest-run-containers: &functest-run-containers
89 name: 'functest-run-containers'
90 <<: *functest-containers
92 privileged: '{privileged}'
94 DASHBOARD_URL: '{DASHBOARD_URL}'
97 name: functest-pull-containers
101 if [ "{repo}" = "_" ]; then
102 image={container}:{tag}
103 elif [ "{port}" = "None" ]; then
104 image={repo}/{container}:{tag}
106 image={repo}:{port}/{container}:{tag}
108 sudo docker pull $image
111 name: functest-run-containers
115 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
116 if [ "{repo}" = "_" ]; then
117 image={container}:{tag}
118 elif [ "{port}" = "None" ]; then
119 image={repo}/{container}:{tag}
121 image={repo}:{port}/{container}:{tag}
123 sudo docker run --rm \
124 --privileged={privileged} \
125 --network={network} \
126 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
127 -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
128 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
129 -v /home/opnfv/functest/.boto:/root/.boto \
130 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
131 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
132 -e NODE_NAME=$slave \
133 -e BUILD_TAG=$BUILD_TAG \
134 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
135 -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \
136 -e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \
137 -e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \
138 -e DASHBOARD_URL={DASHBOARD_URL} \
139 -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \
140 -v /home/opnfv/functest/images:/home/opnfv/functest/images \
141 $image run_tests -t {test} -p -r
144 name: functest-remove-images
148 if [ "{repo}" = "_" ]; then
149 image={container}:{tag}
150 elif [ "{port}" = "None" ]; then
151 image={repo}/{container}:{tag}
153 image={repo}:{port}/{container}:{tag}
155 sudo docker rmi $image || true
158 name: 'functest-{repo}-{container}-{tag}-pull'
163 - functest-pull-containers:
164 <<: *functest-containers
167 name: 'functest-opnfv-functest-healthcheck-pull'
169 container: 'functest-healthcheck'
171 - 'functest-{repo}-{container}-{tag}-pull'
174 name: 'functest-opnfv-functest-smoke-pull'
176 container: 'functest-smoke'
178 - 'functest-{repo}-{container}-{tag}-pull'
181 name: 'functest-opnfv-functest-smoke-cntt-pull'
183 container: 'functest-smoke-cntt'
185 - 'functest-{repo}-{container}-{tag}-pull'
188 name: 'functest-opnfv-functest-benchmarking-pull'
190 container: 'functest-benchmarking'
192 - 'functest-{repo}-{container}-{tag}-pull'
195 name: 'functest-opnfv-functest-benchmarking-cntt-pull'
197 container: 'functest-benchmarking-cntt'
199 - 'functest-{repo}-{container}-{tag}-pull'
202 name: 'functest-opnfv-functest-vnf-pull'
204 container: 'functest-vnf'
206 - 'functest-{repo}-{container}-{tag}-pull'
209 name: 'functest-{repo}-{container}-{tag}-rmi'
214 - functest-remove-images:
215 <<: *functest-containers
218 name: 'functest-opnfv-functest-healthcheck-rmi'
220 container: 'functest-healthcheck'
222 - 'functest-{repo}-{container}-{tag}-rmi'
225 name: 'functest-opnfv-functest-smoke-rmi'
227 container: 'functest-smoke'
229 - 'functest-{repo}-{container}-{tag}-rmi'
232 name: 'functest-opnfv-functest-smoke-cntt-rmi'
234 container: 'functest-smoke-cntt'
236 - 'functest-{repo}-{container}-{tag}-rmi'
239 name: 'functest-opnfv-functest-benchmarking-rmi'
241 container: 'functest-benchmarking'
243 - 'functest-{repo}-{container}-{tag}-rmi'
246 name: 'functest-opnfv-functest-benchmarking-cntt-rmi'
248 container: 'functest-benchmarking-cntt'
250 - 'functest-{repo}-{container}-{tag}-rmi'
253 name: 'functest-opnfv-functest-vnf-rmi'
255 container: 'functest-vnf'
257 - 'functest-{repo}-{container}-{tag}-rmi'
260 name: 'functest-{repo}-{container}-{tag}-{test}-run'
264 - functest-build_tag:
266 - functest-EXTERNAL_NETWORK:
267 EXTERNAL_NETWORK: public
268 - functest-VOLUME_DEVICE_NAME:
269 VOLUME_DEVICE_NAME: sdb
270 - functest-IMAGE_PROPERTIES:
271 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
273 - functest-run-containers:
274 <<: *functest-run-containers
277 name: 'functest-opnfv-functest-healthcheck'
279 container: 'functest-healthcheck'
297 - 'functest-{repo}-{container}-{tag}-{test}-run'
300 name: 'functest-opnfv-functest-smoke'
302 container: 'functest-smoke'
330 test: refstack_defcore
332 test: networking-bgpvpn
338 test: refstack_defcore
340 test: networking-bgpvpn
346 test: refstack_defcore
348 test: networking-bgpvpn
354 test: refstack_defcore
356 test: networking-bgpvpn
366 test: refstack_defcore
368 test: networking-bgpvpn
380 - 'functest-{repo}-{container}-{tag}-{test}-run'
383 name: 'functest-opnfv-functest-smoke-cntt'
385 container: 'functest-smoke-cntt'
387 - tempest_neutron_cntt
388 - tempest_cinder_cntt
389 - tempest_keystone_cntt
393 - tempest_scenario_cntt
398 - 'functest-{repo}-{container}-{tag}-{test}-run'
401 name: 'functest-opnfv-functest-benchmarking'
403 container: 'functest-benchmarking'
412 - 'functest-{repo}-{container}-{tag}-{test}-run'
415 name: 'functest-opnfv-functest-benchmarking-cntt'
417 container: 'functest-benchmarking-cntt'
424 - 'functest-{repo}-{container}-{tag}-{test}-run'
427 name: 'functest-opnfv-functest-vnf'
429 container: 'functest-vnf'
439 - 'functest-{repo}-{container}-{tag}-{test}-run'
446 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
447 if [ "{repo}" = "_" ]; then
448 image={container}:{tag}
449 elif [ "{port}" = "None" ]; then
450 image={repo}/{container}:{tag}
452 image={repo}:{port}/{container}:{tag}
454 sudo docker run --rm \
455 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
456 -e S3_DST_URL=s3://artifacts.opnfv.org/functest \
457 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \
458 -v /home/opnfv/functest/.boto:/root/.boto \
459 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
460 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
461 -e BUILD_TAG=$BUILD_TAG \
462 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
463 -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \
464 -e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \
465 -e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \
466 -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \
467 -v /home/opnfv/functest/images:/home/opnfv/functest/images \
471 name: 'functest-{tag}-zip'
475 - functest-build_tag:
477 - functest-EXTERNAL_NETWORK:
478 EXTERNAL_NETWORK: public
479 - functest-VOLUME_DEVICE_NAME:
480 VOLUME_DEVICE_NAME: sdb
481 - functest-IMAGE_PROPERTIES:
482 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
485 <<: *functest-containers
488 name: 'functest-{tag}-zip'
490 container: 'functest-healthcheck'
492 - 'functest-{tag}-zip'
495 name: 'functest-{tag}-daily'
496 project-type: multijob
502 - functest-build_tag:
504 - functest-EXTERNAL_NETWORK:
505 EXTERNAL_NETWORK: public
506 - functest-VOLUME_DEVICE_NAME:
507 VOLUME_DEVICE_NAME: sdb
508 - functest-IMAGE_PROPERTIES:
509 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
510 # PyYAML and yamllint differ here
511 # see https://github.com/yaml/pyyaml/issues/234
512 # yamllint disable rule:indentation
516 - ^functest-(pi-)*{tag}-(daily|docker|review)$
517 # yamllint enable rule:indentation
520 name: remove former images
522 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
524 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
526 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
528 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
530 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
532 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
535 name: pull containers
537 - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
539 - name: 'functest-opnfv-functest-smoke-{tag}-pull'
541 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
543 - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
545 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
547 - name: 'functest-opnfv-functest-vnf-{tag}-pull'
550 name: opnfv/functest-healthcheck:{tag}
552 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
554 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
556 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
558 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
560 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
562 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
564 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
566 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
568 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
570 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
572 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
574 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
576 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
579 name: opnfv/functest-smoke:{tag}
581 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
583 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
585 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
587 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
589 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
591 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
593 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
595 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
597 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
599 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
601 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
603 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
605 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
607 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
609 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
611 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
613 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
615 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
617 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
619 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
621 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
623 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
626 name: opnfv/functest-smoke-cntt:{tag}
628 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
630 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
632 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
634 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
636 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
638 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
640 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
642 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
645 name: opnfv/functest-benchmarking:{tag}
647 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
649 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
651 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
653 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
656 name: opnfv/functest-benchmarking-cntt:{tag}
658 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
660 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
663 name: opnfv/functest-vnf:{tag}
665 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
667 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
669 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
671 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
673 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
676 name: dump all campaign data
678 - name: 'functest-{tag}-zip'
682 name: 'functest-daily'
685 - 'functest-{tag}-daily'
697 regex: ^functest-[a-z0-9.]+-daily$
699 - functest-build-containers: &functest-build-containers
700 name: 'functest-build-containers'
701 <<: *functest-containers
704 buildargs: '{buildargs}'
708 name: functest-build-containers
712 if [ "{repo}" = "_" ]; then
713 image={container}:{tag}
714 elif [ "{port}" = "None" ]; then
715 image={repo}/{container}:{tag}
717 image={repo}:{port}/{container}:{tag}
720 if [ "{buildargs}" != "None" ]; then
721 build_args="{buildargs}"
723 if [ "{ref_arg}" != "None" ]; then
724 build_args="$build_args --build-arg {ref_arg}={ref}"
727 if [ "{from}" != "None" ]; then
728 sed -i {from} Dockerfile
730 sudo docker build $build_args \
731 --pull=false --no-cache --force-rm=true \
738 url: 'https://gerrit.opnfv.org/gerrit/functest'
739 refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
743 - functest-dep: &functest-dep
744 name: 'functest-containers'
748 dependency: '{dependency}'
751 name: functest-pull-dep-images
755 if [ "_" = "_" ]; then
756 image=alpine:{dependency}
757 elif [ "None" = "None" ]; then
758 image=_/alpine:{dependency}
760 image=_:/alpine:{dependency}
762 sudo docker pull $image || true
765 name: functest-remove-dep-images
769 if [ "_" = "_" ]; then
770 image=alpine:{dependency}
771 elif [ "" = "None" ]; then
772 image=_/alpine:{dependency}
774 image=_:/alpine:{dependency}
776 sudo docker rmi $image || true
779 name: 'functest-{repo}-{tag}-dep-pull'
784 - functest-pull-dep-images:
788 name: 'functest-{repo}-{tag}-dep-pull'
791 - 'functest-{repo}-{tag}-dep-pull'
794 name: 'functest-{repo}-{tag}-dep-rmi'
799 - functest-remove-dep-images:
803 name: 'functest-{repo}-{tag}-dep-rmi'
806 - 'functest-{repo}-{tag}-dep-rmi'
813 sudo apt-get update && sudo apt-get install \
814 software-properties-common gpg -y
815 sudo add-apt-repository -y ppa:deadsnakes/ppa
816 sudo apt-get update && sudo apt-get install python3.8 \
817 python3.8-dev python3.8-distutils \
818 python3.7 python3.7-dev python3.6 python3.6-dev \
819 python python-dev python3-pip enchant -y
820 sudo pip3 install tox tox-pip-version
825 name: 'functest-{tag}-tox'
830 - functest-patchset-created:
842 - 'functest-{tag}-tox'
845 name: 'functest-{repo}-{container}-{tag}-gate'
853 - functest-build-containers:
854 <<: *functest-build-containers
856 buildargs: '{buildargs}'
859 name: functest-opnfv-functest-core-{tag}-gate
861 container: functest-core
865 - 'functest-{repo}-{container}-{tag}-gate'
868 name: functest-opnfv-functest-tempest-{tag}-gate
870 container: functest-tempest
880 - 'functest-{repo}-{container}-{tag}-gate'
883 name: functest-opnfv-functest-healthcheck-{tag}-gate
885 container: functest-healthcheck
887 path: docker/healthcheck
889 - 'functest-{repo}-{container}-{tag}-gate'
892 name: functest-opnfv-functest-smoke-{tag}-gate
894 container: functest-smoke
898 - 'functest-{repo}-{container}-{tag}-gate'
901 name: functest-opnfv-functest-benchmarking-{tag}-gate
903 container: functest-benchmarking
905 path: docker/benchmarking
907 - 'functest-{repo}-{container}-{tag}-gate'
910 name: functest-opnfv-functest-vnf-{tag}-gate
912 container: functest-vnf
916 - 'functest-{repo}-{container}-{tag}-gate'
919 name: functest-opnfv-functest-smoke-cntt-{tag}-gate
921 container: functest-smoke-cntt
923 path: docker/smoke-cntt
925 - 'functest-{repo}-{container}-{tag}-gate'
928 name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate
930 container: functest-benchmarking-cntt
932 path: docker/benchmarking-cntt
934 - 'functest-{repo}-{container}-{tag}-gate'
937 name: functest-patchset-created
941 - patchset-created-event
942 - comment-added-contains-event:
943 comment-contains-value: 'recheck'
944 - comment-added-contains-event:
945 comment-contains-value: 'reverify'
947 - project-compare-type: 'ANT'
948 project-pattern: 'functest'
950 - branch-compare-type: 'ANT'
951 branch-pattern: '**/{branch}'
954 name: 'functest-{tag}-review'
955 project-type: multijob
957 - functest-patchset-created:
962 - functest-build_tag:
964 - functest-EXTERNAL_NETWORK:
965 EXTERNAL_NETWORK: public
966 - functest-VOLUME_DEVICE_NAME:
967 VOLUME_DEVICE_NAME: sdb
968 - functest-IMAGE_PROPERTIES:
969 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
970 # PyYAML and yamllint differ here
971 # see https://github.com/yaml/pyyaml/issues/234
972 # yamllint disable rule:indentation
976 - ^functest-(pi-)*{tag}-(daily|docker|review)$
977 # yamllint enable rule:indentation
980 name: remove former images
982 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
984 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
986 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
988 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
990 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
992 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
995 name: remove dependency
997 - name: 'functest-{repo}-{tag}-dep-rmi'
1000 name: pull dependency
1002 - name: 'functest-{repo}-{tag}-dep-pull'
1005 name: build opnfv/functest-core
1007 - name: 'functest-opnfv-functest-core-{tag}-gate'
1010 name: build opnfv/functest-tempest
1012 - name: 'functest-opnfv-functest-tempest-{tag}-gate'
1015 name: build containers
1017 - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1019 - name: 'functest-opnfv-functest-smoke-{tag}-gate'
1021 - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1023 - name: 'functest-opnfv-functest-vnf-{tag}-gate'
1026 name: build cntt containers
1028 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1030 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1033 name: opnfv/functest-healthcheck:{tag}
1035 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1037 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1039 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1041 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1043 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1045 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1047 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1049 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1051 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1053 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1055 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1057 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1059 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1062 name: opnfv/functest-smoke:{tag}
1064 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1066 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1068 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1070 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1072 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1074 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1076 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
1078 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1080 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1082 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1084 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1086 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1088 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1090 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
1092 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1094 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1096 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1098 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
1100 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
1102 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1104 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1106 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1109 name: opnfv/functest-smoke-cntt:{tag}
1111 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1113 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1115 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1117 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1119 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1121 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1123 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1125 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1128 name: opnfv/functest-benchmarking:{tag}
1130 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1132 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1134 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1136 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1139 name: opnfv/functest-benchmarking-cntt:{tag}
1141 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1143 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1146 name: opnfv/functest-vnf:{tag}
1148 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1150 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1152 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1154 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1156 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1160 name: 'functest-review'
1161 <<: *functest-params
1163 - 'functest-{tag}-review'
1166 name: functest-review
1175 regex: ^functest-[a-z0-9.]+-review$
1187 regex: ^functest-[a-z0-9.]+-tox$
1190 name: functest-push-containers
1194 if [ "{repo}" = "_" ]; then
1195 image={container}:{tag}
1196 elif [ "{port}" = "None" ]; then
1197 image={repo}/{container}:{tag}
1199 image={repo}:{port}/{container}:{tag}
1201 sudo docker push $image
1204 name: functest-commit
1207 cron: "*/30 * * * *"
1210 name: 'functest-{repo}-{container}-{tag}-build'
1218 - functest-build-containers:
1219 <<: *functest-build-containers
1221 buildargs: '{buildargs}'
1222 - functest-push-containers:
1223 <<: *functest-build-containers
1227 name: functest-opnfv-functest-core-{tag}-build
1228 <<: *functest-params
1229 container: functest-core
1233 - 'functest-{repo}-{container}-{tag}-build'
1236 name: functest-opnfv-functest-tempest-{tag}-build
1237 <<: *functest-params
1238 container: functest-tempest
1240 path: docker/tempest
1243 - {'tag': 'wallaby'}
1248 - 'functest-{repo}-{container}-{tag}-build'
1251 name: functest-opnfv-functest-healthcheck-{tag}-build
1252 <<: *functest-params
1253 container: functest-healthcheck
1255 path: docker/healthcheck
1257 - 'functest-{repo}-{container}-{tag}-build'
1260 name: functest-opnfv-functest-smoke-{tag}-build
1261 <<: *functest-params
1262 container: functest-smoke
1266 - 'functest-{repo}-{container}-{tag}-build'
1269 name: functest-opnfv-functest-benchmarking-{tag}-build
1270 <<: *functest-params
1271 container: functest-benchmarking
1273 path: docker/benchmarking
1275 - 'functest-{repo}-{container}-{tag}-build'
1278 name: functest-opnfv-functest-vnf-{tag}-build
1279 <<: *functest-params
1280 container: functest-vnf
1284 - 'functest-{repo}-{container}-{tag}-build'
1287 name: functest-opnfv-functest-smoke-cntt-{tag}-build
1288 <<: *functest-params
1289 container: functest-smoke-cntt
1291 path: docker/smoke-cntt
1293 - 'functest-{repo}-{container}-{tag}-build'
1296 name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
1297 <<: *functest-params
1298 container: functest-benchmarking-cntt
1300 path: docker/benchmarking-cntt
1302 - 'functest-{repo}-{container}-{tag}-build'
1305 name: 'functest-{tag}-docker'
1306 project-type: multijob
1315 # PyYAML and yamllint differ here
1316 # see https://github.com/yaml/pyyaml/issues/234
1317 # yamllint disable rule:indentation
1321 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1322 # yamllint enable rule:indentation
1325 name: remove dependency
1327 - name: 'functest-{repo}-{tag}-dep-rmi'
1330 name: pull dependency
1332 - name: 'functest-{repo}-{tag}-dep-pull'
1335 name: build opnfv/functest-core
1337 - name: 'functest-opnfv-functest-core-{tag}-build'
1340 name: build opnfv/functest-tempest
1342 - name: 'functest-opnfv-functest-tempest-{tag}-build'
1345 name: build containers
1347 - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1349 - name: 'functest-opnfv-functest-smoke-{tag}-build'
1351 - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1353 - name: 'functest-opnfv-functest-vnf-{tag}-build'
1356 name: build cntt containers
1358 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1360 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1364 name: functest-trivy
1367 sudo apt-get update && sudo apt-get install curl -y
1369 curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
1370 if [ "{repo}" = "_" ]; then
1371 image={container}:{tag}
1372 elif [ "{port}" = "None" ]; then
1373 image={repo}/{container}:{tag}
1375 image={repo}:{port}/{container}:{tag}
1377 ./trivy --exit-code 1 $image
1380 name: 'functest-{repo}-{container}-{tag}-trivy'
1388 <<: *functest-containers
1391 name: 'functest-opnfv-functest-core-trivy'
1392 <<: *functest-params
1393 container: 'functest-core'
1395 - 'functest-{repo}-{container}-{tag}-trivy'
1398 name: 'functest-opnfv-functest-tempest-trivy'
1399 <<: *functest-params
1400 container: 'functest-tempest'
1402 - 'functest-{repo}-{container}-{tag}-trivy'
1405 name: 'functest-opnfv-functest-healthcheck-trivy'
1406 <<: *functest-params
1407 container: 'functest-healthcheck'
1409 - 'functest-{repo}-{container}-{tag}-trivy'
1412 name: 'functest-opnfv-functest-smoke-trivy'
1413 <<: *functest-params
1414 container: 'functest-smoke'
1416 - 'functest-{repo}-{container}-{tag}-trivy'
1419 name: 'functest-opnfv-functest-benchmarking-trivy'
1420 <<: *functest-params
1421 container: 'functest-benchmarking'
1423 - 'functest-{repo}-{container}-{tag}-trivy'
1426 name: 'functest-opnfv-functest-vnf-trivy'
1427 <<: *functest-params
1428 container: 'functest-vnf'
1430 - 'functest-{repo}-{container}-{tag}-trivy'
1433 name: 'functest-opnfv-functest-smoke-cntt-trivy'
1434 <<: *functest-params
1435 container: 'functest-smoke-cntt'
1437 - 'functest-{repo}-{container}-{tag}-trivy'
1440 name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
1441 <<: *functest-params
1442 container: 'functest-benchmarking-cntt'
1444 - 'functest-{repo}-{container}-{tag}-trivy'
1448 <<: *functest-params
1450 - 'functest-{tag}-docker'
1453 name: functest-docker
1462 regex: ^functest-[a-z0-9.]+-docker$
1465 name: functest-trivy
1474 regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$