| --- |
| ########### |
| # 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-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}' |
| 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}' |
| 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}' |
| 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}' |
| 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}' |
| 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}' |
| 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' |
| |
| |