X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=jjb%2Fglobal-templates-docker.yaml;h=23a554ba96e936e72ac9ed15adc95a03b8151f0a;hb=refs%2Fheads%2Fmaster;hp=eecedd464bfaf151748bf059ea1e7ec5beda4e07;hpb=7ec70d5407723e1f9f88d64c01c7386ee045163d;p=ci-management.git diff --git a/jjb/global-templates-docker.yaml b/jjb/global-templates-docker.yaml deleted file mode 100644 index eecedd464..000000000 --- a/jjb/global-templates-docker.yaml +++ /dev/null @@ -1,907 +0,0 @@ ---- -########### -# ANCHORS # -########### -- docker_job_boiler_plate: &docker_job_boiler_plate - name: docker_job_boiler_plate - - project-type: freestyle - node: '{build-node}' - - ###################### - # Default parameters # - ###################### - - branch: master - submodule-recursive: true - - # default params for docker jobs - pre_build_script: '' - post_build_script: '' - docker_root: '$WORKSPACE' - docker_build_args: '' - docker_name: 'unnamed' - # Default to LF standard 'snapshots' docker registry - docker_registry: '$DOCKER_REGISTRY:10003' - docker_tag: 'latest' - submodule-disable: false - submodule-timeout: 10 - - ##################### - # Job Configuration # - ##################### - - properties: - - lf-infra-properties: - build-days-to-keep: '{build-days-to-keep}' - - parameters: - - lf-infra-parameters: - branch: '{branch}' - project: '{project}' - stream: '{stream}' - lftools-version: '{lftools-version}' - - wrappers: - - lf-infra-wrappers: - build-timeout: '{build-timeout}' - jenkins-ssh-credential: '{jenkins-ssh-credential}' - - publishers: - - lf-infra-publish - -- docker_verify_boiler_plate: &docker_verify_boiler_plate - name: docker_verify_boiler_plate - - concurrent: true - - scm: - - gerrit-trigger-scm: - refspec: '$GERRIT_REFSPEC' - choosing-strategy: 'default' - submodule-recursive: '{submodule-recursive}' - - triggers: - - gerrit-trigger-patch-submitted: - status-context: '{project}-Docker-Verify' - server: '{server-name}' - project: '{project}' - branch: '{branch}' - files: '{files}' - -- docker_merge_boiler_plate: &docker_merge_boiler_plate - name: docker_merge_boiler_plate - - scm: - - gerrit-trigger-scm: - refspec: '$GERRIT_REFSPEC' - choosing-strategy: 'default' - submodule-recursive: '{submodule-recursive}' - - triggers: - - gerrit-trigger-patch-merged: - server: '{server-name}' - project: '{project}' - branch: '{branch}' - files: '{files}' - - pollscm: - cron: '' - -################# -# JOB TEMPLATES # -################# -- job-template: - name: '{project-name}-{stream}-merge-docker' - # Job template for Docker merge jobs - # - # The purpose of this job template is to run a docker build, and potentially - # test validation of the docker image - - <<: *docker_job_boiler_plate - # yamllint disable-line rule:key-duplicates - <<: *docker_merge_boiler_plate - - builders: - - lf-infra-pre-build - - lf-infra-docker-login: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - shell: '{pre_build_script}' - - inject: - # Docker registry is purposely not using an '_' so as to not conflict - # with the Jenkins global env var - properties-content: | - DOCKER_ARGS={docker_build_args} - DOCKER_NAME={docker_name} - DOCKER_ROOT={docker_root} - DOCKER_TAG={docker_tag} - BUILD_MODE=SNAPSHOT - DOCKERREGISTRY={docker_registry} - # Do the docker build - - shell: !include-raw: ../shell/docker-build.sh - - inject: - # Import the docker image information from the build step - properties-file: 'env_inject.txt' - # Execute any post build clean-up or testing - - shell: '{post_build_script}' - # Provided all steps have already passed, push the docker image - - shell: !include-raw: ../shell/docker-push.sh - -- job-template: - name: '{project-name}-{stream}-merge-docker-cascade-trigger' - # Job template for Docker merge jobs - # - # The purpose of this job template is to run a docker build, and potentially - # test validation of the docker image. This job is triggered by the it's corresponding - # job that builds the artifacts from which the docker image is built from. Projects - # using the {project-name}-{stream}-merge-docker job should move to this job. Because - # the {project-name}-{stream}-merge-docker has no garanties that the docker image is built - # from merged artifact. - - <<: *docker_job_boiler_plate - # yamllint disable-line rule:key-duplicates - <<: *docker_merge_boiler_plate - - builders: - - lf-infra-pre-build - - lf-infra-docker-login: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - shell: '{pre_build_script}' - - inject: - # Docker registry is purposely not using an '_' so as to not conflict - # with the Jenkins global env var - properties-content: | - DOCKER_ARGS={docker_build_args} - DOCKER_NAME={docker_name} - DOCKER_ROOT={docker_root} - DOCKER_TAG={docker_tag} - BUILD_MODE=SNAPSHOT - DOCKERREGISTRY={docker_registry} - # Do the docker build - - shell: !include-raw: ../shell/docker-build.sh - - inject: - # Import the docker image information from the build step - properties-file: 'env_inject.txt' - # Execute any post build clean-up or testing - - shell: '{post_build_script}' - # Provided all steps have already passed, push the docker image - - shell: !include-raw: ../shell/docker-push.sh - triggers: - - reverse: - jobs: - - '{parent_job}' - result: 'success' - -- job-template: - name: '{project-name}-{stream}-verify-docker' - # Job template for Docker verify jobs - # - # The purpose of this job template is to run a docker build, and potentially - # test validation of the docker image - - ###################### - # Default parameters # - ###################### - - <<: *docker_job_boiler_plate - # yamllint disable-line rule:key-duplicates - <<: *docker_verify_boiler_plate - - builders: - - lf-infra-pre-build - - lf-infra-docker-login: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - shell: '{pre_build_script}' - - inject: - # Docker registry is purposely not using an '_' so as to not conflict - # with the Jenkins global env var - properties-content: | - DOCKER_ARGS={docker_build_args} - DOCKER_NAME={docker_name} - DOCKER_ROOT={docker_root} - DOCKER_TAG={docker_tag} - BUILD_MODE=SNAPSHOT - DOCKERREGISTRY={docker_registry} - # Do the docker build - - shell: !include-raw: ../shell/docker-build.sh - - inject: - # Import the docker image information from the build step - properties-file: 'env_inject.txt' - # Execute any post build clean-up or testing - - shell: '{post_build_script}' - -- job-template: - name: '{project-name}-{stream}-verify-docker-cascade-trigger' - # Job template for Docker verify jobs - # - # The purpose of this job template is to run a docker build, and potentially - # test validation of the docker image. This job is triggered by the it's corresponding - # job that builds the artifacts from which the docker image is built from. Projects - # using the {project-name}-{stream}-verify-docker job should move to this job. Because - # the {project-name}-{stream}-verify-docker has no garanties that the docker image is built - # from merged artifact. - - ###################### - # Default parameters # - ###################### - - <<: *docker_job_boiler_plate - # yamllint disable-line rule:key-duplicates - <<: *docker_verify_boiler_plate - - builders: - - lf-infra-pre-build - - lf-infra-docker-login: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - shell: '{pre_build_script}' - - inject: - # Docker registry is purposely not using an '_' so as to not conflict - # with the Jenkins global env var - properties-content: | - DOCKER_ARGS={docker_build_args} - DOCKER_NAME={docker_name} - DOCKER_ROOT={docker_root} - DOCKER_TAG={docker_tag} - BUILD_MODE=SNAPSHOT - DOCKERREGISTRY={docker_registry} - # Do the docker build - - shell: !include-raw: ../shell/docker-build.sh - - inject: - # Import the docker image information from the build step - properties-file: 'env_inject.txt' - # Execute any post build clean-up or testing - - shell: '{post_build_script}' - triggers: - - reverse: - jobs: - - '{parent_job}' - result: 'success' - -- job-template: - name: '{project-name}-{stream}-release-version-docker-daily-no-sonar' - # Job template for Docker daily release jobs - # - # The purpose of this job template is to run "docker build and docker push" - # for projects using this template. - # - # Required Variables: - # branch: git branch (eg. stable/lithium or master) - <<: *docker_job_boiler_plate - - docker_registry: '$DOCKER_REGISTRY:10003' - - scm: - - lf-infra-gerrit-scm: - jenkins-ssh-credential: '{jenkins-ssh-credential}' - git-url: '$GIT_URL/$PROJECT' - refspec: '$GERRIT_REFSPEC' - branch: '$GERRIT_BRANCH' - submodule-recursive: true - submodule-timeout: '{submodule-timeout}' - submodule-disable: '{submodule-disable}' - choosing-strategy: default - - builders: - - lf-infra-pre-build - - lf-infra-docker-login: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - shell: '{pre_build_script}' - - inject: - # Docker registry is purposely not using an '_' so as to not conflict - # with the Jenkins global env var - properties-content: | - DOCKER_ARGS={docker_build_args} - DOCKER_NAME={docker_name} - DOCKER_ROOT={docker_root} - DOCKER_TAG={docker_tag} - DOCKERREGISTRY={docker_registry} - BUILD_MODE=STAGING - - # Do the docker build - - shell: !include-raw: ../shell/snapshot-strip.sh - - shell: !include-raw: ../shell/docker-build.sh - - inject: - # Import the docker image information from the build step - properties-file: 'env_inject.txt' - # Execute any post build clean-up or testing - - shell: '{post_build_script}' - # Provided all steps have already passed, push the docker image - - shell: !include-raw: ../shell/docker-push.sh - - triggers: - # 11 AM UTC - - timed: '@daily' - - gerrit-trigger-release-manually: - server: '{server-name}' - project: '{project}' - branch: '{branch}' - -- job-template: - name: '{project-name}-{stream}-release-version-docker-daily-no-sonar-cascade-trigger' - # Job template for Docker daily release job. - # - # The purpose of this job template is to run "docker build and docker push" - # for projects using this template. This job is triggered by the daily build - # that builds the artifacts required for building the Docker image. - # - # Required Variables: - # branch: git branch (eg. stable/lithium or master) - <<: *docker_job_boiler_plate - - docker_registry: '$DOCKER_REGISTRY:10003' - - scm: - - lf-infra-gerrit-scm: - jenkins-ssh-credential: '{jenkins-ssh-credential}' - git-url: '$GIT_URL/$PROJECT' - refspec: '$GERRIT_REFSPEC' - branch: '$GERRIT_BRANCH' - submodule-recursive: true - submodule-timeout: '{submodule-timeout}' - submodule-disable: '{submodule-disable}' - choosing-strategy: default - - builders: - - lf-infra-pre-build - - lf-infra-docker-login: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - shell: '{pre_build_script}' - - inject: - # Docker registry is purposely not using an '_' so as to not conflict - # with the Jenkins global env var - properties-content: | - DOCKER_ARGS={docker_build_args} - DOCKER_NAME={docker_name} - DOCKER_ROOT={docker_root} - DOCKER_TAG={docker_tag} - DOCKERREGISTRY={docker_registry} - BUILD_MODE=STAGING - - # Do the docker build - - shell: !include-raw: ../shell/snapshot-strip.sh - - shell: !include-raw: ../shell/docker-build.sh - - inject: - # Import the docker image information from the build step - properties-file: 'env_inject.txt' - # Execute any post build clean-up or testing - - shell: '{post_build_script}' - # Provided all steps have already passed, push the docker image - - shell: !include-raw: ../shell/docker-push.sh - - triggers: - - reverse: - jobs: - - '{parent_job}' - result: 'success' - -- job-template: - name: '{project-name}-{subproject}-{stream}-merge-docker' - # Job template for Docker merge jobs - # - # The purpose of this job template is to run a docker build, and potentially - # test validation of the docker image - - <<: *docker_job_boiler_plate - # yamllint disable-line rule:key-duplicates - <<: *docker_merge_boiler_plate - - builders: - - lf-infra-pre-build - - lf-infra-docker-login: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - shell: '{pre_build_script}' - - inject: - # Docker registry is purposely not using an '_' so as to not conflict - # with the Jenkins global env var - properties-content: | - DOCKER_ARGS={docker_build_args} - DOCKER_NAME={docker_name} - DOCKER_ROOT={docker_root} - DOCKER_TAG={docker_tag} - DOCKERREGISTRY={docker_registry} - BUILD_MODE=SNAPSHOT - # Do the docker build - - shell: !include-raw: ../shell/docker-build.sh - - inject: - # Import the docker image information from the build step - properties-file: 'env_inject.txt' - # Execute any post build clean-up or testing - - shell: '{post_build_script}' - # Provided all steps have already passed, push the docker image - - shell: !include-raw: ../shell/docker-push.sh - -- job-template: - name: '{project-name}-{subproject}-{stream}-merge-docker-cascade-trigger' - # Job template for Docker merge jobs - # - # The purpose of this job template is to run a docker build, and potentially - # test validation of the docker image. This job is triggered by the merge job - # that builds the artifacts required for building the Docker image. - - <<: *docker_job_boiler_plate - # yamllint disable-line rule:key-duplicates - <<: *docker_merge_boiler_plate - - builders: - - lf-infra-pre-build - - lf-infra-docker-login: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - shell: '{pre_build_script}' - - inject: - # Docker registry is purposely not using an '_' so as to not conflict - # with the Jenkins global env var - properties-content: | - DOCKER_ARGS={docker_build_args} - DOCKER_NAME={docker_name} - DOCKER_ROOT={docker_root} - DOCKER_TAG={docker_tag} - DOCKERREGISTRY={docker_registry} - BUILD_MODE=SNAPSHOT - # Do the docker build - - shell: !include-raw: ../shell/docker-build.sh - - inject: - # Import the docker image information from the build step - properties-file: 'env_inject.txt' - # Execute any post build clean-up or testing - - shell: '{post_build_script}' - # Provided all steps have already passed, push the docker image - - shell: !include-raw: ../shell/docker-push.sh - triggers: - - reverse: - jobs: - - '{parent_job}' - result: 'success' - -- job-template: - name: '{project-name}-{subproject}-{stream}-verify-docker' - # Job template for Docker verify jobs - # - # The purpose of this job template is to run a docker build, and potentially - # test validation of the docker image - - ###################### - # Default parameters # - ###################### - - <<: *docker_job_boiler_plate - # yamllint disable-line rule:key-duplicates - <<: *docker_verify_boiler_plate - - builders: - - lf-infra-pre-build - - lf-infra-docker-login: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - shell: '{pre_build_script}' - - inject: - # Docker registry is purposely not using an '_' so as to not conflict - # with the Jenkins global env var - properties-content: | - DOCKER_ARGS={docker_build_args} - DOCKER_NAME={docker_name} - DOCKER_ROOT={docker_root} - DOCKER_TAG={docker_tag} - DOCKERREGISTRY={docker_registry} - BUILD_MODE=SNAPSHOT - # Do the docker build - - shell: !include-raw: ../shell/docker-build.sh - - inject: - # Import the docker image information from the build step - properties-file: 'env_inject.txt' - # Execute any post build clean-up or testing - - shell: '{post_build_script}' - -- job-template: - name: '{project-name}-{subproject}-{stream}-verify-docker-cascade-trigger' - # Job template for Docker verify jobs - # - # The purpose of this job template is to run a docker build, and potentially - # test validation of the docker image - - ###################### - # Default parameters # - ###################### - - <<: *docker_job_boiler_plate - # yamllint disable-line rule:key-duplicates - <<: *docker_verify_boiler_plate - - builders: - - lf-infra-pre-build - - lf-infra-docker-login: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - shell: '{pre_build_script}' - - inject: - # Docker registry is purposely not using an '_' so as to not conflict - # with the Jenkins global env var - properties-content: | - DOCKER_ARGS={docker_build_args} - DOCKER_NAME={docker_name} - DOCKER_ROOT={docker_root} - DOCKER_TAG={docker_tag} - DOCKERREGISTRY={docker_registry} - BUILD_MODE=SNAPSHOT - # Do the docker build - - shell: !include-raw: ../shell/docker-build.sh - - inject: - # Import the docker image information from the build step - properties-file: 'env_inject.txt' - # Execute any post build clean-up or testing - - shell: '{post_build_script}' - triggers: - - reverse: - jobs: - - '{parent_job}' - result: 'success' - -- job-template: - name: '{project-name}-{subproject}-{stream}-release-version-docker-daily-no-sonar' - # Job template for Docker daily release jobs - # - # The purpose of this job template is to run "docker build and docker push" - # for projects using this template. - # - # Required Variables: - # branch: git branch (eg. stable/lithium or master) - <<: *docker_job_boiler_plate - - docker_registry: '$DOCKER_REGISTRY:10003' - - scm: - - lf-infra-gerrit-scm: - jenkins-ssh-credential: '{jenkins-ssh-credential}' - git-url: '$GIT_URL/$PROJECT' - refspec: '$GERRIT_REFSPEC' - branch: '$GERRIT_BRANCH' - submodule-recursive: true - submodule-timeout: '{submodule-timeout}' - submodule-disable: '{submodule-disable}' - choosing-strategy: default - - builders: - - lf-infra-pre-build - - lf-infra-docker-login: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - shell: '{pre_build_script}' - - inject: - # Docker registry is purposely not using an '_' so as to not conflict - # with the Jenkins global env var - properties-content: | - DOCKER_ARGS={docker_build_args} - DOCKER_NAME={docker_name} - DOCKER_ROOT={docker_root} - DOCKER_TAG={docker_tag} - DOCKERREGISTRY={docker_registry} - BUILD_MODE=STAGING - - # Do the docker build - - shell: !include-raw: ../shell/snapshot-strip.sh - - shell: !include-raw: ../shell/docker-build.sh - - inject: - # Import the docker image information from the build step - properties-file: 'env_inject.txt' - # Execute any post build clean-up or testing - - shell: '{post_build_script}' - # Provided all steps have already passed, push the docker image - - shell: !include-raw: ../shell/docker-push.sh - - triggers: - # 11 AM UTC - - timed: '@daily' - - gerrit-trigger-release-manually: - server: '{server-name}' - project: '{project}' - branch: '{branch}' - -- job-template: - name: '{project-name}-{subproject}-{stream}-release-version-docker-daily-no-sonar-cascade-trigger' - # Job template for Docker daily release jobs - # - # The purpose of this job template is to run "docker build and docker push" - # for projects using this template. This job is triggered by the daily job - # that builds the artifacts required for building the Docker image. - # - # Required Variables: - # branch: git branch (eg. stable/lithium or master) - <<: *docker_job_boiler_plate - - docker_registry: '$DOCKER_REGISTRY:10003' - - scm: - - lf-infra-gerrit-scm: - jenkins-ssh-credential: '{jenkins-ssh-credential}' - git-url: '$GIT_URL/$PROJECT' - refspec: '$GERRIT_REFSPEC' - branch: '$GERRIT_BRANCH' - submodule-recursive: true - submodule-timeout: '{submodule-timeout}' - submodule-disable: '{submodule-disable}' - choosing-strategy: default - - builders: - - lf-infra-pre-build - - lf-infra-docker-login: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - shell: '{pre_build_script}' - - inject: - # Docker registry is purposely not using an '_' so as to not conflict - # with the Jenkins global env var - properties-content: | - DOCKER_ARGS={docker_build_args} - DOCKER_NAME={docker_name} - DOCKER_ROOT={docker_root} - DOCKER_TAG={docker_tag} - DOCKERREGISTRY={docker_registry} - BUILD_MODE=STAGING - - # Do the docker build - - shell: !include-raw: ../shell/snapshot-strip.sh - - shell: !include-raw: ../shell/docker-build.sh - - inject: - # Import the docker image information from the build step - properties-file: 'env_inject.txt' - # Execute any post build clean-up or testing - - shell: '{post_build_script}' - # Provided all steps have already passed, push the docker image - - shell: !include-raw: ../shell/docker-push.sh - - triggers: - - reverse: - jobs: - - '{parent_job}' - result: 'success' - -- job-template: - name: '{project-name}-{subproject}-{stream}-release-version-docker-no-sonar' - # Job template for Docker final release job - # - # The purpose of this job template is to run "docker build and docker push" - # for projects using this template. - # - # Required Variables: - # branch: git branch (eg. stable/lithium or master) - <<: *docker_job_boiler_plate - - docker_registry: '$DOCKER_REGISTRY:10003' - - scm: - - lf-infra-gerrit-scm: - jenkins-ssh-credential: '{jenkins-ssh-credential}' - git-url: '$GIT_URL/$PROJECT' - refspec: '$GERRIT_REFSPEC' - branch: '$GERRIT_BRANCH' - submodule-recursive: true - submodule-timeout: '{submodule-timeout}' - submodule-disable: '{submodule-disable}' - choosing-strategy: default - - builders: - - lf-infra-pre-build - - lf-infra-docker-login: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - shell: '{pre_build_script}' - - inject: - # Docker registry is purposely not using an '_' so as to not conflict - # with the Jenkins global env var - properties-content: | - DOCKER_ARGS={docker_build_args} - DOCKER_NAME={docker_name} - DOCKER_ROOT={docker_root} - DOCKER_TAG={docker_tag} - DOCKERREGISTRY={docker_registry} - BUILD_MODE=STAGING - - # Do the docker build - - shell: !include-raw: ../shell/snapshot-strip.sh - - shell: !include-raw: ../shell/docker-build.sh - - inject: - # Import the docker image information from the build step - properties-file: 'env_inject.txt' - # Execute any post build clean-up or testing - - shell: '{post_build_script}' - # Provided all steps have already passed, push the docker image - - shell: !include-raw: ../shell/docker-push.sh - -- job-template: - name: '{project-name}-{subproject}-{stream}-release-version-docker-cascade-trigger-no-sonar' - # Job template for Docker final release job - # - # The purpose of this job template is to run "docker build and docker push" - # for projects using this template. This job has no cascading counterpart, because the - # final release is moved manually to the release repo. - # - # Required Variables: - # branch: git branch (eg. stable/lithium or master) - <<: *docker_job_boiler_plate - - docker_registry: '$DOCKER_REGISTRY:10003' - - scm: - - lf-infra-gerrit-scm: - jenkins-ssh-credential: '{jenkins-ssh-credential}' - git-url: '$GIT_URL/$PROJECT' - refspec: '$GERRIT_REFSPEC' - branch: '$GERRIT_BRANCH' - submodule-recursive: true - submodule-timeout: '{submodule-timeout}' - submodule-disable: '{submodule-disable}' - choosing-strategy: default - - builders: - - lf-infra-pre-build - - lf-infra-docker-login: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - shell: '{pre_build_script}' - - inject: - # Docker registry is purposely not using an '_' so as to not conflict - # with the Jenkins global env var - properties-content: | - DOCKER_ARGS={docker_build_args} - DOCKER_NAME={docker_name} - DOCKER_ROOT={docker_root} - DOCKER_TAG={docker_tag} - DOCKERREGISTRY={docker_registry} - BUILD_MODE=STAGING - - # Do the docker build - - shell: !include-raw: ../shell/snapshot-strip.sh - - shell: !include-raw: ../shell/docker-build.sh - - inject: - # Import the docker image information from the build step - properties-file: 'env_inject.txt' - # Execute any post build clean-up or testing - - shell: '{post_build_script}' - # Provided all steps have already passed, push the docker image - - shell: !include-raw: ../shell/docker-push.sh - triggers: - - reverse: - jobs: - - '{parent_job}' - result: 'success' - -- job-template: - # Job template for creating a docker manifest list - # - # The purpose of this job template is to run: - # 1. docker_push_manifest.sh script (which needs to exist in the - # project implementation repo) - - name: '{project-name}-docker-manifest-{stream}' - <<: *docker_job_boiler_plate - node: '{build-node}' - build-timeout: 15 - - parameters: - - lf-infra-parameters: - project: '{project}' - stream: '{stream}' - branch: '{branch}' - - string: - name: PARENT_JOB_NAME - default: 'none' - - disabled: '{obj:disabled}' - - scm: - - lf-infra-gerrit-scm: - jenkins-ssh-credential: '{jenkins-ssh-credential}' - git-url: '$GIT_URL/$PROJECT' - refspec: '$GERRIT_REFSPEC' - branch: '$GERRIT_BRANCH' - submodule-recursive: true - submodule-disable: '{submodule-disable}' - submodule-timeout: '{submodule-timeout}' - choosing-strategy: default - - - builders: - - lf-infra-docker-login: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - shell: | - #!/bin/bash -ex - export PARENT_JOB_NAME - ./docker_push_manifest.sh - -- job-template: - # Job template for staging jobs on multiple architectures - # - # The purpose of this job template is to: - # 1. Run parallel maven-docker-stage jobs for each supported architecure - # 2. Build and push a docker manifest list for the images created by - # the previous jobs - - name: '{project-name}-multiarch-docker-stage-{stream}' - node: '{build-node}' - project-type: multijob - disabled: '{obj:disabled}' - build-timeout: 15 - pattern: '**' - - parameters: - - lf-infra-parameters: - project: '{project}' - stream: '{stream}' - branch: '{branch}' - - string: - name: DOCKER_REGISTRY - default: 'none' - - string: - name: DOCKERHUB_REGISTRY - default: 'registry-1.docker.io' - - disabled: '{obj:disabled}' - - properties: - - throttle: - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '{project-name}-.*-docker-.*' - blocking-level: 'NODE' - - scm: - - lf-infra-gerrit-scm: - jenkins-ssh-credential: '{jenkins-ssh-credential}' - git-url: '$GIT_URL/$PROJECT' - refspec: '$GERRIT_REFSPEC' - branch: '$GERRIT_BRANCH' - submodule-recursive: true - submodule-timeout: 10 - submodule-disable: false - choosing-strategy: default - - triggers: - - timed: '@daily' - - gerrit: - server-name: '{gerrit-server-name}' - trigger-on: - - comment-added-contains-event: - comment-contains-value: '^Patch Set\s+\d+:\s+stage-(docker-)?release\s*$' - - projects: - - project-compare-type: ANT - project-pattern: '{project}' - branches: - - branch-compare-type: ANT - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: "**" - - builders: - - multijob: - name: 'build docker images' - condition: ALWAYS - execution-type: PARALLEL - projects: - - name: '{project-name}-amd64-maven-docker-stage-{stream}' - kill-phase-on: FAILURE - current-parameters: true - - name: '{project-name}-arm64-maven-docker-stage-{stream}' - kill-phase-on: NEVER - current-parameters: true - - multijob: - name: 'publish docker manifest' - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: '{project-name}-docker-manifest-{stream}' - current-parameters: true - predefined-parameters: | - PARENT_JOB_NAME=$JOB_NAME - DOCKERHUB_REGISTRY=docker.io