X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=jjb%2Fglobal-templates-java.yaml;h=7224b759efa67ed11e5bc16e92ae0c799cf2818e;hb=d2c8e89d8eb9a63d2ab84eb883956e0c22272c7d;hp=4305b71c75f8874e10b6fc64df24484e3e3caaa9;hpb=b7778e6aafb3dd8b600c11699f6862d64b1b8a36;p=ci-management.git diff --git a/jjb/global-templates-java.yaml b/jjb/global-templates-java.yaml index 4305b71c7..7224b759e 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}' @@ -110,6 +115,25 @@ <<: *verify_java_defaults name: '{project-name}-{stream}-{subproject}-verify-java' +- job-template: + # Job template for Java integration pairwise jobs + # + # The purpose of this job template is to run: + # 1. maven clean install + # + # Required Variables: + # branch: git branch (eg. stable/lithium or master) + + <<: *verify_java_defaults + name: '{project-name}-{stream}-integration-pairwise' + triggers: + - timed: '@daily' + - gerrit-trigger-patch-submitted: + server: '{server-name}' + project: '{project}' + branch: '{branch}' + files: '{obj:pattern}' + - job-template: # Job template for Java daily release jobs # @@ -329,236 +353,6 @@ - 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}' - - - job-template: &merge_java_defaults # Job template for Java merge jobs # @@ -578,6 +372,7 @@ mvn-params: '' mvn-opts: '' java-opts: '' + java-version: openjdk8 properties: - infra-properties: @@ -611,9 +406,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}' @@ -783,82 +586,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 # @@ -1088,7 +815,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: @@ -1367,3 +1094,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