Disable blocking on buildable queue (Functest)
[releng.git] / jjb / functest / functest-virtual.yaml
index a25f980..91dacb1 100644 (file)
 ---
+- functest-defaultparameters: &functest-defaultparameters
+    name: 'functest-defaultparameters'
+    repo: opnfv
+    tag:
+      - gambia:
+          branch: stable/gambia
+      - hunter:
+          branch: stable/hunter
+      - latest:
+          branch: master
+
+- job:
+    name: alpine-pull
+    parameters:
+      - functest-virtual-defaults
+    builders:
+      - shell: sudo docker pull alpine:3.8
+
 - job-template:
-    name: '{repo}-functest-{container}-{tag}-{test}'
+    name: '{repo}-functest-{container}-{tag}-pull'
+    parameters:
+      - functest-virtual-defaults
+    builders:
+      - shell: sudo docker pull {repo}/functest-{container}:{tag}
+
+- project:
+    name: repo-functest-container-tag-pull
+    <<: *functest-defaultparameters
+    container:
+      - core
+      - tempest
+      - healthcheck
+      - smoke
+      - benchmarking
+      - components
+      - vnf
+      - features
+    jobs:
+      - '{repo}-functest-{container}-{tag}-pull'
+
+- functest-pulljobs: &functest-pulljobs
+    name: 'functest-pulljobs'
+    projects:
+      - name: 'alpine-pull'
+      - name: '{repo}-functest-core-{tag}-pull'
+      - name: '{repo}-functest-tempest-{tag}-pull'
+      - name: '{repo}-functest-healthcheck-{tag}-pull'
+      - name: '{repo}-functest-smoke-{tag}-pull'
+      - name: '{repo}-functest-benchmarking-{tag}-pull'
+      - name: '{repo}-functest-components-{tag}-pull'
+      - name: '{repo}-functest-vnf-{tag}-pull'
+      - name: '{repo}-functest-features-{tag}-pull'
+
+- job:
+    name: alpine-rmi
+    parameters:
+      - functest-virtual-defaults
+    builders:
+      - shell: sudo docker rmi alpine:3.8 || true
+
+- job-template:
+    name: '{repo}-functest-{container}-{tag}-rmi'
+    parameters:
+      - functest-virtual-defaults
+    builders:
+      - shell: sudo docker rmi {repo}/functest-{container}:{tag} || true
+
+- project:
+    name: repo-functest-container-tag-rmi
+    <<: *functest-defaultparameters
+    container:
+      - core
+      - tempest
+      - healthcheck
+      - smoke
+      - benchmarking
+      - components
+      - vnf
+      - features
+    jobs:
+      - '{repo}-functest-{container}-{tag}-rmi'
+
+- job-template:
+    name: '{repo}-functest-{container}-{test}-{tag}-run'
     parameters:
       - functest-virtual-defaults
     builders:
       - shell: |
-          sudo docker run \
+          sudo docker run --rm \
             -e EXTERNAL_NETWORK=public1 \
             -v /home/opnfv/functest/results/$JOB_NAME-$BUILD_ID:\
           /home/opnfv/functest/results \
             -v /home/opnfv/functest/openstack.creds:\
           /home/opnfv/functest/conf/env_file \
             -v /home/opnfv/functest/images:/home/opnfv/functest/images \
-            {repo}/functest-{container}:{tag} run_tests -t {test}
+            -v /home/opnfv/functest/tempest_blacklist.yaml:\
+          /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/\
+          tempest/custom_tests/blacklist.yaml \
+            -v /home/opnfv/functest/rally_blacklist.yaml:\
+          /usr/lib/python2.7/site-packages/functest/opnfv_tests/openstack/\
+          rally/blacklist.yaml \
+            {repo}/functest-{container}:{tag} run_tests -t {test} || \
+            export RES=$?
+          gsutil -m cp -r /home/opnfv/functest/results/$JOB_NAME-$BUILD_ID \
+            gs://artifacts.opnfv.org/functest/ > /dev/null
+          find /home/opnfv/functest/results/$JOB_NAME-$BUILD_ID -type f \
+            -printf \
+            "http://artifacts.opnfv.org/functest/$JOB_NAME-$BUILD_ID/%P\n"
+          sudo rm -rf /home/opnfv/functest/results/$JOB_NAME-$BUILD_ID
+          exit $RES
 
 - project:
