summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJessica Wagantall <jwagantall@linuxfoundation.org>2018-06-29 05:18:32 +0000
committerGerrit Code Review <gerrit@onap.org>2018-06-29 05:18:32 +0000
commit7e03844c2b7182dd367a06fd9af3068a97e7f2cd (patch)
tree4089931633bf0b25c06895ca41cdd612e28239f3
parent1c42a351f2583449dec47cb5d80fdca64d81df84 (diff)
parent88405ef9ee466381aac64b46f1be34ef16224496 (diff)
Merge "Support cascade triggered docker images."
-rw-r--r--jjb/global-templates-docker.yaml345
-rw-r--r--jjb/vfc/vfc-nfvo-driver-vnfm-svnfm-nokiav2.yaml7
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'