Merge "create iruya stable branch for Yardstick"
[releng.git] / jjb / functest / functest.yaml
index 074ad73..25a3d1e 100644 (file)
       - 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}
           else
             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 TEST_DB_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=True \
-            -e EXTERNAL_NETWORK=public \
-            -e DEBUG=true \
+            -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/python2.7/\
-          site-packages/functest/opnfv_tests/openstack/rally/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
+            -v /home/opnfv/functest/tempest_blacklist.yaml:/usr/lib/python$py/\
+          site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/\
+          blacklist.yaml \
+            -v /home/opnfv/functest/.boto:/root/.boto \
+            $image run_tests -t {test} -r -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_object
+      - 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'
 
+- builder:
+    name: functest-zip
+    builders:
+      - shell: |
+          set +x
+          [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/* || true
+          if [ "{repo}" = "_" ]; then
+            image={container}:{tag}
+          elif [ "{port}" = "None" ]; then
+            image={repo}/{container}:{tag}
+          else
+            image={repo}:{port}/{container}:{tag}
+          fi
+          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 \
+            -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
+            -e BUILD_TAG=$BUILD_TAG \
+            -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
+            -v /home/opnfv/functest/.boto:/root/.boto \
+            $image zip_campaign
+
+- job-template:
+    name: 'functest-{tag}-zip'
+    parameters:
+      - functest-build_tag:
+          build_tag: ''
+    builders:
+      - functest-zip:
+          <<: *functest-containers
+
 - project:
-    name: 'functest-opnfv-functest-features'
+    name: 'functest-{tag}-zip'
     <<: *functest-params
-    container: 'functest-features'
-    test:
-      - doctor-notification
-      - functest-odl-sfc
-      - barometercollectd
-      - vgpu
-      - stor4nfv_os
+    container: 'functest-healthcheck'
     jobs:
-      - 'functest-{repo}-{container}-{tag}-{test}-run'
+      - 'functest-{tag}-zip'
 
 - job-template:
     name: 'functest-{tag}-daily'
     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}-refstack_compute-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
+              <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-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:
             - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run'
               <<: *functest-jobs
       - multijob:
-          name: opnfv/functest-features:{tag}
+          name: dump all campaign data
           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'
+            - name: 'functest-{tag}-zip'
               <<: *functest-jobs
 
 - job-template:
           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}-refstack_compute-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
+              <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-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}-refstack_compute-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run'
+              <<: *functest-jobs
+            - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run'
+              <<: *functest-jobs
             - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-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'