-    name: 'opnfv-functest-healthcheck'
+    name: repo-functest-healthcheck-test-tag-run
+    <<: *functest-defaultparameters
     container: healthcheck
-    repo: opnfv
-    tag:
-      - gambia
-      - hunter
-      - latest
     test:
       - connection_check
       - tenantnetwork1
       - api_check
       - snaps_health_check
     jobs:
-      - '{repo}-functest-{container}-{tag}-{test}'
+      - '{repo}-functest-{container}-{test}-{tag}-run'
+
+- functest-healthcheckjobs: &functest-healthcheckjobs
+    name: 'functest-healthcheckjobs'
+    projects:
+      - name: '{repo}-functest-healthcheck-connection_check-{tag}-run'
+      - name: '{repo}-functest-healthcheck-tenantnetwork1-{tag}-run'
+      - name: '{repo}-functest-healthcheck-tenantnetwork2-{tag}-run'
+      - name: '{repo}-functest-healthcheck-vmready1-{tag}-run'
+      - name: '{repo}-functest-healthcheck-vmready2-{tag}-run'
+      - name: '{repo}-functest-healthcheck-singlevm1-{tag}-run'
+      - name: '{repo}-functest-healthcheck-singlevm2-{tag}-run'
+      - name: '{repo}-functest-healthcheck-vping_ssh-{tag}-run'
+      - name: '{repo}-functest-healthcheck-vping_userdata-{tag}-run'
+      - name: '{repo}-functest-healthcheck-cinder_test-{tag}-run'
+      - name: '{repo}-functest-healthcheck-odl-{tag}-run'
+      - name: '{repo}-functest-healthcheck-api_check-{tag}-run'
+      - name: '{repo}-functest-healthcheck-snaps_health_check-{tag}-run'
 
 - project:
-    name: 'opnfv-functest-smoke'
+    name: repo-functest-smoke-test-tag-run
+    <<: *functest-defaultparameters
     container: smoke
-    repo: opnfv
-    tag:
-      - gambia
-      - hunter
-      - latest
     test:
       - tempest_smoke
+      - neutron-tempest-plugin-api
+      - rally_sanity
+      - rally_jobs
       - refstack_defcore
       - patrole
