X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=jjb%2Fglobal-templates-java.yaml;h=ff021db1cd52d95fe9ab8e457a8f1266ba4d8d96;hb=19f07ea4d635f43f49aac2fae55864244cfefbf7;hp=4305b71c75f8874e10b6fc64df24484e3e3caaa9;hpb=b7778e6aafb3dd8b600c11699f6862d64b1b8a36;p=ci-management.git diff --git a/jjb/global-templates-java.yaml b/jjb/global-templates-java.yaml index 4305b71c7..ff021db1c 100644 --- a/jjb/global-templates-java.yaml +++ b/jjb/global-templates-java.yaml @@ -13,11 +13,12 @@ project-type: freestyle concurrent: true node: '{build-node}' + build-env-variables: '' pattern: '**' pom: mvn-opts: '' java-opts: '' - + java-version: openjdk8 properties: - infra-properties: build-days-to-keep: '{build-days-to-keep}' @@ -52,9 +53,13 @@ builders: - lf-infra-pre-build + - lf-update-java-alternatives: + java-version: "{java-version}" - provide-maven-settings: global-settings-file: 'global-settings' settings-file: '{mvn-settings}' + - inject: + properties-content: "{build-env-variables}" - maven-target: maven-version: '{maven-version}' pom: '{obj:pom}' @@ -70,8 +75,7 @@ global-settings-type: cfp publishers: - - infra-shiplogs: - maven-version: '{maven-version}' + - lf-infra-publish - job-template: # Job template for Java verify jobs running checkstyle at the end @@ -88,9 +92,9 @@ <<: *verify_java_defaults name: '{project-name}-{stream}-verify-java-checkstyle' + publishers: - - infra-shiplogs: - maven-version: '{maven-version}' + - lf-infra-publish - checkstyle-result - job-template: @@ -111,73 +115,23 @@ name: '{project-name}-{stream}-{subproject}-verify-java' - job-template: - # Job template for Java daily release jobs + # Job template for Java integration pairwise jobs # # The purpose of this job template is to run: - # 1. maven clean deploy with Sonar scans + # 1. maven clean install # # Required Variables: # branch: git branch (eg. stable/lithium or master) - name: '{project-name}-{stream}-release-java-daily' - - project-type: freestyle - node: '{build-node}' - disabled: '{disabled}' - maven-deploy-properties: - properties: - - infra-properties: - build-days-to-keep: '{build-days-to-keep}' - - parameters: - - infra-parameters: - project: '{project}' - branch: '{branch}' - refspec: 'refs/heads/{branch}' - artifacts: '{archive-artifacts}' - - maven-exec: - maven-version: '{maven-version}' - - scm: - - gerrit-trigger-scm: - refspec: '' - choosing-strategy: 'default' - submodule-recursive: '{submodule-recursive}' - - wrappers: - - infra-wrappers: - build-timeout: '{build-timeout}' - + <<: *verify_java_defaults + name: '{project-name}-{stream}-integration-pairwise' triggers: - # 11 AM UTC - timed: '@daily' - - gerrit-trigger-release-manually: + - gerrit-trigger-patch-submitted: server: '{server-name}' project: '{project}' branch: '{branch}' - - builders: - - lf-infra-pre-build - - provide-maven-settings: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - - maven-target: - maven-version: '{maven-version}' - goals: 'clean deploy -B - -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn' - properties: - - '{maven-deploy-properties}' - java-opts: - - '-Xmx4096m -XX:MaxPermSize=512m' - settings: '{mvn-settings}' - settings-type: cfp - global-settings: 'global-settings' - global-settings-type: cfp - - publishers: - - infra-shiplogs: - maven-version: '{maven-version}' + files: '{obj:pattern}' - job-template: # Job template for Java daily release jobs running checkstyle at the end @@ -249,9 +203,9 @@ settings-type: cfp global-settings: 'global-settings' global-settings-type: cfp + publishers: - - infra-shiplogs: - maven-version: '{maven-version}' + - lf-infra-publish - checkstyle-result-daily - job-template: @@ -326,238 +280,7 @@ global-settings-type: cfp publishers: - - infra-shiplogs: - maven-version: '{maven-version}' - -- job-template: - # Job template for Java daily release jobs - # - # The purpose of this job template is to run: - # 1. maven set versions - # 2. maven clean deploy -P {mvn-profile} with Sonar scans - # - # Required Variables: - # branch: git branch (eg. stable/lithium or master) - - name: '{project-name}-{stream}-release-version-profile-java-daily' - - project-type: freestyle - node: '{build-node}' - disabled: '{disabled}' - maven-deploy-properties: - properties: - - infra-properties: - build-days-to-keep: '{build-days-to-keep}' - - parameters: - - infra-parameters: - project: '{project}' - branch: '{branch}' - refspec: 'refs/heads/{branch}' - artifacts: '{archive-artifacts}' - - maven-exec: - maven-version: '{maven-version}' - - scm: - - gerrit-trigger-scm: - refspec: '' - choosing-strategy: 'default' - submodule-recursive: '{submodule-recursive}' - - wrappers: - - infra-wrappers: - build-timeout: '{build-timeout}' - - triggers: - # 11 AM UTC - - timed: '@daily' - - gerrit-trigger-release-manually: - server: '{server-name}' - project: '{project}' - branch: '{branch}' - - builders: - - lf-infra-pre-build - - provide-maven-settings: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - - inject: - properties-file: version.properties - - maven-set-release-version: - maven-version: '{maven-version}' - mvn-settings: '{mvn-settings}' - pom: - - - maven-target: - maven-version: '{maven-version}' - goals: 'clean deploy -P {mvn-profile} -B - -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn' - properties: - - '{maven-deploy-properties}' - settings: '{mvn-settings}' - settings-type: cfp - global-settings: 'global-settings' - global-settings-type: cfp - - publishers: - - infra-shiplogs: - maven-version: '{maven-version}' - - -- job-template: - # Job template for Java daily release jobs with POM not at the root - # - # The purpose of this job template is to run: - # 1. maven clean deploy with Sonar scans - # - # This job supports subprojects. - # - # Required Variables: - # branch: git branch (eg. stable/lithium or master) - # pom: name/location of the pom.xml file relative to the workspace - - name: '{project-name}-{stream}-{subproject}-release-java-daily' - - project-type: freestyle - node: '{build-node}' - disabled: '{disabled}' - maven-deploy-properties: - properties: - - infra-properties: - build-days-to-keep: '{build-days-to-keep}' - - parameters: - - infra-parameters: - project: '{project}' - branch: '{branch}' - refspec: 'refs/heads/{branch}' - artifacts: '{archive-artifacts}' - - maven-exec: - maven-version: '{maven-version}' - - scm: - - gerrit-trigger-scm: - refspec: '' - choosing-strategy: 'default' - submodule-recursive: '{submodule-recursive}' - - wrappers: - - infra-wrappers: - build-timeout: '{build-timeout}' - - triggers: - # 11 AM UTC - - timed: '@daily' - - gerrit-trigger-release-manually: - server: '{server-name}' - project: '{project}' - branch: '{branch}' - - builders: - - lf-infra-pre-build - - provide-maven-settings: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - - maven-target: - maven-version: '{maven-version}' - pom: '{pom}' - goals: 'clean deploy -B - -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn' - properties: - - '{maven-deploy-properties}' - java-opts: - - '-Xmx4096m -XX:MaxPermSize=512m' - settings: '{mvn-settings}' - settings-type: cfp - global-settings: 'global-settings' - global-settings-type: cfp - - publishers: - - infra-shiplogs: - maven-version: '{maven-version}' - -- job-template: - # Job template for Java daily release jobs with POM not at the root - # - # The purpose of this job template is to run: - # 1. maven set versions - # 2. maven clean deploy with Sonar scans - # - # This job supports subprojects. - # - # Required Variables: - # branch: git branch (eg. stable/lithium or master) - # pom: name/location of the pom.xml file relative to the workspace - - name: '{project-name}-{stream}-{subproject}-release-version-java-daily' - - project-type: freestyle - node: '{build-node}' - disabled: '{disabled}' - version-properties: 'version.properties' - maven-deploy-properties: - properties: - - infra-properties: - build-days-to-keep: '{build-days-to-keep}' - - parameters: - - infra-parameters: - project: '{project}' - branch: '{branch}' - refspec: 'refs/heads/{branch}' - artifacts: '{archive-artifacts}' - - maven-exec: - maven-version: '{maven-version}' - - scm: - - gerrit-trigger-scm: - refspec: '' - choosing-strategy: 'default' - submodule-recursive: '{submodule-recursive}' - - wrappers: - - infra-wrappers: - build-timeout: '{build-timeout}' - - triggers: - # 11 AM UTC - - timed: '@daily' - - gerrit-trigger-release-manually: - server: '{server-name}' - project: '{project}' - branch: '{branch}' - - builders: - - lf-infra-pre-build - - provide-maven-settings: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - - inject: - properties-file: '{version-properties}' - - maven-set-release-version: - maven-version: '{maven-version}' - mvn-settings: '{mvn-settings}' - pom: '{pom}' - - - maven-target: - maven-version: '{maven-version}' - pom: '{pom}' - goals: 'clean deploy -B - -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn' - properties: - - '{maven-deploy-properties}' - settings: '{mvn-settings}' - settings-type: cfp - global-settings: 'global-settings' - global-settings-type: cfp - - publishers: - - infra-shiplogs: - maven-version: '{maven-version}' - + - lf-infra-publish - job-template: &merge_java_defaults # Job template for Java merge jobs @@ -578,6 +301,7 @@ mvn-params: '' mvn-opts: '' java-opts: '' + java-version: openjdk8 properties: - infra-properties: @@ -599,8 +323,9 @@ submodule-recursive: '{submodule-recursive}' wrappers: - - infra-wrappers: + - lf-infra-wrappers: build-timeout: '{build-timeout}' + jenkins-ssh-credential: '{jenkins-ssh-credential}' triggers: - gerrit-trigger-patch-merged: @@ -611,9 +336,17 @@ builders: - lf-infra-pre-build + - lf-update-java-alternatives: + java-version: "{java-version}" - provide-maven-settings: global-settings-file: 'global-settings' settings-file: '{mvn-settings}' + - conditional-step: + condition-kind: regex-match + regex: .*(amd64|arm64).* + label: '{project-name}' + steps: + - shell: !include-raw-escape: global-jjb/shell/docker-login.sh - maven-target: maven-version: '{maven-version}' pom: '{obj:pom}' @@ -630,8 +363,7 @@ properties: '{obj:mvn_properties}' publishers: - - infra-shiplogs: - maven-version: '{maven-version}' + - lf-infra-publish - job-template: # Job template for Java merge jobs based on @@ -648,6 +380,11 @@ <<: *merge_java_defaults name: '{project-name}-{stream}-merge-properties-java' + wrappers: + - lf-infra-wrappers: + build-timeout: '{build-timeout}' + jenkins-ssh-credential: '{jenkins-ssh-credential}' + - job-template: # Job template for Java merge jobs that takes a maven template # @@ -712,6 +449,7 @@ project-type: freestyle node: '{build-node}' disabled: '{disabled}' + java-version: openjdk8 properties: - infra-properties: build-days-to-keep: '{build-days-to-keep}' @@ -747,6 +485,9 @@ builders: - lf-infra-pre-build + - lf-update-java-alternatives: + java-version: "{java-version}" + - provide-maven-settings: global-settings-file: 'global-settings' settings-file: '{mvn-settings}' @@ -762,8 +503,7 @@ mvn-params: '{mvn-params}' publishers: - - infra-shiplogs: - maven-version: '{maven-version}' + - lf-infra-publish - job-template: # Job template for Docker daily jobs @@ -783,82 +523,6 @@ - infra-wrappers-docker-build: build-timeout: '{build-timeout}' -- job-template: - # Job template for building & pushing docker images - # - # The purpose of this job template is to run: - # 1. login to the docker registry - # 2. maven clean deploy on the specified profile - # - # This job uses a conditional regex match step to set versions. - # This template supports maven properties. - # - # Required Variables: - # pom: name/location of the pom.xml file relative to the workspace - # profile: the docker profile defined in the pom - # maven-properties: properties passed to maven - - name: '{project-name}-{stream}-docker-java-properties-daily' - project-type: freestyle - node: '{build-node}' - disabled: '{disabled}' - properties: - - infra-properties: - build-days-to-keep: '{build-days-to-keep}' - parameters: - - infra-parameters: - project: '{project}' - branch: '{branch}' - refspec: 'refs/heads/{branch}' - artifacts: '{archive-artifacts}' - - maven-exec: - maven-version: '{maven-version}' - - maven-params: - mvn-params: '{mvn-params}' - scm: - - gerrit-trigger-scm: - refspec: '' - choosing-strategy: 'default' - submodule-recursive: '{submodule-recursive}' - wrappers: - - infra-wrappers: - build-timeout: '{build-timeout}' - triggers: - # 12 AM UTC - - timed: '@daily' - - gerrit-trigger-release-manually: - server: '{server-name}' - project: '{project}' - branch: '{branch}' - builders: - - lf-infra-pre-build - - provide-maven-settings: - global-settings-file: 'global-settings' - settings-file: '{mvn-settings}' - - conditional-step: - condition-kind: regex-match - regex: DoSetVersion - label: '{setVersion}' - steps: - - inject: - properties-file: version.properties - - maven-set-release-version: - maven-version: '{maven-version}' - mvn-settings: '{mvn-settings}' - pom: - - docker-login - - maven-docker-push-daily: - maven-version: '{maven-version}' - mvn-settings: '{mvn-settings}' - pom: '{docker-pom}' - properties: '{maven-properties}' - # use default as mvn-profile if profile is not needed - mvn-profile: '{mvn-profile}' - mvn-params: '{mvn-params}' - publishers: - - infra-shiplogs: - maven-version: '{maven-version}' - - job-template: # Job template for building & pushing docker images # @@ -924,8 +588,7 @@ - shell: '{script}' publishers: - - infra-shiplogs: - maven-version: '{maven-version}' + - lf-infra-publish - job-template: # Job template for building & pushing docker images @@ -993,8 +656,7 @@ - shell: '{script}' publishers: - - infra-shiplogs: - maven-version: '{maven-version}' + - lf-infra-publish - job-template: # Job template for building & pushing docker images @@ -1069,8 +731,7 @@ - shell: '{script}' publishers: - - infra-shiplogs: - maven-version: '{maven-version}' + - lf-infra-publish - job-template: # Job template for building & pushing docker images @@ -1088,7 +749,7 @@ name: '{project-name}-{stream}-{subproject}-docker-java-version-shell-daily' project-type: freestyle - node: 'ubuntu1604-docker-8c-8g' + node: 'ubuntu1804-docker-8c-8g' disabled: '{disabled}' properties: - infra-properties: @@ -1148,8 +809,7 @@ - shell: '{script}' publishers: - - infra-shiplogs: - maven-version: '{maven-version}' + - lf-infra-publish - job-template: &docker_version_java_defaults # Job template for building & pushing docker images @@ -1226,8 +886,7 @@ mvn-params: '{mvn-params}' publishers: - - infra-shiplogs: - maven-version: '{maven-version}' + - lf-infra-publish - job-template: # Job template for building & pushing docker images @@ -1267,6 +926,7 @@ node: '{build-node}' docker-image-name: '' disabled: '{disabled}' + java-version: 'openjdk8' properties: - infra-properties: build-days-to-keep: '{build-days-to-keep}' @@ -1302,6 +962,8 @@ builders: - lf-infra-pre-build + - lf-update-java-alternatives: + java-version: "{java-version}" - provide-maven-settings: global-settings-file: 'global-settings' settings-file: '{mvn-settings}' @@ -1334,8 +996,7 @@ - shell: !include-raw-escape: include-docker-push.sh publishers: - - infra-shiplogs: - maven-version: '{maven-version}' + - lf-infra-publish - job-template: # Job template for Java merge jobs for SDC specific repos @@ -1354,6 +1015,8 @@ builders: - lf-infra-pre-build + - lf-update-java-alternatives: + java-version: "{java-version}" - provide-maven-settings: global-settings-file: 'global-settings' settings-file: '{mvn-settings}' @@ -1367,3 +1030,79 @@ # use default as mvn-profile if profile is not needed mvn-profile: '{mvn-profile}' mvn-params: '' + +- job-template: + # Job template for Java merge jobs on multiple architectures + # + # The purpose of this job template is to: + # 1. Run parallel {project-name}-{stream}-verify-java jobs for each supported architecture + # 2. Build and push a docker manifest list for the images created by + # the previous jobs + + name: '{project-name}-multiarch-{stream}-merge-java' + node: '{build-node}' + project-type: multijob + disabled: '{obj:disabled}' + pattern: '**' + + parameters: + - lf-infra-parameters: + project: '{project}' + stream: '{stream}' + branch: '{branch}' + - string: + name: DOCKER_REGISTRY + default: 'none' + - string: + name: DOCKERHUB_REGISTRY + default: 'registry-1.docker.io' + + properties: + - throttle: + max-per-node: 1 + option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - '{project-name}-.*-merge-.*' + blocking-level: 'NODE' + + scm: + - gerrit-trigger-scm: + refspec: '' + choosing-strategy: 'default' + submodule-recursive: '{submodule-recursive}' + + wrappers: + - infra-wrappers: + build-timeout: '{build-timeout}' + + triggers: + - gerrit-trigger-patch-merged: + server: '{server-name}' + project: '{project}' + branch: '{branch}' + files: '{pattern}' + + builders: + - multijob: + name: 'build docker images' + condition: ALWAYS + execution-type: PARALLEL + projects: + - name: '{project-name}-amd64-{stream}-merge-java' + kill-phase-on: FAILURE + current-parameters: true + - name: '{project-name}-arm64-{stream}-merge-java' + kill-phase-on: NEVER + current-parameters: true + - multijob: + name: 'publish docker manifest' + condition: SUCCESSFUL + execution-type: PARALLEL + projects: + - name: '{project-name}-docker-manifest-{stream}' + current-parameters: true + predefined-parameters: | + PARENT_JOB_NAME=$JOB_NAME + DOCKERHUB_REGISTRY=docker.io