X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=jjb%2Fglobal-templates-java.yaml;h=bfc9c253d4a412b8876cf904425d367536d2c838;hb=refs%2Fchanges%2F75%2F95875%2F1;hp=61da2d5aff5cc70d31975356d2a9b9d61ffd5f0f;hpb=5a16f3d520cd0d6e1b0a67b23957df0ab0ad1cdb;p=ci-management.git diff --git a/jjb/global-templates-java.yaml b/jjb/global-templates-java.yaml index 61da2d5af..bfc9c253d 100644 --- a/jjb/global-templates-java.yaml +++ b/jjb/global-templates-java.yaml @@ -13,9 +13,11 @@ project-type: freestyle concurrent: true node: '{build-node}' + build-env-variables: '' pattern: '**' pom: - + mvn-opts: '' + java-opts: '' properties: - infra-properties: build-days-to-keep: '{build-days-to-keep}' @@ -53,11 +55,17 @@ - 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}' goals: 'clean install -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn {mvn-params}' + properties: + - MAVEN_OPTS='{mvn-opts}' + java-opts: + - "{java-opts}" settings: '{mvn-settings}' settings-type: cfp global-settings: 'global-settings' @@ -490,6 +498,7 @@ project-type: freestyle node: '{build-node}' disabled: '{disabled}' + version-properties: 'version.properties' maven-deploy-properties: properties: - infra-properties: @@ -529,7 +538,7 @@ settings-file: '{mvn-settings}' - inject: - properties-file: version.properties + properties-file: '{version-properties}' - maven-set-release-version: maven-version: '{maven-version}' mvn-settings: '{mvn-settings}' @@ -569,6 +578,8 @@ pom: mvn_properties: [] mvn-params: '' + mvn-opts: '' + java-opts: '' properties: - infra-properties: @@ -605,11 +616,21 @@ - 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}' goals: 'clean deploy -B {mvn-params} -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn' + properties: + - MAVEN_OPTS='{mvn-opts}' + java-opts: + - "{java-opts}" settings: '{mvn-settings}' settings-type: cfp global-settings: 'global-settings' @@ -697,7 +718,7 @@ name: '{project-name}-{stream}-docker-java-daily' id: '{project-name}-{stream}-docker-java-daily' project-type: freestyle - node: 'ubuntu1604-docker-8c-8g' + node: '{build-node}' disabled: '{disabled}' properties: - infra-properties: @@ -787,7 +808,7 @@ name: '{project-name}-{stream}-docker-java-properties-daily' project-type: freestyle - node: 'ubuntu1604-docker-8c-8g' + node: '{build-node}' disabled: '{disabled}' properties: - infra-properties: @@ -997,7 +1018,7 @@ name: '{project-name}-{stream}-docker-java-version-shell-daily' project-type: freestyle - node: 'ubuntu1604-docker-8c-8g' + node: '{build-node}' disabled: '{disabled}' properties: - infra-properties: @@ -1154,7 +1175,7 @@ name: '{project-name}-{stream}-docker-version-java-daily' id: '{project-name}-{stream}-docker-version-java-daily' project-type: freestyle - node: 'ubuntu1604-docker-8c-8g' + node: '{build-node}' disabled: '{disabled}' properties: - infra-properties: @@ -1251,7 +1272,7 @@ name: '{project-name}-{stream}-aai-docker-java-daily' project-type: freestyle - node: 'ubuntu1604-docker-8c-8g' + node: '{build-node}' docker-image-name: '' disabled: '{disabled}' properties: @@ -1336,7 +1357,7 @@ <<: *merge_java_defaults name: '{project-name}-{stream}-sdc-merge-java' - node: 'ubuntu1604-docker-8c-8g' + node: '{build-node}' build-timeout: 120 builders: @@ -1354,3 +1375,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