X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Freleng%2Ffunctest-docker.yml;h=bfeae5eaab76080137d006c7e56296d8227b1b97;hb=d64dd77877536e19ff34beef53b688978f782ae7;hp=6c131604b8607420b51b5876ef7a1fac950ab570;hpb=b314f036cc89c9266a40383483ce5682ce4b0eff;p=releng.git diff --git a/jjb/releng/functest-docker.yml b/jjb/releng/functest-docker.yml index 6c131604b..bfeae5eaa 100644 --- a/jjb/releng/functest-docker.yml +++ b/jjb/releng/functest-docker.yml @@ -37,36 +37,35 @@ build-job-settings: &build-job-settings current-parameters: false git-revision: true - node-parameters: true + node-parameters: false predefined-parameters: | PUSH_IMAGE=$PUSH_IMAGE COMMIT_ID=$COMMIT_ID - RELEASE_VERSION=$RELEASE_VERSION + GERRIT_REFNAME=$GERRIT_REFNAME 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 + node-parameters: false + predefined-parameters: + GERRIT_REFNAME=$GERRIT_REFNAME 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}" + - "functest-docker-{stream}" + - "functest-{image}-docker-build-{arch_tag}-{stream}" + - "functest-{image}-docker-manifest-{stream}" + ######################## # job templates ######################## - job-template: - name: 'functest-docker-build-push-{arch_tag}-{stream}' + name: 'functest-docker-{stream}' project-type: multijob @@ -76,12 +75,8 @@ - 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" + slave_label: 'opnfv-build-ubuntu' + arch_tag: 'amd64' properties: - throttle: @@ -94,119 +89,144 @@ triggers: - pollscm: cron: "*/30 * * * *" + - gerrit-trigger-tag-created: + project: '{project}' builders: - multijob: - name: 'build-base-img-create-manifest' - execution-type: SEQUENTIAL + name: 'build functest-core images' + execution-type: PARALLEL projects: - - name: 'functest-core-build-push-{arch_tag}-{stream}' + - name: 'functest-core-docker-build-amd64-{stream}' <<: *build-job-settings - - name: 'functest-core-create-manifest-{arch_tag}-{stream}' + - name: 'functest-core-docker-build-arm64-{stream}' + <<: *build-job-settings + - multijob: + name: 'publish functest-core manifests' + execution-type: PARALLEL + projects: + - name: 'functest-core-docker-manifest-{stream}' <<: *manifest-job-settings - multijob: - name: 'build-child-img' + name: 'build all functest images' condition: SUCCESSFUL execution-type: PARALLEL projects: - - name: 'functest-healthcheck-build-push-{arch_tag}-{stream}' + - name: 'functest-healthcheck-docker-build-amd64-{stream}' + <<: *build-job-settings + - name: 'functest-healthcheck-docker-build-arm64-{stream}' + <<: *build-job-settings + - name: 'functest-features-docker-build-amd64-{stream}' + <<: *build-job-settings + - name: 'functest-features-docker-build-arm64-{stream}' + <<: *build-job-settings + - name: 'functest-components-docker-build-amd64-{stream}' + <<: *build-job-settings + - name: 'functest-components-docker-build-arm64-{stream}' + <<: *build-job-settings + - name: 'functest-parser-docker-build-amd64-{stream}' <<: *build-job-settings - - name: 'functest-features-build-push-{arch_tag}-{stream}' + - name: 'functest-parser-docker-build-arm64-{stream}' <<: *build-job-settings - - name: 'functest-components-build-push-{arch_tag}-{stream}' + - name: 'functest-smoke-docker-build-amd64-{stream}' <<: *build-job-settings - - name: 'functest-parser-build-push-{arch_tag}-{stream}' + - name: 'functest-smoke-docker-build-arm64-{stream}' <<: *build-job-settings - - name: 'functest-smoke-build-push-{arch_tag}-{stream}' + - name: 'functest-vnf-docker-build-amd64-{stream}' <<: *build-job-settings - - name: 'functest-vnf-build-push-{arch_tag}-{stream}' + - name: 'functest-vnf-docker-build-arm64-{stream}' <<: *build-job-settings - - name: 'functest-restapi-build-push-{arch_tag}-{stream}' + - name: 'functest-restapi-docker-build-amd64-{stream}' + <<: *build-job-settings + - name: 'functest-restapi-docker-build-arm64-{stream}' <<: *build-job-settings - multijob: - name: 'create-img-manifest' + name: 'publish all manifests' condition: SUCCESSFUL execution-type: PARALLEL projects: - - name: 'functest-healthcheck-create-manifest-{arch_tag}-{stream}' + - name: 'functest-healthcheck-docker-manifest-{stream}' <<: *manifest-job-settings - - name: 'functest-features-create-manifest-{arch_tag}-{stream}' + - name: 'functest-features-docker-manifest-{stream}' <<: *manifest-job-settings - - name: 'functest-components-create-manifest-{arch_tag}-{stream}' + - name: 'functest-components-docker-manifest-{stream}' <<: *manifest-job-settings - - name: 'functest-parser-create-manifest-{arch_tag}-{stream}' + - name: 'functest-parser-docker-manifest-{stream}' <<: *manifest-job-settings - - name: 'functest-smoke-create-manifest-{arch_tag}-{stream}' + - name: 'functest-smoke-docker-manifest-{stream}' <<: *manifest-job-settings - - name: 'functest-vnf-create-manifest-{arch_tag}-{stream}' + - name: 'functest-vnf-docker-manifest-{stream}' <<: *manifest-job-settings - - name: 'functest-restapi-create-manifest-{arch_tag}-{stream}' + - name: 'functest-restapi-docker-manifest-{stream}' <<: *manifest-job-settings publishers: - - 'functest-{arch_tag}-recipients' + - 'functest-amd64-recipients' + - 'functest-arm64-recipients' - job-template: - - name: 'functest-{image}-build-push-{arch_tag}-{stream}' - + name: 'functest-{image}-docker-build-{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 + - shell: | + #!/bin/bash -ex + case "{arch_tag}" in + "arm64") + sudo amd64_dirs= arm64_dirs=docker/{image} bash ./build.sh ;; + *) + sudo amd64_dirs=docker/{image} arm64_dirs= bash ./build.sh ;; + esac + exit $? - job-template: - - name: 'functest-{image}-create-manifest-{arch_tag}-{stream}' - - disabled: '{obj:disabled}' + name: 'functest-{image}-docker-manifest-{stream}' parameters: - - job-parameters: + - project-parameter: project: '{project}' branch: '{branch}' - slave_label: '{slave_label}' - arch_tag: '{arch_tag}' + - label: + name: SLAVE_LABEL + default: 'opnfv-build-ubuntu' + description: 'Slave label on Jenkins' - string: - name: DOCKER_REPO_NAME - default: "opnfv/functest-{image}" - description: "Dockerhub repo to be pushed to." + name: PROJECT + default: "{project}" + description: "Project name used to enable job conditions" - string: - name: DOCKER_DIR - default: "docker/{image}" - description: "Directory containing files needed by the Dockerfile" + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: REPO + default: "opnfv" + description: "Repository name for functest images" - builders: - - shell: - !include-raw-escape: ./opnfv-manifest.sh - scm: - - git-scm + disabled: '{obj:disabled}' - publishers: - - 'functest-{arch_tag}-recipients' + builders: + - shell: | + #!/bin/bash -ex + case "{stream}" in + "master") + tag="latest" ;; + *) + tag="{stream}" ;; + esac + sudo manifest-tool push from-args \ + --platforms linux/amd64,linux/arm64 \ + --template $REPO/functest-{image}:ARCH-$tag \ + --target $REPO/functest-{image}:$tag + exit $? # parameter macro - parameter: @@ -232,9 +252,9 @@ default: "" description: "commit id to make a snapshot docker image" - string: - name: RELEASE_VERSION + name: GERRIT_REFNAME default: "" - description: "Docker tag to be built, e.g. 5.0.0, opnfv-5.0.0, 5.0.RC1" + description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1" - string: name: DOCKERFILE default: "Dockerfile" @@ -247,6 +267,10 @@ name: PROJECT default: "{project}" description: "Project name used to enable job conditions" + - string: + name: REPO + default: "opnfv" + description: "Repository name for functest images" # publisher macros - publisher: