name: 'functest-defaultparameters'
repo: opnfv
tag:
- - gambia
- - hunter
- - latest
+ - gambia:
+ branch: stable/gambia
+ - hunter:
+ branch: stable/hunter
+ - master:
+ branch: master
-- functest-buildparameters: &functest-buildparameters
- name: 'functest-buildparameters'
+- job-template:
+ name: '{repo}-functest-{container}-{tag}-pull'
parameters:
- functest-virtual-defaults
- - string:
- name: branch
- default: master
+ builders:
+ - shell: sudo docker pull {repo}/functest-{container}:{tag}
+
+- project:
+ name: repo-functest-container-tag-pull
+ <<: *functest-defaultparameters
+ container:
+ - healthcheck
+ - smoke
+ - benchmarking
+ - components
+ - vnf
+ - features
+ jobs:
+ - '{repo}-functest-{container}-{tag}-pull'
+
+- functest-pulljobs: &functest-pulljobs
+ name: 'functest-pulljobs'
+ projects:
+ - 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-template:
name: '{repo}-functest-{container}-{test}-{tag}-run'
- 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 \
+ -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}
- project:
test:
- tempest_smoke
- neutron-tempest-plugin-api
+ - rally_sanity
- rally_jobs
- refstack_defcore
- patrole
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'
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'
+ # - name: '{repo}-functest-components-rally_full-{tag}-run'
- project:
name: repo-functest-vnf-{test}-{tag}-run
name: '{repo}-functest-{tag}-daily'
<<: *functest-defaultparameters
project-type: multijob
+ triggers:
+ - timed: '@daily'
+ properties:
+ - build-blocker:
+ use-build-blocker: true
+ block-level: 'NODE'
+ queue-scanning: 'BUILDABLE'
+ blocking-jobs:
+ - '{repo}-functest-.*-.*'
parameters:
- functest-virtual-defaults
builders:
+ - multijob:
+ name: pull containers
+ <<: *functest-pulljobs
- multijob:
name: healthcheck
<<: *functest-healthcheckjobs
- multijob:
name: benchmarking
<<: *functest-benchmarkingjobs
+ - multijob:
+ name: components
+ <<: *functest-componentsjobs
+ - multijob:
+ name: vnf
+ <<: *functest-vnfjobs
- multijob:
name: features
<<: *functest-featuresjobs
jobs:
- '{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-gerrit
+ name: functest-scm
scm:
- git:
url: https://gerrit.opnfv.org/gerrit/functest
refspec: '+refs/changes/*:refs/changes/*'
branches:
- - ${branch}
+ - '{ref}'
+
+- functest-buildparameters: &functest-buildparameters
+ name: 'functest-buildparameters'
+ container: '{container}'
+ repo: '{repo}'
+ tag: '{tag}'
- job-template:
- name: '{repo}-functest-{container}-{tag}-build'
- <<: *functest-buildparameters
+ name: '{repo}-functest-{container}-{tag}-gate'
+ <<: *functest-gateparameters
scm:
- - functest-gerrit
+ - functest-scm:
+ ref: $GERRIT_REFSPEC
builders:
- - shell: |
- case "{container}" in
- "components")
- args="" ;;
- *)
- args="--build-arg BRANCH=${{branch}}" ;;
- esac
- cd docker/$(echo {container} |cut -d\- -f 2)
- sudo docker build \
- ${{args}} --pull=false --no-cache --force-rm=true \
- -t {repo}/functest-{container}:{tag} .
+ - build-containers:
+ ref: $GERRIT_REFSPEC
+ <<: *functest-buildparameters
+
+- 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
- vnf
- features
jobs:
- - '{repo}-functest-{container}-{tag}-build'
+ - '{repo}-functest-{container}-{tag}-gate'
+ - '{repo}-functest-{container}-{tag}-check'
- functest-projectparameters: &functest-projectparameters
name: 'functest-projectparameters'
- job-template:
name: '{repo}-functest-{tag}-gate'
project-type: multijob
- <<: *functest-buildparameters
+ <<: *functest-gateparameters
+ triggers:
+ - gerrit-trigger-patchset-created:
+ project: 'functest'
+ branch: '{branch}'
+ files: '**'
+ properties:
+ - build-blocker:
+ use-build-blocker: true
+ block-level: 'NODE'
+ queue-scanning: 'BUILDABLE'
+ blocking-jobs:
+ - '{repo}-functest-.*-.*'
builders:
- multijob:
name: build functest-core
projects:
- - name: '{repo}-functest-core-{tag}-build'
+ - name: '{repo}-functest-core-{tag}-gate'
<<: *functest-projectparameters
- multijob:
name: build functest-tempest
projects:
- - name: '{repo}-functest-tempest-{tag}-build'
+ - name: '{repo}-functest-tempest-{tag}-gate'
<<: *functest-projectparameters
- multijob:
name: build all remaining contrainers
projects:
- - name: '{repo}-functest-healthcheck-{tag}-build'
+ - name: '{repo}-functest-healthcheck-{tag}-gate'
<<: *functest-projectparameters
- - name: '{repo}-functest-smoke-{tag}-build'
+ - name: '{repo}-functest-smoke-{tag}-gate'
<<: *functest-projectparameters
- - name: '{repo}-functest-benchmarking-{tag}-build'
+ - name: '{repo}-functest-benchmarking-{tag}-gate'
<<: *functest-projectparameters
- - name: '{repo}-functest-components-{tag}-build'
+ - name: '{repo}-functest-components-{tag}-gate'
<<: *functest-projectparameters
- - name: '{repo}-functest-vnf-{tag}-build'
+ - name: '{repo}-functest-vnf-{tag}-gate'
<<: *functest-projectparameters
- - name: '{repo}-functest-features-{tag}-build'
+ - name: '{repo}-functest-features-{tag}-gate'
<<: *functest-projectparameters
- multijob:
name: healthcheck
- multijob:
name: benchmarking
<<: *functest-benchmarkingjobs
+ - multijob:
+ name: components
+ <<: *functest-componentsjobs
+ # - multijob:
+ # name: vnf
+ # <<: *functest-vnfjobs
+ - multijob:
+ name: features
+ <<: *functest-featuresjobs
+
+- job-template:
+ name: '{repo}-functest-{tag}-check'
+ project-type: multijob
+ <<: *functest-checkparameters
+ properties:
+ - build-blocker:
+ use-build-blocker: true
+ block-level: 'NODE'
+ queue-scanning: 'BUILDABLE'
+ blocking-jobs:
+ - '{repo}-functest-.*-.*'
+ builders:
+ - 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: smoke
+ <<: *functest-smokejobs
+ - multijob:
+ name: benchmarking
+ <<: *functest-benchmarkingjobs
+ - multijob:
+ name: components
+ <<: *functest-componentsjobs
+ # - multijob:
+ # name: vnf
+ # <<: *functest-vnfjobs
- multijob:
name: features
<<: *functest-featuresjobs
- project:
- name: repo-functest-tag-gate
+ name: repo-functest-tag-build
<<: *functest-defaultparameters
jobs:
- '{repo}-functest-{tag}-gate'
+ - '{repo}-functest-{tag}-check'