- latest:
branch: master
slave: lf-virtual9
+ dashboard_url: http://172.30.13.94
+ - jerma:
+ branch: stable/jerma
+ slave: lf-virtual4
+ dashboard_url: http://172.30.13.89
- iruya:
branch: stable/iruya
slave: lf-virtual4
+ dashboard_url: http://172.30.13.89
- hunter:
branch: stable/hunter
slave: lf-virtual6
+ dashboard_url: http://172.30.13.91
- parameter:
name: functest-slave
name: slave
default: '{slave}'
+- parameter:
+ name: functest-build_tag
+ parameters:
+ - random-string:
+ name: build_tag
+
- parameter:
name: functest-branch
parameters:
name: branch
default: '{branch}'
+- parameter:
+ name: functest-DEBUG
+ parameters:
+ - string:
+ name: DEBUG
+ default: 'true'
+
+- parameter:
+ name: functest-EXTERNAL_NETWORK
+ parameters:
+ - string:
+ name: EXTERNAL_NETWORK
+ default: public
+
- functest-containers: &functest-containers
name: 'functest-containers'
repo: '{repo}'
tag: '{tag}'
- functest-run-containers: &functest-run-containers
- name: 'functest-build-containers'
+ name: 'functest-run-containers'
<<: *functest-containers
test: '{test}'
+ dashboard_url: '{dashboard_url}'
- functest-build-containers: &functest-build-containers
name: 'functest-build-containers'
name: functest-run-containers
builders:
- shell: |
- set +ex
+ set +x
[ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true
if [ "{repo}" = "_" ]; then
image={container}:{tag}
image={repo}:{port}/{container}:{tag}
fi
if [ "{tag}" = "latest" ]; then
+ py=3.7
+ elif [ "{tag}" = "jerma" ]; then
+ py=3.7
+ elif [ "{tag}" = "iruya" ]; then
py=3.6
else
py=2.7
fi
sudo docker run --rm \
+ -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 \
+ -e BUILD_TAG=$BUILD_TAG \
-v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
- -e DEBUG=True \
- -e EXTERNAL_NETWORK=public \
+ -e DEBUG=$DEBUG \
+ -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \
+ -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 \
- -v /home/opnfv/functest/blacklist.yaml:/usr/lib/python$py/\
- site-packages/functest/opnfv_tests/openstack/rally/blacklist.yaml \
-v /home/opnfv/functest/tempest_blacklist.yaml:/usr/lib/python$py/\
- site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/blacklist.yaml \
- $image run_tests -t {test}
- res=$?
- gsutil -m cp -r $WORKSPACE/ \
- gs://artifacts.opnfv.org/functest/$JOB_NAME-$BUILD_ID > /dev/null 2>&1
- find $WORKSPACE -type f \
- -printf \
- "http://artifacts.opnfv.org/functest/$JOB_NAME-$BUILD_ID/%P\n"
- exit $res
+ site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/\
+ blacklist.yaml \
+ -v /home/opnfv/functest/.boto:/root/.boto \
+ $image run_tests -t {test} -p
- builder:
name: functest-remove-images
- 'functest-{repo}-{container}-{tag}-pull'
- project:
- name: 'functest-opnfv-functest-benchmarking-pull'
+ name: 'functest-opnfv-functest-smoke-cntt-pull'
<<: *functest-params
- container: 'functest-benchmarking'
+ container: 'functest-smoke-cntt'
jobs:
- 'functest-{repo}-{container}-{tag}-pull'
- project:
- name: 'functest-opnfv-functest-vnf-pull'
+ name: 'functest-opnfv-functest-benchmarking-pull'
<<: *functest-params
- container: 'functest-vnf'
+ container: 'functest-benchmarking'
jobs:
- 'functest-{repo}-{container}-{tag}-pull'
- project:
- name: 'functest-opnfv-functest-features-pull'
+ name: 'functest-opnfv-functest-vnf-pull'
<<: *functest-params
- container: 'functest-features'
+ container: 'functest-vnf'
jobs:
- 'functest-{repo}-{container}-{tag}-pull'
- 'functest-{repo}-{container}-{tag}-rmi'
- project:
- name: 'functest-opnfv-functest-benchmarking-rmi'
+ name: 'functest-opnfv-functest-smoke-cntt-rmi'
<<: *functest-params
- container: 'functest-benchmarking'
+ container: 'functest-smoke-cntt'
jobs:
- 'functest-{repo}-{container}-{tag}-rmi'
- project:
- name: 'functest-opnfv-functest-vnf-rmi'
+ name: 'functest-opnfv-functest-benchmarking-rmi'
<<: *functest-params
- container: 'functest-vnf'
+ container: 'functest-benchmarking'
jobs:
- 'functest-{repo}-{container}-{tag}-rmi'
- project:
- name: 'functest-opnfv-functest-features-rmi'
+ name: 'functest-opnfv-functest-vnf-rmi'
<<: *functest-params
- container: 'functest-features'
+ container: 'functest-vnf'
jobs:
- 'functest-{repo}-{container}-{tag}-rmi'
parameters:
- functest-slave:
slave: '{slave}'
+ - functest-build_tag:
+ build_tag: ''
+ - functest-DEBUG:
+ DEBUG: 'true'
+ - functest-EXTERNAL_NETWORK:
+ EXTERNAL_NETWORK: public
builders:
- functest-run-containers:
<<: *functest-run-containers
- cinder_test
- odl
- tempest_smoke
+ - tempest_horizon
+ exclude:
+ - tag: hunter
+ test: tempest_horizon
jobs:
- 'functest-{repo}-{container}-{tag}-{test}-run'
container: 'functest-smoke'
test:
- neutron-tempest-plugin-api
+ - tempest_cinder
+ - tempest_keystone
- rally_sanity
- refstack_defcore
- refstack_compute
- refstack_platform
- tempest_full
- tempest_scenario
+ - tempest_slow
- patrole
- neutron_trunk
- networking-bgpvpn
- networking-sfc
- barbican
+ - octavia
exclude:
- tag: latest
test: refstack_defcore
+ - tag: jerma
+ test: refstack_defcore
- tag: iruya
test: refstack_defcore
+ - tag: iruya
+ test: octavia
- tag: hunter
test: refstack_compute
- tag: hunter
test: refstack_object
- tag: hunter
test: refstack_platform
+ - tag: hunter
+ test: octavia
+ jobs:
+ - 'functest-{repo}-{container}-{tag}-{test}-run'
+
+- project:
+ name: 'functest-opnfv-functest-smoke-cntt'
+ <<: *functest-params
+ container: 'functest-smoke-cntt'
+ test:
+ - neutron-tempest-plugin-api
+ - tempest_cinder
+ - tempest_keystone
+ - rally_sanity
+ - tempest_full
+ - tempest_scenario
+ - tempest_slow
jobs:
- 'functest-{repo}-{container}-{tag}-{test}-run'
jobs:
- 'functest-{repo}-{container}-{tag}-{test}-run'
-- project:
- name: 'functest-opnfv-functest-features'
- <<: *functest-params
- container: 'functest-features'
- test:
- - doctor-notification
- - functest-odl-sfc
- - barometercollectd
- - vgpu
- - stor4nfv_os
- jobs:
- - 'functest-{repo}-{container}-{tag}-{test}-run'
-
- job-template:
name: 'functest-{tag}-daily'
project-type: multijob
parameters:
- functest-slave:
slave: '{slave}'
+ - functest-build_tag:
+ build_tag: ''
+ - functest-DEBUG:
+ DEBUG: 'true'
+ - functest-EXTERNAL_NETWORK:
+ EXTERNAL_NETWORK: public
properties:
- build-blocker:
use-build-blocker: true
<<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-rmi'
<<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
+ <<: *functest-jobs
- name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
<<: *functest-jobs
- name: 'functest-opnfv-functest-vnf-{tag}-rmi'
<<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-rmi'
- <<: *functest-jobs
- multijob:
name: pull containers
projects:
<<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-pull'
<<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull'
+ <<: *functest-jobs
- name: 'functest-opnfv-functest-benchmarking-{tag}-pull'
<<: *functest-jobs
- name: 'functest-opnfv-functest-vnf-{tag}-pull'
<<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-pull'
- <<: *functest-jobs
- multijob:
name: opnfv/functest-healthcheck:{tag}
projects:
<<: *functest-jobs
- name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
<<: *functest-jobs
+ - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
+ <<: *functest-jobs
- multijob:
name: opnfv/functest-smoke:{tag}
projects:
- name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
<<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
+ <<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
<<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
<<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
<<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
+ <<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
<<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
<<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
<<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-{tag}-octavia-run'
+ <<: *functest-jobs
+ - multijob:
+ name: opnfv/functest-smoke-cntt:{tag}
+ projects:
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-neutron-tempest-plugin-api-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow-run'
+ <<: *functest-jobs
- multijob:
name: opnfv/functest-benchmarking:{tag}
projects:
<<: *functest-jobs
- name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
<<: *functest-jobs
- - multijob:
- name: opnfv/functest-features:{tag}
- projects:
- - name: 'functest-opnfv-functest-features-{tag}-doctor-notification-run'
- <<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-functest-odl-sfc-run'
- <<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-barometercollectd-run'
- <<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-vgpu-run'
- <<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-stor4nfv_os-run'
- <<: *functest-jobs
- job-template:
name: 'functest-{repo}-{container}-{tag}-gate'
ref: $branch
- project:
- name: 'functest-_-alpine-3.9-rmi'
+ name: 'functest-_-alpine-3.10-rmi'
repo: _
port:
container: alpine
- tag: 3.9
+ tag: '3.10'
slave: master
jobs:
- 'functest-{repo}-{container}-{tag}-rmi'
- project:
- name: 'functest-_-alpine-3.9-pull'
+ name: 'functest-_-alpine-3.10-pull'
repo: _
port:
container: alpine
- tag: 3.9
+ tag: '3.10'
slave: master
jobs:
- 'functest-{repo}-{container}-{tag}-pull'
jobs:
- 'functest-{repo}-{container}-{tag}-gate'
- 'functest-{repo}-{container}-{tag}-check'
+ exclude:
+ - tag: latest
+ - tag: jerma
- project:
name: functest-opnfv-functest-healthcheck-{tag}-build
- 'functest-{repo}-{container}-{tag}-check'
- project:
- name: functest-opnfv-functest-features-{tag}-build
+ name: functest-opnfv-functest-smoke-cntt-{tag}-build
<<: *functest-params
- container: functest-features
+ container: functest-smoke-cntt
ref_arg: BRANCH
- path: docker/features
+ path: docker/smoke-cntt
jobs:
- 'functest-{repo}-{container}-{tag}-gate'
- 'functest-{repo}-{container}-{tag}-check'
parameters:
- functest-slave:
slave: '{slave}'
+ - functest-build_tag:
+ build_tag: ''
- functest-branch:
branch: '{branch}'
+ - functest-DEBUG:
+ DEBUG: 'true'
+ - functest-EXTERNAL_NETWORK:
+ EXTERNAL_NETWORK: public
properties:
- build-blocker:
use-build-blocker: true
<<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-rmi'
<<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
+ <<: *functest-jobs
- name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
<<: *functest-jobs
- name: 'functest-opnfv-functest-vnf-{tag}-rmi'
<<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-rmi'
- <<: *functest-jobs
- multijob:
name: remove dependencies
projects:
- - name: 'functest-_-alpine-3.9-rmi'
+ - name: 'functest-_-alpine-3.10-rmi'
<<: *functest-jobs
- multijob:
name: pull dependencies
projects:
- - name: 'functest-_-alpine-3.9-pull'
+ - name: 'functest-_-alpine-3.10-pull'
<<: *functest-jobs
- multijob:
name: build opnfv/functest-core
<<: *functest-jobs
- name: 'functest-opnfv-functest-vnf-{tag}-check'
<<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-check'
+ - multijob:
+ name: build opnfv/functest-smoke-cntt
+ projects:
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-check'
<<: *functest-jobs
- multijob:
name: opnfv/functest-healthcheck:{tag}
<<: *functest-jobs
- name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
<<: *functest-jobs
+ - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
+ <<: *functest-jobs
- multijob:
name: opnfv/functest-smoke:{tag}
projects:
- name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
<<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
+ <<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
<<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
<<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
<<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
+ <<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
<<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
<<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
<<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-{tag}-octavia-run'
+ <<: *functest-jobs
+ - multijob:
+ name: opnfv/functest-smoke-cntt:{tag}
+ projects:
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-neutron-tempest-plugin-api-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow-run'
+ <<: *functest-jobs
- multijob:
name: opnfv/functest-benchmarking:{tag}
projects:
<<: *functest-jobs
- name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
<<: *functest-jobs
- - multijob:
- name: opnfv/functest-features:{tag}
- projects:
- - name: 'functest-opnfv-functest-features-{tag}-doctor-notification-run'
- <<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-functest-odl-sfc-run'
- <<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-barometercollectd-run'
- <<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-vgpu-run'
- <<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-stor4nfv_os-run'
- <<: *functest-jobs
- trigger:
name: functest-patchset-created
parameters:
- functest-slave:
slave: '{slave}'
+ - functest-build_tag:
+ build_tag: ''
+ - functest-DEBUG:
+ DEBUG: 'true'
+ - functest-EXTERNAL_NETWORK:
+ EXTERNAL_NETWORK: public
properties:
- build-blocker:
use-build-blocker: true
<<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-rmi'
<<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi'
+ <<: *functest-jobs
- name: 'functest-opnfv-functest-benchmarking-{tag}-rmi'
<<: *functest-jobs
- name: 'functest-opnfv-functest-vnf-{tag}-rmi'
<<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-rmi'
- <<: *functest-jobs
- multijob:
name: remove dependencies
projects:
- - name: 'functest-_-alpine-3.9-rmi'
+ - name: 'functest-_-alpine-3.10-rmi'
<<: *functest-jobs
- multijob:
name: pull dependencies
projects:
- - name: 'functest-_-alpine-3.9-pull'
+ - name: 'functest-_-alpine-3.10-pull'
<<: *functest-jobs
- multijob:
name: build opnfv/functest-core
<<: *functest-jobs
- name: 'functest-opnfv-functest-vnf-{tag}-gate'
<<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-gate'
+ - multijob:
+ name: build opnfv/functest-smoke-cntt
+ projects:
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate'
<<: *functest-jobs
- multijob:
name: opnfv/functest-healthcheck:{tag}
<<: *functest-jobs
- name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run'
<<: *functest-jobs
+ - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run'
+ <<: *functest-jobs
- multijob:
name: opnfv/functest-smoke:{tag}
projects:
- name: 'functest-opnfv-functest-smoke-{tag}-neutron-tempest-plugin-api-run'
<<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run'
+ <<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run'
<<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run'
<<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run'
<<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run'
+ <<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-patrole-run'
<<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-neutron_trunk-run'
<<: *functest-jobs
- name: 'functest-opnfv-functest-smoke-{tag}-barbican-run'
<<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-{tag}-octavia-run'
+ <<: *functest-jobs
+ - multijob:
+ name: opnfv/functest-smoke-cntt:{tag}
+ projects:
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-neutron-tempest-plugin-api-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario-run'
+ <<: *functest-jobs
+ - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow-run'
+ <<: *functest-jobs
- multijob:
name: opnfv/functest-benchmarking:{tag}
projects:
<<: *functest-jobs
- name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
<<: *functest-jobs
- - multijob:
- name: opnfv/functest-features:{tag}
- projects:
- - name: 'functest-opnfv-functest-features-{tag}-doctor-notification-run'
- <<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-functest-odl-sfc-run'
- <<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-barometercollectd-run'
- <<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-vgpu-run'
- <<: *functest-jobs
- - name: 'functest-opnfv-functest-features-{tag}-stor4nfv_os-run'
- <<: *functest-jobs
- project:
name: 'functest'