+      - snaps_smoke
+      - neutron_trunk
+      - networking-bgpvpn
+      - networking-sfc
+      - barbican
+    jobs:
+      - '{repo}-functest-{container}-{test}-{tag}-run'
+
+- functest-smokejobs: &functest-smokejobs
+    name: 'functest-smokejobs'
+    projects:
+      - name: '{repo}-functest-smoke-tempest_smoke-{tag}-run'
+      - name: '{repo}-functest-smoke-neutron-tempest-plugin-api-{tag}-run'
+      - name: '{repo}-functest-smoke-rally_sanity-{tag}-run'
+      - name: '{repo}-functest-smoke-rally_jobs-{tag}-run'
+      - name: '{repo}-functest-smoke-refstack_defcore-{tag}-run'
+      - name: '{repo}-functest-smoke-patrole-{tag}-run'
+      - name: '{repo}-functest-smoke-snaps_smoke-{tag}-run'
+      - name: '{repo}-functest-smoke-neutron_trunk-{tag}-run'
+      - name: '{repo}-functest-smoke-networking-bgpvpn-{tag}-run'
+      - name: '{repo}-functest-smoke-networking-sfc-{tag}-run'
+      - name: '{repo}-functest-smoke-barbican-{tag}-run'
+
+- project:
+    name: repo-functest-benchmarking-test-tag-run'
+    <<: *functest-defaultparameters
+    container: benchmarking
+    test:
+      - vmtp
+      - shaker
+    jobs:
+      - '{repo}-functest-{container}-{test}-{tag}-run'
+
+- functest-benchmarkingjobs: &functest-benchmarkingjobs
+    name: 'functest-benchmarkingjobs'
+    projects:
+      - name: '{repo}-functest-benchmarking-vmtp-{tag}-run'
+      - name: '{repo}-functest-benchmarking-shaker-{tag}-run'
+
+- project:
+    name: repo-functest-components-test-tag-run
+    <<: *functest-defaultparameters
+    container: components
+    test:
+      - tempest_full
+      - tempest_scenario
+      - rally_full
+    jobs:
+      - '{repo}-functest-{container}-{test}-{tag}-run'
+
+- functest-componentsjobs: &functest-componentsjobs
+    name: 'functest-componentsjobs'
+    projects:
+      - name: '{repo}-functest-components-tempest_full-{tag}-run'
+      - name: '{repo}-functest-components-tempest_scenario-{tag}-run'
+      # - name: '{repo}-functest-components-rally_full-{tag}-run'
+
+- project:
+    name: repo-functest-vnf-{test}-{tag}-run
+    <<: *functest-defaultparameters
+    container: vnf
+    test:
+      - cloudify
+      - cloudify_ims
+      - heat_ims
+      - vyos_vrouter
+      - juju_epc
+    jobs:
+      - '{repo}-functest-{container}-{test}-{tag}-run'
+
+- functest-vnfjobs: &functest-vnfjobs
+    name: 'functest-vnfjobs'
+    projects:
+      - name: '{repo}-functest-vnf-cloudify-{tag}-run'
+      - name: '{repo}-functest-vnf-cloudify_ims-{tag}-run'
+      - name: '{repo}-functest-vnf-heat_ims-{tag}-run'
+      - name: '{repo}-functest-vnf-vyos_vrouter-{tag}-run'
+      - name: '{repo}-functest-vnf-juju_epc-{tag}-run'
+
+- project:
+    name: repo-functest-features-test-tag-run
+    <<: *functest-defaultparameters
+    container: features
+    test:
+      - doctor-notification
+      - bgpvpn
+      - functest-odl-sfc
+      - barometercollectd
+      - vgpu
+      - stor4nfv_os
+    jobs:
+      - '{repo}-functest-{container}-{test}-{tag}-run'
+
+- functest-featuresjobs: &functest-featuresjobs
+    name: 'functest-featuresjobs'
+    projects:
+      - name: '{repo}-functest-features-doctor-notification-{tag}-run'
+      - name: '{repo}-functest-features-bgpvpn-{tag}-run'
+      - name: '{repo}-functest-features-functest-odl-sfc-{tag}-run'
+      - name: '{repo}-functest-features-barometercollectd-{tag}-run'
+      - name: '{repo}-functest-features-vgpu-{tag}-run'
+      - name: '{repo}-functest-features-stor4nfv_os-{tag}-run'
+
+- functest-advjobs: &functest-advjobs
+    name: '&functest-advjobs'
+    projects:
+      - name: '{repo}-functest-smoke-tempest_smoke-{tag}-run'
+      - name: '{repo}-functest-smoke-neutron-tempest-plugin-api-{tag}-run'
+      - name: '{repo}-functest-smoke-rally_sanity-{tag}-run'
+      - name: '{repo}-functest-smoke-rally_jobs-{tag}-run'
+      - name: '{repo}-functest-smoke-refstack_defcore-{tag}-run'
+      - name: '{repo}-functest-smoke-patrole-{tag}-run'
+      - name: '{repo}-functest-smoke-snaps_smoke-{tag}-run'
+      - name: '{repo}-functest-smoke-neutron_trunk-{tag}-run'
+      - name: '{repo}-functest-smoke-networking-bgpvpn-{tag}-run'
+      - name: '{repo}-functest-smoke-networking-sfc-{tag}-run'
+      - name: '{repo}-functest-smoke-barbican-{tag}-run'
+      - name: '{repo}-functest-benchmarking-vmtp-{tag}-run'
+      - name: '{repo}-functest-benchmarking-shaker-{tag}-run'
+      - name: '{repo}-functest-components-tempest_full-{tag}-run'
+      - name: '{repo}-functest-components-tempest_scenario-{tag}-run'
+      # - name: '{repo}-functest-components-rally_full-{tag}-run'
+      - name: '{repo}-functest-vnf-cloudify-{tag}-run'
+      # - name: '{repo}-functest-vnf-cloudify_ims-{tag}-run'
+      # - name: '{repo}-functest-vnf-heat_ims-{tag}-run'
+      # - name: '{repo}-functest-vnf-vyos_vrouter-{tag}-run'
+      # - name: '{repo}-functest-vnf-juju_epc-{tag}-run'
+      - name: '{repo}-functest-features-doctor-notification-{tag}-run'
+      - name: '{repo}-functest-features-bgpvpn-{tag}-run'
+      - name: '{repo}-functest-features-functest-odl-sfc-{tag}-run'
+      - name: '{repo}-functest-features-barometercollectd-{tag}-run'
+      - name: '{repo}-functest-features-vgpu-{tag}-run'
+      - name: '{repo}-functest-features-stor4nfv_os-{tag}-run'
+
+- functest-advcontainers-rmi: &functest-advcontainers-rmi
+    name: 'functest-advcontainers-rmi'
+    projects:
+      - name: '{repo}-functest-smoke-{tag}-rmi'
+      - name: '{repo}-functest-benchmarking-{tag}-rmi'
+      - name: '{repo}-functest-components-{tag}-rmi'
+      - name: '{repo}-functest-vnf-{tag}-rmi'
+      - name: '{repo}-functest-features-{tag}-rmi'
+
+- job-template:
+    name: '{repo}-functest-{tag}-daily'
+    <<: *functest-defaultparameters
+    project-type: multijob
+    triggers:
+      - timed: '@daily'
+    properties:
+      - build-blocker:
+          use-build-blocker: true
+          blocking-level: 'NODE'
+          blocking-jobs:
+            - '{repo}-functest-.*-.*'
+    parameters:
+      - functest-virtual-defaults
+    builders:
+      - multijob:
+          name: remove advanced functest containers
+          <<: *functest-advcontainers-rmi
+      - multijob:
+          name: remove functest-tempest
+          projects:
+            - name: '{repo}-functest-tempest-{tag}-rmi'
+      - multijob:
+          name: remove functest-core
+          projects:
+            - name: '{repo}-functest-core-{tag}-rmi'
+      - multijob:
+          name: remove alpine
+          projects:
+            - name: 'alpine-rmi'
+      - multijob:
+          name: pull containers
+          <<: *functest-pulljobs
+      - multijob:
+          name: healthcheck
+          <<: *functest-healthcheckjobs
+      - multijob:
+          name: advanced suites
+          <<: *functest-advjobs
+
+- project:
+    name: repo-functest-tag-daily
+    <<: *functest-defaultparameters
     jobs:
