---
-- functest-pi-jobs: &functest-pi-jobs
- name: 'functest-pi-jobs'
- current-parameters: true
+- functest-pi-containers: &functest-pi-containers
+ name: 'functest-pi-containers'
+ repo: '{repo}'
+ port: '{port}'
+ container: '{container}'
+ tag: '{tag}'
- functest-pi-params: &functest-pi-params
name: 'functest-pi-params'
port:
tag:
- latest:
- branch: master
slave: lf-virtual9
- dashboard_url: http://172.30.13.94
+ DASHBOARD_URL: http://172.30.13.94
+ - leguer:
+ slave: lf-virtual9
+ DASHBOARD_URL: http://172.30.13.94
- kali:
- branch: stable/kali
slave: lf-pod4-3
- dashboard_url: http://172.30.12.88
+ DASHBOARD_URL: http://172.30.12.88
- jerma:
- branch: stable/jerma
slave: lf-pod4
- dashboard_url: http://172.30.12.83
+ DASHBOARD_URL: http://172.30.12.83
- iruya:
- branch: stable/iruya
slave: lf-virtual4
- dashboard_url: http://172.30.13.89
+ DASHBOARD_URL: http://172.30.13.89
- hunter:
- branch: stable/hunter
slave: lf-virtual6
- dashboard_url: http://172.30.13.91
+ DASHBOARD_URL: http://172.30.13.91
- arm-latest:
- branch: master
slave: lf-virtual9
- dashboard_url: http://172.30.13.94
+ DASHBOARD_URL: http://172.30.13.94
+ - arm-leguer:
+ slave: lf-virtual9
+ DASHBOARD_URL: http://172.30.13.94
- arm-kali:
- branch: stable/kali
slave: lf-pod4-3
- dashboard_url: http://172.30.12.88
+ DASHBOARD_URL: http://172.30.12.88
- arm-jerma:
- branch: stable/jerma
slave: lf-pod4
- dashboard_url: http://172.30.12.83
+ DASHBOARD_URL: http://172.30.12.83
- arm-iruya:
- branch: stable/iruya
slave: lf-virtual4
- dashboard_url: http://172.30.13.89
+ DASHBOARD_URL: http://172.30.13.89
- arm-hunter:
- branch: stable/hunter
slave: lf-virtual6
- dashboard_url: http://172.30.13.91
+ DASHBOARD_URL: http://172.30.13.91
- arm64-latest:
- branch: master
slave: lf-virtual9
- dashboard_url: http://172.30.13.94
+ DASHBOARD_URL: http://172.30.13.94
+ - arm64-leguer:
+ slave: lf-virtual9
+ DASHBOARD_URL: http://172.30.13.94
- arm64-kali:
- branch: stable/kali
slave: lf-pod4-3
- dashboard_url: http://172.30.12.88
+ DASHBOARD_URL: http://172.30.12.88
- arm64-jerma:
- branch: stable/jerma
slave: lf-pod4
- dashboard_url: http://172.30.12.83
+ DASHBOARD_URL: http://172.30.12.83
- arm64-iruya:
- branch: stable/iruya
slave: lf-virtual4
- dashboard_url: http://172.30.13.89
+ DASHBOARD_URL: http://172.30.13.89
- arm64-hunter:
- branch: stable/hunter
slave: lf-virtual6
- dashboard_url: http://172.30.13.91
+ DASHBOARD_URL: http://172.30.13.91
+
+- functest-pi-jobs: &functest-pi-jobs
+ name: 'functest-pi-jobs'
+ current-parameters: true
- parameter:
name: functest-pi-slave
- random-string:
name: build_tag
-- parameter:
- name: functest-pi-branch
- parameters:
- - string:
- name: branch
- default: '{branch}'
-
-- parameter:
- name: functest-pi-DEBUG
- parameters:
- - string:
- name: DEBUG
- default: 'true'
- parameter:
name: functest-pi-EXTERNAL_NETWORK
parameters:
name: IMAGE_PROPERTIES
default: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi
-- functest-pi-containers: &functest-pi-containers
- name: 'functest-pi-containers'
- repo: '{repo}'
- port: '{port}'
- container: '{container}'
- tag: '{tag}'
-
- functest-pi-run-containers: &functest-pi-run-containers
name: 'functest-pi-run-containers'
<<: *functest-pi-containers
test: '{test}'
- dashboard_url: '{dashboard_url}'
privileged: '{privileged}'
network: '{network}'
+ DASHBOARD_URL: '{DASHBOARD_URL}'
- builder:
name: functest-pi-pull-containers
builders:
- shell: |
set +x
- [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true
+ [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
if [ "{repo}" = "_" ]; then
image={container}:{tag}
elif [ "{port}" = "None" ]; then
else
image={repo}:{port}/{container}:{tag}
fi
- volumes=""
- case "{tag}" in
- arm-hunter)
- volumes="-v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static" ;;
- arm64-hunter)
- volumes="-v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static" ;;
- esac
sudo docker run --rm \
--privileged={privileged} \
--network={network} \
-e S3_ENDPOINT_URL=https://storage.googleapis.com \
-e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
-e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
+ -v /home/opnfv/functest/.boto:/root/.boto \
-e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
-e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
-e NODE_NAME=$slave \
-e BUILD_TAG=$BUILD_TAG \
-v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
- -e DEBUG=$DEBUG \
-e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \
- -e DASHBOARD_URL={dashboard_url} \
-e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \
-e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \
- -v /home/opnfv/functest/.boto:/root/.boto \
+ -e DASHBOARD_URL={DASHBOARD_URL} \
-v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \
-v /home/opnfv/functest/images:/home/opnfv/functest/images \
- $volumes $image run_tests -t {test} -r -p
+ $image run_tests -t {test} -p -r
- builder:
name: functest-pi-remove-images
slave: '{slave}'
- functest-pi-build_tag:
build_tag: ''
- - functest-pi-DEBUG:
- DEBUG: 'true'
- functest-pi-EXTERNAL_NETWORK:
EXTERNAL_NETWORK: public
- functest-pi-VOLUME_DEVICE_NAME:
- patrole_admin
- patrole_member
- patrole_reader
- - neutron_trunk
- networking-bgpvpn
- networking-sfc
- tempest_barbican
- tempest_octavia
- tempest_cyborg
- exclude:
- - tag: latest
- test: refstack_defcore
- - tag: latest
- test: neutron_trunk
- - tag: latest
- test: networking-bgpvpn
- - tag: latest
- test: networking-sfc
- - tag: latest
- test: patrole
- - tag: kali
- test: refstack_defcore
- - tag: kali
- test: neutron_trunk
- - tag: kali
- test: networking-bgpvpn
- - tag: kali
- test: networking-sfc
- - tag: kali
- test: patrole_admin
- - tag: kali
- test: patrole_member
- - tag: kali
- test: patrole_reader
- - tag: jerma
- test: refstack_defcore
- - tag: jerma
- test: neutron_trunk
- - tag: jerma
- test: networking-bgpvpn
- - tag: jerma
- test: networking-sfc
- - tag: jerma
- test: patrole_admin
- - tag: jerma
- test: patrole_member
- - tag: jerma
- test: patrole_reader
- - tag: jerma
- test: tempest_cyborg
- - tag: iruya
- test: refstack_defcore
- - tag: iruya
- test: neutron_trunk
- - tag: iruya
- test: patrole_admin
- - tag: iruya
- test: patrole_member
- - tag: iruya
- test: patrole_reader
- - tag: iruya
- test: tempest_cyborg
- - tag: hunter
- test: refstack_compute
- - tag: hunter
- test: refstack_object
- - tag: hunter
- test: refstack_platform
- - tag: hunter
- test: tempest_octavia
- - tag: hunter
- test: neutron_trunk
- - tag: hunter
- test: tempest_telemetry
- - tag: hunter
- test: patrole_admin
- - tag: hunter
- test: patrole_member
- - tag: hunter
- test: patrole_reader
- - tag: hunter
- test: tempest_cyborg
- - tag: arm-latest
- test: refstack_defcore
- - tag: arm-latest
- test: neutron_trunk
- - tag: arm-latest
- test: networking-bgpvpn
- - tag: arm-latest
- test: networking-sfc
- - tag: arm-latest
- test: patrole
- - tag: arm-kali
- test: refstack_defcore
- - tag: arm-kali
- test: neutron_trunk
- - tag: arm-kali
- test: networking-bgpvpn
- - tag: arm-kali
- test: networking-sfc
- - tag: arm-kali
- test: patrole_admin
- - tag: arm-kali
- test: patrole_member
- - tag: arm-kali
- test: patrole_reader
- - tag: arm-jerma
- test: refstack_defcore
- - tag: arm-jerma
- test: neutron_trunk
- - tag: arm-jerma
- test: networking-bgpvpn
- - tag: arm-jerma
- test: networking-sfc
- - tag: arm-jerma
- test: patrole_admin
- - tag: arm-jerma
- test: patrole_member
- - tag: arm-jerma
- test: patrole_reader
- - tag: arm-jerma
- test: tempest_cyborg
- - tag: arm-iruya
- test: refstack_defcore
- - tag: arm-iruya
- test: neutron_trunk
- - tag: arm-iruya
- test: patrole_admin
- - tag: arm-iruya
- test: patrole_member
- - tag: arm-iruya
- test: patrole_reader
- - tag: arm-iruya
- test: tempest_cyborg
- - tag: arm-hunter
- test: refstack_compute
- - tag: arm-hunter
- test: refstack_object
- - tag: arm-hunter
- test: refstack_platform
- - tag: arm-hunter
- test: tempest_octavia
- - tag: arm-hunter
- test: neutron_trunk
- - tag: arm-hunter
- test: tempest_telemetry
- - tag: arm-hunter
- test: patrole_admin
- - tag: arm-hunter
- test: patrole_member
- - tag: arm-hunter
- test: patrole_reader
- - tag: arm-hunter
- test: tempest_cyborg
- - tag: arm64-latest
- test: refstack_defcore
- - tag: arm64-latest
- test: neutron_trunk
- - tag: arm64-latest
- test: networking-bgpvpn
- - tag: arm64-latest
- test: networking-sfc
- - tag: arm64-latest
- test: patrole
- - tag: arm64-kali
- test: refstack_defcore
- - tag: arm64-kali
- test: neutron_trunk
- - tag: arm64-kali
- test: networking-bgpvpn
- - tag: arm64-kali
- test: networking-sfc
- - tag: arm64-kali
- test: patrole_admin
- - tag: arm64-kali
- test: patrole_member
- - tag: arm64-kali
- test: patrole_reader
- - tag: arm64-jerma
- test: refstack_defcore
- - tag: arm64-jerma
- test: neutron_trunk
- - tag: arm64-jerma
- test: networking-bgpvpn
- - tag: arm64-jerma
- test: networking-sfc
- - tag: arm64-jerma
- test: patrole_admin
- - tag: arm64-jerma
- test: patrole_member
- - tag: arm64-jerma
- test: patrole_reader
- - tag: arm64-jerma
- test: tempest_cyborg
- - tag: arm64-iruya
- test: refstack_defcore
- - tag: arm64-iruya
- test: neutron_trunk
- - tag: arm64-iruya
- test: patrole_admin
- - tag: arm64-iruya
- test: patrole_member
- - tag: arm64-iruya
- test: patrole_reader
- - tag: arm64-iruya
- test: tempest_cyborg
- - tag: arm64-hunter
- test: refstack_compute
- - tag: arm64-hunter
- test: refstack_object
- - tag: arm64-hunter
- test: refstack_platform
- - tag: arm64-hunter
- test: tempest_octavia
- - tag: arm64-hunter
- test: neutron_trunk
- - tag: arm64-hunter
- test: tempest_telemetry
- - tag: arm64-hunter
- test: patrole_admin
- - tag: arm64-hunter
- test: patrole_member
- - tag: arm64-hunter
- test: patrole_reader
- - tag: arm64-hunter
- test: tempest_cyborg
privileged: 'false'
network: bridge
+ exclude:
+ - {'tag': 'latest', 'test': 'refstack_defcore'}
+ - {'tag': 'latest', 'test': 'networking-bgpvpn'}
+ - {'tag': 'latest', 'test': 'networking-sfc'}
+ - {'tag': 'latest', 'test': 'patrole'}
+ - {'tag': 'leguer', 'test': 'refstack_defcore'}
+ - {'tag': 'leguer', 'test': 'networking-bgpvpn'}
+ - {'tag': 'leguer', 'test': 'networking-sfc'}
+ - {'tag': 'leguer', 'test': 'patrole'}
+ - {'tag': 'kali', 'test': 'refstack_defcore'}
+ - {'tag': 'kali', 'test': 'networking-bgpvpn'}
+ - {'tag': 'kali', 'test': 'networking-sfc'}
+ - {'tag': 'kali', 'test': 'patrole_admin'}
+ - {'tag': 'kali', 'test': 'patrole_member'}
+ - {'tag': 'kali', 'test': 'patrole_reader'}
+ - {'tag': 'jerma', 'test': 'refstack_defcore'}
+ - {'tag': 'jerma', 'test': 'networking-bgpvpn'}
+ - {'tag': 'jerma', 'test': 'networking-sfc'}
+ - {'tag': 'jerma', 'test': 'patrole_admin'}
+ - {'tag': 'jerma', 'test': 'patrole_member'}
+ - {'tag': 'jerma', 'test': 'patrole_reader'}
+ - {'tag': 'jerma', 'test': 'tempest_cyborg'}
+ - {'tag': 'iruya', 'test': 'refstack_defcore'}
+ - {'tag': 'iruya', 'test': 'patrole_admin'}
+ - {'tag': 'iruya', 'test': 'patrole_member'}
+ - {'tag': 'iruya', 'test': 'patrole_reader'}
+ - {'tag': 'iruya', 'test': 'tempest_cyborg'}
+ - {'tag': 'hunter', 'test': 'refstack_compute'}
+ - {'tag': 'hunter', 'test': 'refstack_object'}
+ - {'tag': 'hunter', 'test': 'refstack_platform'}
+ - {'tag': 'hunter', 'test': 'tempest_octavia'}
+ - {'tag': 'hunter', 'test': 'tempest_telemetry'}
+ - {'tag': 'hunter', 'test': 'patrole_admin'}
+ - {'tag': 'hunter', 'test': 'patrole_member'}
+ - {'tag': 'hunter', 'test': 'patrole_reader'}
+ - {'tag': 'hunter', 'test': 'tempest_cyborg'}
+ - {'tag': 'arm-latest', 'test': 'refstack_defcore'}
+ - {'tag': 'arm-latest', 'test': 'networking-bgpvpn'}
+ - {'tag': 'arm-latest', 'test': 'networking-sfc'}
+ - {'tag': 'arm-latest', 'test': 'patrole'}
+ - {'tag': 'arm-leguer', 'test': 'refstack_defcore'}
+ - {'tag': 'arm-leguer', 'test': 'networking-bgpvpn'}
+ - {'tag': 'arm-leguer', 'test': 'networking-sfc'}
+ - {'tag': 'arm-leguer', 'test': 'patrole'}
+ - {'tag': 'arm-kali', 'test': 'refstack_defcore'}
+ - {'tag': 'arm-kali', 'test': 'networking-bgpvpn'}
+ - {'tag': 'arm-kali', 'test': 'networking-sfc'}
+ - {'tag': 'arm-kali', 'test': 'patrole_admin'}
+ - {'tag': 'arm-kali', 'test': 'patrole_member'}
+ - {'tag': 'arm-kali', 'test': 'patrole_reader'}
+ - {'tag': 'arm-jerma', 'test': 'refstack_defcore'}
+ - {'tag': 'arm-jerma', 'test': 'networking-bgpvpn'}
+ - {'tag': 'arm-jerma', 'test': 'networking-sfc'}
+ - {'tag': 'arm-jerma', 'test': 'patrole_admin'}
+ - {'tag': 'arm-jerma', 'test': 'patrole_member'}
+ - {'tag': 'arm-jerma', 'test': 'patrole_reader'}
+ - {'tag': 'arm-jerma', 'test': 'tempest_cyborg'}
+ - {'tag': 'arm-iruya', 'test': 'refstack_defcore'}
+ - {'tag': 'arm-iruya', 'test': 'patrole_admin'}
+ - {'tag': 'arm-iruya', 'test': 'patrole_member'}
+ - {'tag': 'arm-iruya', 'test': 'patrole_reader'}
+ - {'tag': 'arm-iruya', 'test': 'tempest_cyborg'}
+ - {'tag': 'arm-hunter', 'test': 'refstack_compute'}
+ - {'tag': 'arm-hunter', 'test': 'refstack_object'}
+ - {'tag': 'arm-hunter', 'test': 'refstack_platform'}
+ - {'tag': 'arm-hunter', 'test': 'tempest_octavia'}
+ - {'tag': 'arm-hunter', 'test': 'tempest_telemetry'}
+ - {'tag': 'arm-hunter', 'test': 'patrole_admin'}
+ - {'tag': 'arm-hunter', 'test': 'patrole_member'}
+ - {'tag': 'arm-hunter', 'test': 'patrole_reader'}
+ - {'tag': 'arm-hunter', 'test': 'tempest_cyborg'}
+ - {'tag': 'arm64-latest', 'test': 'refstack_defcore'}
+ - {'tag': 'arm64-latest', 'test': 'networking-bgpvpn'}
+ - {'tag': 'arm64-latest', 'test': 'networking-sfc'}
+ - {'tag': 'arm64-latest', 'test': 'patrole'}
+ - {'tag': 'arm64-leguer', 'test': 'refstack_defcore'}
+ - {'tag': 'arm64-leguer', 'test': 'networking-bgpvpn'}
+ - {'tag': 'arm64-leguer', 'test': 'networking-sfc'}
+ - {'tag': 'arm64-leguer', 'test': 'patrole'}
+ - {'tag': 'arm64-kali', 'test': 'refstack_defcore'}
+ - {'tag': 'arm64-kali', 'test': 'networking-bgpvpn'}
+ - {'tag': 'arm64-kali', 'test': 'networking-sfc'}
+ - {'tag': 'arm64-kali', 'test': 'patrole_admin'}
+ - {'tag': 'arm64-kali', 'test': 'patrole_member'}
+ - {'tag': 'arm64-kali', 'test': 'patrole_reader'}
+ - {'tag': 'arm64-jerma', 'test': 'refstack_defcore'}
+ - {'tag': 'arm64-jerma', 'test': 'networking-bgpvpn'}
+ - {'tag': 'arm64-jerma', 'test': 'networking-sfc'}
+ - {'tag': 'arm64-jerma', 'test': 'patrole_admin'}
+ - {'tag': 'arm64-jerma', 'test': 'patrole_member'}
+ - {'tag': 'arm64-jerma', 'test': 'patrole_reader'}
+ - {'tag': 'arm64-jerma', 'test': 'tempest_cyborg'}
+ - {'tag': 'arm64-iruya', 'test': 'refstack_defcore'}
+ - {'tag': 'arm64-iruya', 'test': 'patrole_admin'}
+ - {'tag': 'arm64-iruya', 'test': 'patrole_member'}
+ - {'tag': 'arm64-iruya', 'test': 'patrole_reader'}
+ - {'tag': 'arm64-iruya', 'test': 'tempest_cyborg'}
+ - {'tag': 'arm64-hunter', 'test': 'refstack_compute'}
+ - {'tag': 'arm64-hunter', 'test': 'refstack_object'}
+ - {'tag': 'arm64-hunter', 'test': 'refstack_platform'}
+ - {'tag': 'arm64-hunter', 'test': 'tempest_octavia'}
+ - {'tag': 'arm64-hunter', 'test': 'tempest_telemetry'}
+ - {'tag': 'arm64-hunter', 'test': 'patrole_admin'}
+ - {'tag': 'arm64-hunter', 'test': 'patrole_member'}
+ - {'tag': 'arm64-hunter', 'test': 'patrole_reader'}
+ - {'tag': 'arm64-hunter', 'test': 'tempest_cyborg'}
jobs:
- 'functest-pi-{repo}-{container}-{tag}-{test}-run'
builders:
- shell: |
set +x
- [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true
+ [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
if [ "{repo}" = "_" ]; then
image={container}:{tag}
elif [ "{port}" = "None" ]; then
else
image={repo}:{port}/{container}:{tag}
fi
- volumes=""
- case "{tag}" in
- arm-hunter)
- volumes="-v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static" ;;
- arm64-hunter)
- volumes="-v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static" ;;
- esac
sudo docker run --rm \
-e S3_ENDPOINT_URL=https://storage.googleapis.com \
-e S3_DST_URL=s3://artifacts.opnfv.org/functest \
-e HTTP_DST_URL=http://artifacts.opnfv.org/functest \
+ -v /home/opnfv/functest/.boto:/root/.boto \
-e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
-e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
-e BUILD_TAG=$BUILD_TAG \
-v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
- -e DEBUG=$DEBUG \
-e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \
-e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \
-e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \
- -v /home/opnfv/functest/.boto:/root/.boto \
-v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \
-v /home/opnfv/functest/images:/home/opnfv/functest/images \
- $volumes $image zip_campaign
+ $image zip_campaign
- job-template:
name: 'functest-pi-{tag}-zip'
slave: '{slave}'
- functest-pi-build_tag:
build_tag: ''
- - functest-pi-DEBUG:
- DEBUG: 'true'
- functest-pi-EXTERNAL_NETWORK:
EXTERNAL_NETWORK: public
- functest-pi-VOLUME_DEVICE_NAME:
slave: '{slave}'
- functest-pi-build_tag:
build_tag: ''
- - functest-pi-DEBUG:
- DEBUG: 'true'
- functest-pi-EXTERNAL_NETWORK:
EXTERNAL_NETWORK: public
- functest-pi-VOLUME_DEVICE_NAME:
use-build-blocker: true
blocking-level: 'NODE'
blocking-jobs:
- - '^functest(-pi)?(-ovn)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$'
+ - '^functest-pi-{tag}-(daily|docker|review)$'
builders:
- multijob:
name: remove former images
<<: *functest-pi-jobs
- name: 'functest-pi-ollivier-functest-smoke-{tag}-patrole_reader-run'
<<: *functest-pi-jobs
- - name: 'functest-pi-ollivier-functest-smoke-{tag}-neutron_trunk-run'
- <<: *functest-pi-jobs
- name: 'functest-pi-ollivier-functest-smoke-{tag}-networking-bgpvpn-run'
<<: *functest-pi-jobs
- name: 'functest-pi-ollivier-functest-smoke-{tag}-networking-sfc-run'
<<: *functest-pi-jobs
- project:
- name: 'functest-pi'
+ name: 'functest-pi-daily'
<<: *functest-pi-params
jobs:
- 'functest-pi-{tag}-daily'
- last-success
- last-failure
- last-duration
- regex: ^functest-pi(-ovn)?-(arm.*-|amd64-)*[a-z]+-daily$
+ regex: ^functest-pi-[a-z-0-9.]+-daily$