diff options
Diffstat (limited to 'jjb/releng/functest-docker.yml')
-rw-r--r-- | jjb/releng/functest-docker.yml | 268 |
1 files changed, 268 insertions, 0 deletions
diff --git a/jjb/releng/functest-docker.yml b/jjb/releng/functest-docker.yml new file mode 100644 index 000000000..6c131604b --- /dev/null +++ b/jjb/releng/functest-docker.yml @@ -0,0 +1,268 @@ +--- +############################################## +# job configuration for docker build and push +############################################## +- project: + + name: functest-docker + + project: functest + + stream: + - master: + branch: '{stream}' + disabled: false + - euphrates: + branch: 'stable/{stream}' + disabled: false + + arch_tag: + - 'amd64': + slave_label: 'opnfv-build-ubuntu' + - 'arm64': + slave_label: 'opnfv-build-ubuntu-arm' + + # yamllint disable rule:key-duplicates + image: + - 'core' + - 'healthcheck' + - 'features' + - 'components' + - 'parser' + - 'smoke' + - 'vnf' + - 'restapi' + + # settings for jobs run in multijob phases + build-job-settings: &build-job-settings + current-parameters: false + git-revision: true + node-parameters: true + predefined-parameters: | + PUSH_IMAGE=$PUSH_IMAGE + COMMIT_ID=$COMMIT_ID + RELEASE_VERSION=$RELEASE_VERSION + DOCKERFILE=$DOCKERFILE + ARCH_TAG=$ARCH_TAG + kill-phase-on: FAILURE + abort-all-jobs: false + + manifest-job-settings: &manifest-job-settings + current-parameters: false + git-revision: true + node-parameters: true + predefined-parameters: | + RELEASE_VERSION=$RELEASE_VERSION + ARCH_TAG=$ARCH_TAG + kill-phase-on: FAILURE + abort-all-jobs: false + + # yamllint enable rule:key-duplicates + jobs: + - "functest-docker-build-push-{arch_tag}-{stream}" + - "functest-{image}-build-push-{arch_tag}-{stream}" + - "functest-{image}-create-manifest-{arch_tag}-{stream}" +######################## +# job templates +######################## +- job-template: + name: 'functest-docker-build-push-{arch_tag}-{stream}' + + project-type: multijob + + disabled: '{obj:disabled}' + + parameters: + - job-parameters: + project: '{project}' + branch: '{branch}' + slave_label: '{slave_label}' + arch_tag: '{arch_tag}' + - string: + name: ARCH_TAG + default: "{arch_tag}" + description: "If set, this value will be added to the docker image tag as a prefix" + + properties: + - throttle: + max-per-node: 1 + option: 'project' + + scm: + - git-scm + + triggers: + - pollscm: + cron: "*/30 * * * *" + + builders: + - multijob: + name: 'build-base-img-create-manifest' + execution-type: SEQUENTIAL + projects: + - name: 'functest-core-build-push-{arch_tag}-{stream}' + <<: *build-job-settings + - name: 'functest-core-create-manifest-{arch_tag}-{stream}' + <<: *manifest-job-settings + - multijob: + name: 'build-child-img' + condition: SUCCESSFUL + execution-type: PARALLEL + projects: + - name: 'functest-healthcheck-build-push-{arch_tag}-{stream}' + <<: *build-job-settings + - name: 'functest-features-build-push-{arch_tag}-{stream}' + <<: *build-job-settings + - name: 'functest-components-build-push-{arch_tag}-{stream}' + <<: *build-job-settings + - name: 'functest-parser-build-push-{arch_tag}-{stream}' + <<: *build-job-settings + - name: 'functest-smoke-build-push-{arch_tag}-{stream}' + <<: *build-job-settings + - name: 'functest-vnf-build-push-{arch_tag}-{stream}' + <<: *build-job-settings + - name: 'functest-restapi-build-push-{arch_tag}-{stream}' + <<: *build-job-settings + - multijob: + name: 'create-img-manifest' + condition: SUCCESSFUL + execution-type: PARALLEL + projects: + - name: 'functest-healthcheck-create-manifest-{arch_tag}-{stream}' + <<: *manifest-job-settings + - name: 'functest-features-create-manifest-{arch_tag}-{stream}' + <<: *manifest-job-settings + - name: 'functest-components-create-manifest-{arch_tag}-{stream}' + <<: *manifest-job-settings + - name: 'functest-parser-create-manifest-{arch_tag}-{stream}' + <<: *manifest-job-settings + - name: 'functest-smoke-create-manifest-{arch_tag}-{stream}' + <<: *manifest-job-settings + - name: 'functest-vnf-create-manifest-{arch_tag}-{stream}' + <<: *manifest-job-settings + - name: 'functest-restapi-create-manifest-{arch_tag}-{stream}' + <<: *manifest-job-settings + + publishers: + - 'functest-{arch_tag}-recipients' + +- job-template: + + name: 'functest-{image}-build-push-{arch_tag}-{stream}' + + disabled: '{obj:disabled}' + + parameters: + - job-parameters: + project: '{project}' + branch: '{branch}' + slave_label: '{slave_label}' + arch_tag: '{arch_tag}' + - string: + name: DOCKER_REPO_NAME + default: "opnfv/functest-{image}" + description: "Dockerhub repo to be pushed to." + - string: + name: DOCKER_DIR + default: "docker/{image}" + description: "Directory containing files needed by the Dockerfile" + + scm: + - git-scm + + publishers: + - 'functest-{arch_tag}-recipients' + + builders: + - shell: + !include-raw-escape: ./opnfv-docker.sh + +- job-template: + + name: 'functest-{image}-create-manifest-{arch_tag}-{stream}' + + disabled: '{obj:disabled}' + + parameters: + - job-parameters: + project: '{project}' + branch: '{branch}' + slave_label: '{slave_label}' + arch_tag: '{arch_tag}' + - string: + name: DOCKER_REPO_NAME + default: "opnfv/functest-{image}" + description: "Dockerhub repo to be pushed to." + - string: + name: DOCKER_DIR + default: "docker/{image}" + description: "Directory containing files needed by the Dockerfile" + + builders: + - shell: + !include-raw-escape: ./opnfv-manifest.sh + + scm: + - git-scm + + publishers: + - 'functest-{arch_tag}-recipients' + +# parameter macro +- parameter: + name: job-parameters + parameters: + - project-parameter: + project: '{project}' + branch: '{branch}' + - label: + name: SLAVE_LABEL + default: '{slave_label}' + description: 'Slave label on Jenkins' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: PUSH_IMAGE + default: "true" + description: "To enable/disable pushing the image to Dockerhub." + - string: + name: COMMIT_ID + default: "" + description: "commit id to make a snapshot docker image" + - string: + name: RELEASE_VERSION + default: "" + description: "Docker tag to be built, e.g. 5.0.0, opnfv-5.0.0, 5.0.RC1" + - string: + name: DOCKERFILE + default: "Dockerfile" + description: "Dockerfile to use for creating the image." + - string: + name: ARCH_TAG + default: "{arch_tag}" + description: "If set, this value will be added to the docker image tag as a prefix" + - string: + name: PROJECT + default: "{project}" + description: "Project name used to enable job conditions" + +# publisher macros +- publisher: + name: 'functest-arm64-recipients' + publishers: + - email: + recipients: > + cristina.pauna@enea.com + alexandru.avadanii@enea.com + delia.popescu@enea.com + +- publisher: + name: 'functest-amd64-recipients' + publishers: + - email: + recipients: > + jalausuch@suse.com morgan.richomme@orange.com + cedric.ollivier@orange.com feng.xiaowei@zte.com.cn + juha.kosonen@nokia.com wangwulin@huawei.com |