-      - '{repo}-functest-{container}-{tag}-{test}'
+      - '{repo}-functest-{tag}-daily'
+
+- functest-gateparameters: &functest-gateparameters
+    name: 'functest-gateparameters'
+    parameters:
+      - functest-virtual-defaults
+
+- functest-checkparameters: &functest-checkparameters
+    name: 'functest-checkparameters'
+    parameters:
+      - functest-virtual-defaults
+      - string:
+          name: BRANCH
+          default: '{branch}'
+
+- builder:
+    name: build-containers
+    builders:
+      - shell: |
+         case "{container}" in
+         "components")
+             args="" ;;
+         *)
+             args="--build-arg BRANCH={ref}" ;;
+         esac
+         cd docker/{container}
+         sudo docker build \
+           ${{args}} --pull=false --no-cache --force-rm=true \
+           -t {repo}/functest-{container}:{tag} .
+
+- scm:
+    name: functest-scm
+    scm:
+      - git:
+          url: https://gerrit.opnfv.org/gerrit/functest
+          refspec: '+refs/changes/*:refs/changes/*'
+          branches:
+            - '{ref}'
+
+- functest-buildparameters: &functest-buildparameters
+    name: 'functest-buildparameters'
+    container: '{container}'
+    repo: '{repo}'
+    tag: '{tag}'
+
+- job-template:
+    name: '{repo}-functest-{container}-{tag}-gate'
+    <<: *functest-gateparameters
+    scm:
+      - functest-scm:
+          ref: $GERRIT_REFSPEC
+    builders:
+      - build-containers:
+          ref: $GERRIT_REFSPEC
+          <<: *functest-buildparameters
+
+- builder:
+    name: run-tox
+    builders:
+      - shell: tox -e docs,pep8,pylint,yamllint,bashate,py27,cover
+
+- job-template:
+    name: '{repo}-functest-{tag}-ut-gate'
+    <<: *functest-gateparameters
+    scm:
+      - functest-scm:
+          ref: $GERRIT_REFSPEC
+    builders:
+      - run-tox:
+          ref: $GERRIT_REFSPEC
+          repo: '{repo}'
+          tag: '{tag}'
+
+- job-template:
+    name: '{repo}-functest-{tag}-ut-check'
+    <<: *functest-checkparameters
+    scm:
+      - functest-scm:
+          ref: $BRANCH
+    builders:
+      - run-tox:
+          ref: $BRANCH
+          repo: '{repo}'
+          tag: '{tag}'
+
+- project:
+    name: repo-functest-tag-ut-build
+    <<: *functest-defaultparameters
+    jobs:
+      - '{repo}-functest-{tag}-ut-gate'
+      - '{repo}-functest-{tag}-ut-check'
+
+- job-template:
+    name: '{repo}-functest-{container}-{tag}-check'
+    <<: *functest-checkparameters
+    scm:
+      - functest-scm:
+          ref: $BRANCH
+    builders:
+      - build-containers:
+          ref: $BRANCH
+          <<: *functest-buildparameters
+
+- project:
+    name: repo-functest-container-tag-build
+    <<: *functest-defaultparameters
+    container:
+      - core
+      - tempest
+      - healthcheck
+      - smoke
+      - benchmarking
+      - components
+      - vnf
+      - features
+    jobs:
+      - '{repo}-functest-{container}-{tag}-gate'
+      - '{repo}-functest-{container}-{tag}-check'
+
+- functest-projectparameters: &functest-projectparameters
+    name: 'functest-projectparameters'
+    current-parameters: true
+
+- job-template:
+    name: '{repo}-functest-{tag}-gate'
+    project-type: multijob
+    <<: *functest-gateparameters
+    triggers:
+      - gerrit-trigger-patchset-created:
+          project: 'functest'
+          branch: '{branch}'
+          files: '**'
+    properties:
+      - build-blocker:
+          use-build-blocker: true
+          blocking-level: 'NODE'
+          blocking-jobs:
+            - '{repo}-functest-.*-.*'
+    builders:
+      - multijob:
+          name: run tox
+          projects:
+            - name: '{repo}-functest-{tag}-ut-gate'
+              <<: *functest-projectparameters
+      - multijob:
+          name: remove advanced functest containers
+          <<: *functest-advcontainers-rmi
+      - multijob:
+          name: remove functest-tempest
+          projects:
+            - name: '{repo}-functest-tempest-{tag}-rmi'
+              <<: *functest-projectparameters
+      - multijob:
+          name: remove functest-core
+          projects:
+            - name: '{repo}-functest-core-{tag}-rmi'
+              <<: *functest-projectparameters
+      - multijob:
+          name: remove alpine
+          projects:
+            - name: 'alpine-rmi'
+              <<: *functest-projectparameters
+      - multijob:
+          name: pull alpine
+          projects:
+            - name: 'alpine-pull'
+      - multijob:
+          name: build functest-core
+          projects:
+            - name: '{repo}-functest-core-{tag}-gate'
+              <<: *functest-projectparameters
+      - multijob:
+          name: build functest-tempest
+          projects:
+            - name: '{repo}-functest-tempest-{tag}-gate'
+              <<: *functest-projectparameters
+      - multijob:
+          name: build all remaining contrainers
+          projects:
+            - name: '{repo}-functest-healthcheck-{tag}-gate'
+              <<: *functest-projectparameters
+            - name: '{repo}-functest-smoke-{tag}-gate'
+              <<: *functest-projectparameters
+            - name: '{repo}-functest-benchmarking-{tag}-gate'
+              <<: *functest-projectparameters
+            - name: '{repo}-functest-components-{tag}-gate'
+              <<: *functest-projectparameters
+            - name: '{repo}-functest-vnf-{tag}-gate'
+              <<: *functest-projectparameters
+            - name: '{repo}-functest-features-{tag}-gate'
+              <<: *functest-projectparameters
+      - multijob:
+          name: healthcheck
+          <<: *functest-healthcheckjobs
+      - multijob:
+          name: advanced suites
+          <<: *functest-advjobs
 
 - job-template:
