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'
447 [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
448 if [ "{repo}" = "_" ]; then
449 image={container}:{tag}
450 elif [ "{port}" = "None" ]; then
451 image={repo}/{container}:{tag}
453 image={repo}:{port}/{container}:{tag}
455 sudo docker run --rm \
456 -e S3_ENDPOINT_URL=https://storage.googleapis.com \
457 -e S3_DST_URL=s3://artifacts.opnfv.org/functest \
458 -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \
459 -v /home/opnfv/functest/.boto:/root/.boto \
460 -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
461 -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
462 -e BUILD_TAG=$BUILD_TAG \
463 -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
464 -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \
465 -e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \
466 -e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \
467 -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \
468 -v /home/opnfv/functest/images:/home/opnfv/functest/images \
472 name: 'functest-{tag}-zip'
476 - functest-build_tag:
478 - functest-EXTERNAL_NETWORK:
479 EXTERNAL_NETWORK: public
480 - functest-VOLUME_DEVICE_NAME:
481 VOLUME_DEVICE_NAME: sdb
482 - functest-IMAGE_PROPERTIES:
483 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
486 <<: *functest-containers
489 name: 'functest-{tag}-zip'
491 container: 'functest-healthcheck'
493 - 'functest-{tag}-zip'
496 name: 'functest-{tag}-daily'
497 project-type: multijob
503 - functest-build_tag:
505 - functest-EXTERNAL_NETWORK:
506 EXTERNAL_NETWORK: public
507 - functest-VOLUME_DEVICE_NAME:
508 VOLUME_DEVICE_NAME: sdb
509 - functest-IMAGE_PROPERTIES:
510 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
511 # PyYAML and yamllint differ here
512 # see https://github.com/yaml/pyyaml/issues/234
513 # yamllint disable rule:indentation
517 - ^functest-(pi-)*{tag}-(daily|docker|review)$
518 # yamllint enable rule:indentation
521 name: remove former images
523 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
525 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
527 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
529 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
531 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
533 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
536 name: pull containers
538 - name: 'functest-opnfv-functest-healthcheck-{tag}-pull'
540 - name: 'functest-opnfv-functest-smoke-{tag}-pull'
542 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
544 - name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
546 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull'
548 - name: 'functest-opnfv-functest-vnf-{tag}-pull'
551 name: opnfv/functest-healthcheck:{tag}
553 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
555 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
557 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
559 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
561 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
563 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
565 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
567 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
569 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
571 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
573 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
575 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
577 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
580 name: opnfv/functest-smoke:{tag}
582 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
584 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
586 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
588 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
590 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
592 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
594 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
596 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
598 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
600 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
602 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
604 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
606 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
608 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
610 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
612 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
614 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
616 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
618 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
620 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
622 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
624 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
627 name: opnfv/functest-smoke-cntt:{tag}
629 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
631 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
633 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
635 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
637 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
639 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
641 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
643 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
646 name: opnfv/functest-benchmarking:{tag}
648 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
650 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
652 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
654 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
657 name: opnfv/functest-benchmarking-cntt:{tag}
659 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
661 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
664 name: opnfv/functest-vnf:{tag}
666 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
668 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
670 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
672 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
674 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
677 name: dump all campaign data
679 - name: 'functest-{tag}-zip'
683 name: 'functest-daily'
686 - 'functest-{tag}-daily'
698 regex: ^functest-[a-z0-9.]+-daily$
700 - functest-build-containers: &functest-build-containers
701 name: 'functest-build-containers'
702 <<: *functest-containers
705 buildargs: '{buildargs}'
709 name: functest-build-containers
713 if [ "{repo}" = "_" ]; then
714 image={container}:{tag}
715 elif [ "{port}" = "None" ]; then
716 image={repo}/{container}:{tag}
718 image={repo}:{port}/{container}:{tag}
721 if [ "{buildargs}" != "None" ]; then
722 build_args="{buildargs}"
724 if [ "{ref_arg}" != "None" ]; then
725 build_args="$build_args --build-arg {ref_arg}={ref}"
728 if [ "{from}" != "None" ]; then
729 sed -i {from} Dockerfile
731 sudo docker build $build_args \
732 --pull=false --no-cache --force-rm=true \
739 url: 'https://gerrit.opnfv.org/gerrit/functest'
740 refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
744 - functest-dep: &functest-dep
745 name: 'functest-containers'
749 dependency: '{dependency}'
752 name: functest-pull-dep-images
756 if [ "_" = "_" ]; then
757 image=alpine:{dependency}
758 elif [ "None" = "None" ]; then
759 image=_/alpine:{dependency}
761 image=_:/alpine:{dependency}
763 sudo docker pull $image || true
766 name: functest-remove-dep-images
770 if [ "_" = "_" ]; then
771 image=alpine:{dependency}
772 elif [ "" = "None" ]; then
773 image=_/alpine:{dependency}
775 image=_:/alpine:{dependency}
777 sudo docker rmi $image || true
780 name: 'functest-{repo}-{tag}-dep-pull'
785 - functest-pull-dep-images:
789 name: 'functest-{repo}-{tag}-dep-pull'
792 - 'functest-{repo}-{tag}-dep-pull'
795 name: 'functest-{repo}-{tag}-dep-rmi'
800 - functest-remove-dep-images:
804 name: 'functest-{repo}-{tag}-dep-rmi'
807 - 'functest-{repo}-{tag}-dep-rmi'
814 sudo apt-get update && sudo apt-get install \
815 software-properties-common gpg -y
816 sudo add-apt-repository -y ppa:deadsnakes/ppa
817 sudo apt-get update && sudo apt-get install python3.8 \
818 python3.8-dev python3.8-distutils \
819 python3.7 python3.7-dev python3.6 python3.6-dev \
820 python python-dev python3-pip enchant -y
821 sudo pip3 install tox tox-pip-version
826 name: 'functest-{tag}-tox'
831 - functest-patchset-created:
843 - 'functest-{tag}-tox'
846 name: 'functest-{repo}-{container}-{tag}-gate'
854 - functest-build-containers:
855 <<: *functest-build-containers
857 buildargs: '{buildargs}'
860 name: functest-opnfv-functest-core-{tag}-gate
862 container: functest-core
866 - 'functest-{repo}-{container}-{tag}-gate'
869 name: functest-opnfv-functest-tempest-{tag}-gate
871 container: functest-tempest
881 - 'functest-{repo}-{container}-{tag}-gate'
884 name: functest-opnfv-functest-healthcheck-{tag}-gate
886 container: functest-healthcheck
888 path: docker/healthcheck
890 - 'functest-{repo}-{container}-{tag}-gate'
893 name: functest-opnfv-functest-smoke-{tag}-gate
895 container: functest-smoke
899 - 'functest-{repo}-{container}-{tag}-gate'
902 name: functest-opnfv-functest-benchmarking-{tag}-gate
904 container: functest-benchmarking
906 path: docker/benchmarking
908 - 'functest-{repo}-{container}-{tag}-gate'
911 name: functest-opnfv-functest-vnf-{tag}-gate
913 container: functest-vnf
917 - 'functest-{repo}-{container}-{tag}-gate'
920 name: functest-opnfv-functest-smoke-cntt-{tag}-gate
922 container: functest-smoke-cntt
924 path: docker/smoke-cntt
926 - 'functest-{repo}-{container}-{tag}-gate'
929 name: functest-opnfv-functest-benchmarking-cntt-{tag}-gate
931 container: functest-benchmarking-cntt
933 path: docker/benchmarking-cntt
935 - 'functest-{repo}-{container}-{tag}-gate'
938 name: functest-patchset-created
942 - patchset-created-event
943 - comment-added-contains-event:
944 comment-contains-value: 'recheck'
945 - comment-added-contains-event:
946 comment-contains-value: 'reverify'
948 - project-compare-type: 'ANT'
949 project-pattern: 'functest'
951 - branch-compare-type: 'ANT'
952 branch-pattern: '**/{branch}'
955 name: 'functest-{tag}-review'
956 project-type: multijob
958 - functest-patchset-created:
963 - functest-build_tag:
965 - functest-EXTERNAL_NETWORK:
966 EXTERNAL_NETWORK: public
967 - functest-VOLUME_DEVICE_NAME:
968 VOLUME_DEVICE_NAME: sdb
969 - functest-IMAGE_PROPERTIES:
970 IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
971 # PyYAML and yamllint differ here
972 # see https://github.com/yaml/pyyaml/issues/234
973 # yamllint disable rule:indentation
977 - ^functest-(pi-)*{tag}-(daily|docker|review)$
978 # yamllint enable rule:indentation
981 name: remove former images
983 - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi'
985 - name: 'functest-opnfv-functest-smoke-{tag}-rmi'
987 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
989 - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
991 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi'
993 - name: 'functest-opnfv-functest-vnf-{tag}-rmi'
996 name: remove dependency
998 - name: 'functest-{repo}-{tag}-dep-rmi'
1001 name: pull dependency
1003 - name: 'functest-{repo}-{tag}-dep-pull'
1006 name: build opnfv/functest-core
1008 - name: 'functest-opnfv-functest-core-{tag}-gate'
1011 name: build opnfv/functest-tempest
1013 - name: 'functest-opnfv-functest-tempest-{tag}-gate'
1016 name: build containers
1018 - name: 'functest-opnfv-functest-healthcheck-{tag}-gate'
1020 - name: 'functest-opnfv-functest-smoke-{tag}-gate'
1022 - name: 'functest-opnfv-functest-benchmarking-{tag}-gate'
1024 - name: 'functest-opnfv-functest-vnf-{tag}-gate'
1027 name: build cntt containers
1029 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
1031 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate'
1034 name: opnfv/functest-healthcheck:{tag}
1036 - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run'
1038 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run'
1040 - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run'
1042 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run'
1044 - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run'
1046 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run'
1048 - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run'
1050 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run'
1052 - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run'
1054 - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run'
1056 - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run'
1058 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
1060 - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
1063 name: opnfv/functest-smoke:{tag}
1065 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run'
1067 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
1069 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
1071 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run'
1073 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run'
1075 - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
1077 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
1079 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run'
1081 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
1083 - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
1085 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run'
1087 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
1089 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
1091 - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
1093 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run'
1095 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run'
1097 - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run'
1099 - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run'
1101 - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run'
1103 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run'
1105 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run'
1107 - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run'
1110 name: opnfv/functest-smoke-cntt:{tag}
1112 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run'
1114 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run'
1116 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run'
1118 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run'
1120 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run'
1122 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run'
1124 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run'
1126 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run'
1129 name: opnfv/functest-benchmarking:{tag}
1131 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run'
1133 - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run'
1135 - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run'
1137 - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run'
1140 name: opnfv/functest-benchmarking-cntt:{tag}
1142 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run'
1144 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run'
1147 name: opnfv/functest-vnf:{tag}
1149 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run'
1151 - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run'
1153 - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run'
1155 - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run'
1157 - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
1161 name: 'functest-review'
1162 <<: *functest-params
1164 - 'functest-{tag}-review'
1167 name: functest-review
1176 regex: ^functest-[a-z0-9.]+-review$
1188 regex: ^functest-[a-z0-9.]+-tox$
1191 name: functest-push-containers
1195 if [ "{repo}" = "_" ]; then
1196 image={container}:{tag}
1197 elif [ "{port}" = "None" ]; then
1198 image={repo}/{container}:{tag}
1200 image={repo}:{port}/{container}:{tag}
1202 sudo docker push $image
1205 name: functest-commit
1208 cron: "*/30 * * * *"
1211 name: 'functest-{repo}-{container}-{tag}-build'
1219 - functest-build-containers:
1220 <<: *functest-build-containers
1222 buildargs: '{buildargs}'
1223 - functest-push-containers:
1224 <<: *functest-build-containers
1228 name: functest-opnfv-functest-core-{tag}-build
1229 <<: *functest-params
1230 container: functest-core
1234 - 'functest-{repo}-{container}-{tag}-build'
1237 name: functest-opnfv-functest-tempest-{tag}-build
1238 <<: *functest-params
1239 container: functest-tempest
1241 path: docker/tempest
1244 - {'tag': 'wallaby'}
1249 - 'functest-{repo}-{container}-{tag}-build'
1252 name: functest-opnfv-functest-healthcheck-{tag}-build
1253 <<: *functest-params
1254 container: functest-healthcheck
1256 path: docker/healthcheck
1258 - 'functest-{repo}-{container}-{tag}-build'
1261 name: functest-opnfv-functest-smoke-{tag}-build
1262 <<: *functest-params
1263 container: functest-smoke
1267 - 'functest-{repo}-{container}-{tag}-build'
1270 name: functest-opnfv-functest-benchmarking-{tag}-build
1271 <<: *functest-params
1272 container: functest-benchmarking
1274 path: docker/benchmarking
1276 - 'functest-{repo}-{container}-{tag}-build'
1279 name: functest-opnfv-functest-vnf-{tag}-build
1280 <<: *functest-params
1281 container: functest-vnf
1285 - 'functest-{repo}-{container}-{tag}-build'
1288 name: functest-opnfv-functest-smoke-cntt-{tag}-build
1289 <<: *functest-params
1290 container: functest-smoke-cntt
1292 path: docker/smoke-cntt
1294 - 'functest-{repo}-{container}-{tag}-build'
1297 name: functest-opnfv-functest-benchmarking-cntt-{tag}-build
1298 <<: *functest-params
1299 container: functest-benchmarking-cntt
1301 path: docker/benchmarking-cntt
1303 - 'functest-{repo}-{container}-{tag}-build'
1306 name: 'functest-{tag}-docker'
1307 project-type: multijob
1316 # PyYAML and yamllint differ here
1317 # see https://github.com/yaml/pyyaml/issues/234
1318 # yamllint disable rule:indentation
1322 - ^functest-(pi-)*{tag}-(daily|docker|review)$
1323 # yamllint enable rule:indentation
1326 name: remove dependency
1328 - name: 'functest-{repo}-{tag}-dep-rmi'
1331 name: pull dependency
1333 - name: 'functest-{repo}-{tag}-dep-pull'
1336 name: build opnfv/functest-core
1338 - name: 'functest-opnfv-functest-core-{tag}-build'
1341 name: build opnfv/functest-tempest
1343 - name: 'functest-opnfv-functest-tempest-{tag}-build'
1346 name: build containers
1348 - name: 'functest-opnfv-functest-healthcheck-{tag}-build'
1350 - name: 'functest-opnfv-functest-smoke-{tag}-build'
1352 - name: 'functest-opnfv-functest-benchmarking-{tag}-build'
1354 - name: 'functest-opnfv-functest-vnf-{tag}-build'
1357 name: build cntt containers
1359 - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build'
1361 - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build'
1365 name: functest-trivy
1368 sudo apt-get update && sudo apt-get install curl -y
1370 curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
1371 if [ "{repo}" = "_" ]; then
1372 image={container}:{tag}
1373 elif [ "{port}" = "None" ]; then
1374 image={repo}/{container}:{tag}
1376 image={repo}:{port}/{container}:{tag}
1378 ./trivy --exit-code 1 $image
1381 name: 'functest-{repo}-{container}-{tag}-trivy'
1389 <<: *functest-containers
1392 name: 'functest-opnfv-functest-core-trivy'
1393 <<: *functest-params
1394 container: 'functest-core'
1396 - 'functest-{repo}-{container}-{tag}-trivy'
1399 name: 'functest-opnfv-functest-tempest-trivy'
1400 <<: *functest-params
1401 container: 'functest-tempest'
1403 - 'functest-{repo}-{container}-{tag}-trivy'
1406 name: 'functest-opnfv-functest-healthcheck-trivy'
1407 <<: *functest-params
1408 container: 'functest-healthcheck'
1410 - 'functest-{repo}-{container}-{tag}-trivy'
1413 name: 'functest-opnfv-functest-smoke-trivy'
1414 <<: *functest-params
1415 container: 'functest-smoke'
1417 - 'functest-{repo}-{container}-{tag}-trivy'
1420 name: 'functest-opnfv-functest-benchmarking-trivy'
1421 <<: *functest-params
1422 container: 'functest-benchmarking'
1424 - 'functest-{repo}-{container}-{tag}-trivy'
1427 name: 'functest-opnfv-functest-vnf-trivy'
1428 <<: *functest-params
1429 container: 'functest-vnf'
1431 - 'functest-{repo}-{container}-{tag}-trivy'
1434 name: 'functest-opnfv-functest-smoke-cntt-trivy'
1435 <<: *functest-params
1436 container: 'functest-smoke-cntt'
1438 - 'functest-{repo}-{container}-{tag}-trivy'
1441 name: 'functest-opnfv-functest-benchmarking-cntt-trivy'
1442 <<: *functest-params
1443 container: 'functest-benchmarking-cntt'
1445 - 'functest-{repo}-{container}-{tag}-trivy'
1449 <<: *functest-params
1451 - 'functest-{tag}-docker'
1454 name: functest-docker
1463 regex: ^functest-[a-z0-9.]+-docker$
1466 name: functest-trivy
1475 regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$