diff options
Diffstat (limited to 'jjb/global-templates-docker.yaml')
-rw-r--r-- | jjb/global-templates-docker.yaml | 345 |
1 files changed, 345 insertions, 0 deletions
diff --git a/jjb/global-templates-docker.yaml b/jjb/global-templates-docker.yaml index b1db09a6b..7b5df8235 100644 --- a/jjb/global-templates-docker.yaml +++ b/jjb/global-templates-docker.yaml @@ -125,6 +125,51 @@ - 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-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: + - '{project-name}-{stream}-{subproject}-merge-java' + result: 'success' + +- job-template: name: '{project-name}-{stream}-verify-docker' # Job template for Docker verify jobs # @@ -163,6 +208,53 @@ - 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-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: + - '{project-name}-{stream}-{subproject}-verify-java' + result: 'success' + +- job-template: name: '{project-name}-{stream}-release-version-docker-daily-no-sonar' # Job template for Docker daily release jobs # @@ -220,6 +312,62 @@ 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 + choosing-strategy: default + + builders: + - 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: + - '{project-name}-{stream}-release-version-java-daily' + result: 'success' + +- job-template: name: '{project-name}-{subproject}-{stream}-merge-docker' # Job template for Docker merge jobs # @@ -256,6 +404,48 @@ - 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-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: + - '{project-name}-{stream}-{subproject}-merge-java' + result: 'success' + +- job-template: name: '{project-name}-{subproject}-{stream}-verify-docker' # Job template for Docker verify jobs # @@ -294,6 +484,49 @@ - 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-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: + - '{project-name}-{stream}-{subproject}-verify-java' + result: 'success' + +- job-template: name: '{project-name}-{subproject}-{stream}-release-version-docker-daily-no-sonar' # Job template for Docker daily release jobs # @@ -351,6 +584,62 @@ 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 + choosing-strategy: default + + builders: + - 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: + - '{project-name}-{stream}-{subproject}-release-version-java-daily' + result: 'success' + +- job-template: name: '{project-name}-{subproject}-{stream}-release-version-docker-no-sonar' # Job template for Docker final release job # @@ -399,3 +688,59 @@ # 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 + choosing-strategy: default + + builders: + - 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: + - '{project-name}-{stream}-{subproject}-release-version-java-daily' + result: 'success' + + |