-    name: 'functest-virtual'
+    name: '{repo}-functest-{tag}-check'
     project-type: multijob
-    node: 'functest-virtual'
+    <<: *functest-checkparameters
+    properties:
+      - build-blocker:
+          use-build-blocker: true
+          blocking-level: 'NODE'
+          blocking-jobs:
+            - '{repo}-functest-.*-.*'
     builders:
       - multijob:
-          name: functest gambia
-          projects:
-            - name: 'opnfv-functest-healthcheck-gambia-connection_check'
-            - name: 'opnfv-functest-healthcheck-gambia-tenantnetwork1'
-            - name: 'opnfv-functest-healthcheck-gambia-tenantnetwork2'
-            - name: 'opnfv-functest-healthcheck-gambia-vmready1'
-            - name: 'opnfv-functest-healthcheck-gambia-vmready2'
-            - name: 'opnfv-functest-healthcheck-gambia-singlevm1'
-            - name: 'opnfv-functest-healthcheck-gambia-singlevm2'
-            - name: 'opnfv-functest-healthcheck-gambia-vping_ssh'
-            - name: 'opnfv-functest-healthcheck-gambia-vping_userdata'
-            - name: 'opnfv-functest-healthcheck-gambia-cinder_test'
-            - name: 'opnfv-functest-healthcheck-gambia-odl'
-            - name: 'opnfv-functest-healthcheck-gambia-api_check'
-            - name: 'opnfv-functest-healthcheck-gambia-snaps_health_check'
-            - name: 'opnfv-functest-smoke-gambia-tempest_smoke'
-            - name: 'opnfv-functest-smoke-gambia-refstack_defcore'
-            - name: 'opnfv-functest-smoke-gambia-patrole'
-      - multijob:
-          name: functest hunter
-          projects:
-            - name: 'opnfv-functest-healthcheck-hunter-connection_check'
-            - name: 'opnfv-functest-healthcheck-hunter-tenantnetwork1'
-            - name: 'opnfv-functest-healthcheck-hunter-tenantnetwork2'
-            - name: 'opnfv-functest-healthcheck-hunter-vmready1'
-            - name: 'opnfv-functest-healthcheck-hunter-vmready2'
-            - name: 'opnfv-functest-healthcheck-hunter-singlevm1'
-            - name: 'opnfv-functest-healthcheck-hunter-singlevm2'
-            - name: 'opnfv-functest-healthcheck-hunter-vping_ssh'
-            - name: 'opnfv-functest-healthcheck-hunter-vping_userdata'
-            - name: 'opnfv-functest-healthcheck-hunter-cinder_test'
-            - name: 'opnfv-functest-healthcheck-hunter-odl'
-            - name: 'opnfv-functest-healthcheck-hunter-api_check'
-            - name: 'opnfv-functest-healthcheck-hunter-snaps_health_check'
-            - name: 'opnfv-functest-smoke-hunter-tempest_smoke'
-            - name: 'opnfv-functest-smoke-hunter-refstack_defcore'
-            - name: 'opnfv-functest-smoke-hunter-patrole'
-      - multijob:
-          name: functest latest
-          projects:
-            - name: 'opnfv-functest-healthcheck-latest-connection_check'
-            - name: 'opnfv-functest-healthcheck-latest-tenantnetwork1'
-            - name: 'opnfv-functest-healthcheck-latest-tenantnetwork2'
-            - name: 'opnfv-functest-healthcheck-latest-vmready1'
-            - name: 'opnfv-functest-healthcheck-latest-vmready2'
-            - name: 'opnfv-functest-healthcheck-latest-singlevm1'
-            - name: 'opnfv-functest-healthcheck-latest-singlevm2'
-            - name: 'opnfv-functest-healthcheck-latest-vping_ssh'
-            - name: 'opnfv-functest-healthcheck-latest-vping_userdata'
-            - name: 'opnfv-functest-healthcheck-hunter-cinder_test'
-            - name: 'opnfv-functest-healthcheck-latest-odl'
-            - name: 'opnfv-functest-healthcheck-hunter-api_check'
-            - name: 'opnfv-functest-healthcheck-latest-snaps_health_check'
-            - name: 'opnfv-functest-smoke-latest-tempest_smoke'
-            - name: 'opnfv-functest-smoke-latest-refstack_defcore'
-            - name: 'opnfv-functest-smoke-latest-patrole'
+          name: run tox
+          projects:
+            - name: '{repo}-functest-{tag}-ut-check'
+              <<: *functest-projectparameters
+      - multijob:
+          name: remove advanced functest containers
+          <<: *functest-advcontainers-rmi
+      - multijob:
+          name: remove functest-tempest
+          projects:
+            - name: '{repo}-functest-tempest-{tag}-rmi'
+              <<: *functest-projectparameters
+      - multijob:
+          name: remove functest-core
+          projects:
+            - name: '{repo}-functest-core-{tag}-rmi'
+              <<: *functest-projectparameters
+      - multijob:
+          name: remove alpine
+          projects:
+            - name: 'alpine-rmi'
+              <<: *functest-projectparameters
+      - multijob:
+          name: pull alpine
+          projects:
+            - name: 'alpine-pull'
+      - multijob:
+          name: build functest-core
+          projects:
+            - name: '{repo}-functest-core-{tag}-check'
+              <<: *functest-projectparameters
+      - multijob:
+          name: build functest-tempest
+          projects:
+            - name: '{repo}-functest-tempest-{tag}-check'
+              <<: *functest-projectparameters
+      - multijob:
+          name: build all remaining contrainers
+          projects:
+            - name: '{repo}-functest-healthcheck-{tag}-check'
+              <<: *functest-projectparameters
+            - name: '{repo}-functest-smoke-{tag}-check'
+              <<: *functest-projectparameters
+            - name: '{repo}-functest-benchmarking-{tag}-check'
+              <<: *functest-projectparameters
+            - name: '{repo}-functest-components-{tag}-check'
+              <<: *functest-projectparameters
+            - name: '{repo}-functest-vnf-{tag}-check'
+              <<: *functest-projectparameters
+            - name: '{repo}-functest-features-{tag}-check'
+              <<: *functest-projectparameters
+      - multijob:
+          name: healthcheck
+          <<: *functest-healthcheckjobs
+      - multijob:
+          name: advanced suites
+          <<: *functest-advjobs
 
 - project:
-    name: 'functest-virtual'
+    name: repo-functest-tag-build
+    <<: *functest-defaultparameters
     jobs:
-      - 'functest-virtual'
+      - '{repo}-functest-{tag}-gate'
+      - '{repo}-functest-{tag}-check'