X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=jjb%2Fglobal-templates-docker.yaml;h=8d1c40db8a6a2ed56bf5057f7d20cfc547996116;hb=refs%2Fchanges%2F07%2F69507%2F1;hp=8650086e676fb96cf0845c24c4a60e4e26e461b3;hpb=f801ba055536d4b9c3c1a674661a74ced5a169bf;p=ci-management.git diff --git a/jjb/global-templates-docker.yaml b/jjb/global-templates-docker.yaml index 8650086e6..8d1c40db8 100644 --- a/jjb/global-templates-docker.yaml +++ b/jjb/global-templates-docker.yaml @@ -65,6 +65,7 @@ server: '{server-name}' project: '{project}' branch: '{branch}' + files: '{files}' - docker_merge_boiler_plate: &docker_merge_boiler_plate name: docker_merge_boiler_plate @@ -80,7 +81,7 @@ server: '{server-name}' project: '{project}' branch: '{branch}' - files: '**' + files: '{files}' - pollscm: cron: '' @@ -111,6 +112,7 @@ 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 @@ -122,6 +124,51 @@ # 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-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 @@ -150,6 +197,7 @@ 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 @@ -159,6 +207,53 @@ # 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-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 @@ -170,7 +265,7 @@ # branch: git branch (eg. stable/lithium or master) <<: *docker_job_boiler_plate - docker_registry: '$DOCKER_REGISTRY:10004' + docker_registry: '$DOCKER_REGISTRY:10003' scm: - lf-infra-gerrit-scm: @@ -195,6 +290,7 @@ 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 @@ -209,12 +305,68 @@ triggers: # 11 AM UTC - - timed: 'H 11 * * *' + - 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 + 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: + - '{parent_job}' + result: 'success' + - job-template: name: '{project-name}-{subproject}-{stream}-merge-docker' # Job template for Docker merge jobs @@ -240,6 +392,7 @@ 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: @@ -250,6 +403,48 @@ # 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-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 @@ -279,6 +474,45 @@ 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-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: @@ -286,6 +520,11 @@ 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' @@ -298,7 +537,7 @@ # branch: git branch (eg. stable/lithium or master) <<: *docker_job_boiler_plate - docker_registry: '$DOCKER_REGISTRY:10004' + docker_registry: '$DOCKER_REGISTRY:10003' scm: - lf-infra-gerrit-scm: @@ -323,6 +562,7 @@ 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 @@ -337,8 +577,170 @@ triggers: # 11 AM UTC - - timed: 'H 11 * * *' + - 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 + 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: + - '{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 + 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 + +- 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: + - '{parent_job}' + result: 'success' + +