diff options
author | Jessica Wagantall <jwagantall@linuxfoundation.org> | 2018-06-29 05:18:32 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2018-06-29 05:18:32 +0000 |
commit | 7e03844c2b7182dd367a06fd9af3068a97e7f2cd (patch) | |
tree | 4089931633bf0b25c06895ca41cdd612e28239f3 | |
parent | 1c42a351f2583449dec47cb5d80fdca64d81df84 (diff) | |
parent | 88405ef9ee466381aac64b46f1be34ef16224496 (diff) |
Merge "Support cascade triggered docker images."
-rw-r--r-- | jjb/global-templates-docker.yaml | 345 | ||||
-rw-r--r-- | jjb/vfc/vfc-nfvo-driver-vnfm-svnfm-nokiav2.yaml | 7 |
2 files changed, 350 insertions, 2 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' + + diff --git a/jjb/vfc/vfc-nfvo-driver-vnfm-svnfm-nokiav2.yaml b/jjb/vfc/vfc-nfvo-driver-vnfm-svnfm-nokiav2.yaml index 7a93b8b8c..f87330011 100644 --- a/jjb/vfc/vfc-nfvo-driver-vnfm-svnfm-nokiav2.yaml +++ b/jjb/vfc/vfc-nfvo-driver-vnfm-svnfm-nokiav2.yaml @@ -34,15 +34,18 @@ pom: 'nokiav2/pom.xml' pattern: 'nokiav2/**' jobs: - - '{project-name}-{subproject}-{stream}-merge-docker': +#missing docker build for verify + - '{project-name}-{subproject}-{stream}-merge-docker-cascade-trigger': docker_build_args: '--build-arg MODE=-SNAPSHOT --build-arg REPO=snapshots' docker_name: 'onap/vfc/nfvo/svnfm/nokiav2' docker_root: '$WORKSPACE/nokiav2/deployment' - - '{project-name}-{subproject}-{stream}-release-version-docker-daily-no-sonar': + - '{project-name}-{subproject}-{stream}-release-version-docker-daily-no-sonar-cascade-trigger': docker_build_args: '--build-arg MODE= --build-arg REPO=staging' docker_name: 'onap/vfc/nfvo/svnfm/nokiav2' docker_root: '$WORKSPACE/nokiav2/deployment' docker_registry: '$DOCKER_REGISTRY:10003' +#Since the release is moved manually from the staging repo to the release repo this job can not +#be triggered in a cascade way - '{project-name}-{subproject}-{stream}-release-version-docker-no-sonar': docker_build_args: '--build-arg MODE= --build-arg REPO=releases' docker_name: 'onap/vfc/nfvo/svnfm/nokiav2' |