--- - job-template: &verify_java_defaults # Job template for Java verify jobs # # The purpose of this job template is to run: # 1. maven clean install # # Required Variables: # branch: git branch (eg. stable/lithium or master) name: "{project-name}-{stream}-verify-java" 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}" 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: "$GERRIT_REFSPEC" choosing-strategy: "gerrit" submodule-recursive: "{submodule-recursive}" wrappers: - infra-wrappers: build-timeout: "{build-timeout}" triggers: - gerrit-trigger-patch-submitted: server: "{server-name}" project: "{project}" branch: "{branch}" files: "{obj:pattern}" 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}" # yamllint disable rule:line-length goals: "clean install -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn {mvn-params}" # yamlline enable properties: - MAVEN_OPTS='{mvn-opts}' java-opts: - "{java-opts}" settings: "{mvn-settings}" settings-type: cfp global-settings: "global-settings" global-settings-type: cfp publishers: - lf-infra-publish - job-template: # Job template for Java verify jobs running checkstyle at the end # When checkstyle will be fully incorporated, it is meant to replace # '{project-name}-{stream}-verify-java-checkstyle' # # The purpose of this job template is to run: # 1. maven clean install # # This job publishes checkstyle results. # # Required Variables: # branch: git branch (eg. stable/lithium or master) <<: *verify_java_defaults name: "{project-name}-{stream}-verify-java-checkstyle" publishers: - lf-infra-publish - checkstyle-result - job-template: # Job template for Java verify jobs with POM not at the root # # The purpose of this job template is to run: # 1. maven clean install # # 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 # pattern: ant file-path pattern relative to the workspace used to # trigger the job <<: *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: - gerrit-trigger-patch-submitted: server: "{server-name}" project: "{project}" branch: "{branch}" files: "{obj:pattern}" - job-template: # Job template for Java daily release jobs running checkstyle at the end # When checkstyle will be fully incorporated, it is meant to replace # '{project-name}-{stream}-release-java-daily' # # The purpose of this job template is to run: # 1. maven clean deploy with Sonar scans # # This job publishes checkstyle results. # This job uses a conditional regex match step to set versions. # # Required Variables: # branch: git branch (eg. stable/lithium or master) name: "{project-name}-{stream}-release-java-daily-checkstyle" project-type: freestyle node: "{build-node}" disabled: false 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 - 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: - maven-target: maven-version: "{maven-version}" goals: "clean deploy -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" properties: "{obj:mvn_properties}" settings: "{mvn-settings}" settings-type: cfp global-settings: "global-settings" global-settings-type: cfp publishers: - lf-infra-publish - checkstyle-result-daily - 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 with Sonar scans # # Required Variables: # branch: git branch (eg. stable/lithium or master) name: "{project-name}-{stream}-release-version-java-daily" project-type: freestyle disabled: false node: "{build-node}" 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 - 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 -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: - lf-infra-publish - job-template: &merge_java_defaults # Job template for Java merge jobs # # The purpose of this job template is to run: # 1. maven clean deploy # # Required Variables: # branch: git branch (eg. stable/lithium or master) name: "{project-name}-{stream}-merge-java" project-type: freestyle node: "{build-node}" pattern: "**" pom: mvn_properties: [] mvn-params: "" mvn-opts: "" java-opts: "" java-version: openjdk8 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: - lf-infra-wrappers: build-timeout: "{build-timeout}" jenkins-ssh-credential: "{jenkins-ssh-credential}" triggers: - gerrit-trigger-patch-merged: server: "{server-name}" project: "{project}" branch: "{branch}" files: "{pattern}" 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}" goals: "clean deploy -B {mvn-params} -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" java-opts: - "{java-opts}" settings: "{mvn-settings}" settings-type: cfp global-settings: "global-settings" global-settings-type: cfp properties: "{obj:mvn_properties}" publishers: - lf-infra-publish - job-template: # Job template for Java merge jobs based on # '{project-name}-{stream}-merge-java' # The purpose of this job template is to run: # 1. maven clean deploy # # This project supports maven properties. # # Required Variables: # branch: git branch (eg. stable/lithium or master) # maven-properties: properties passed to maven <<: *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 # # The purpose of this job template is to run: # 1. maven clean deploy -P {mvn-profile} # # Required Variables: # branch: git branch (eg. stable/lithium or master) <<: *merge_java_defaults name: "{project-name}-{stream}-merge-profile-java" builders: - lf-infra-pre-build - provide-maven-settings: global-settings-file: "global-settings" settings-file: "{mvn-settings}" - docker-login - maven-target: maven-version: "{maven-version}" goals: "clean deploy -P {mvn-profile} -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" settings: "{mvn-settings}" settings-type: cfp global-settings: "global-settings" global-settings-type: cfp properties: - docker.pull.registry=nexus3.onap.org:10001 - docker.push.registry=nexus3.onap.org:10003 - job-template: # Job template for Java merge jobs with POM not at the root # # The purpose of this job template is to run: # 1. maven clean deploy # # 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 # pattern: ant file-path pattern relative to the workspace used to # trigger the job <<: *merge_java_defaults name: "{project-name}-{stream}-{subproject}-merge-java" - job-template: &docker_java_defaults # Job template for Docker daily jobs # # The purpose of this job template is to run: # 1. login to the docker registry # 2. docker push # # Required Variables: # branch: git branch (eg. stable/lithium or master) name: "{project-name}-{stream}-docker-java-daily" id: "{project-name}-{stream}-docker-java-daily" project-type: freestyle node: "{build-node}" disabled: false java-version: openjdk8 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 - gerrit-trigger-release-manually: server: "{server-name}" project: "{project}" branch: "{branch}" 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}" - docker-login - maven-docker-push-daily: maven-version: "{maven-version}" mvn-settings: "{mvn-settings}" pom: "{docker-pom}" # use default as mvn-profile if profile is not needed mvn-profile: "{mvn-profile}" mvn-params: "{mvn-params}" publishers: - lf-infra-publish - job-template: # Job template for Docker daily jobs # # The purpose of this job template is to run: # 1. login to the docker registry # 2. docker push # # Required Variables: # branch: git branch (eg. stable/lithium or master) <<: *docker_java_defaults name: "{project-name}-{stream}-docker-java-daily" id: docker-java-daily node: "{build-node}" wrappers: - 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. run a specified shell builder # # Required Variables: # pom: name/location of the pom.xml file relative to the workspace # maven-properties: properties passed to maven name: "{project-name}-{stream}-docker-java-shell-daily" project-type: freestyle node: "{build-node}" disabled: false 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: # 12 AM UTC - 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}" - docker-login - maven-target: maven-version: "{maven-version}" goals: "{mvn-goals}" settings: "{mvn-settings}" settings-type: cfp global-settings: "global-settings" global-settings-type: cfp - shell: "{script}" publishers: - lf-infra-publish - 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. run a specified shell builder # # Required Variables: # pom: name/location of the pom.xml file relative to the workspace # maven-properties: properties passed to maven name: "{project-name}-{stream}-{subproject}-docker-java-shell-daily" project-type: freestyle node: "{build-node}" disabled: false 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: # 12 AM UTC - 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}" - docker-login - maven-target: maven-version: "{maven-version}" pom: "{pom}" goals: "{mvn-goals}" settings: "{mvn-settings}" settings-type: cfp global-settings: "global-settings" global-settings-type: cfp - shell: "{script}" publishers: - lf-infra-publish - 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. inject a version.properties file and set versions # 3. run a specified shell builder # # Required Variables: # pom: name/location of the pom.xml file relative to the workspace # maven-properties: properties passed to maven name: "{project-name}-{stream}-docker-java-version-shell-daily" project-type: freestyle node: "{build-node}" disabled: false 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: # 12 AM UTC - 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: - docker-login - maven-target: maven-version: "{maven-version}" goals: "{mvn-goals}" settings: "{mvn-settings}" settings-type: cfp global-settings: "global-settings" global-settings-type: cfp - shell: "{script}" publishers: - lf-infra-publish - 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. inject a version.properties file and set versions # 3. run a specified shell builder # # This template supports subprojects. # # Required Variables: # pom: name/location of the pom.xml file relative to the workspace # maven-properties: properties passed to maven name: "{project-name}-{stream}-{subproject}-docker-java-version-shell-daily" project-type: freestyle node: "ubuntu1804-docker-8c-8g" disabled: false 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: # 12 AM UTC - 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}" - docker-login - maven-target: maven-version: "{maven-version}" pom: "{pom}" goals: "{mvn-goals}" settings: "{mvn-settings}" settings-type: cfp global-settings: "global-settings" global-settings-type: cfp - shell: "{script}" publishers: - lf-infra-publish - job-template: &docker_version_java_defaults # Job template for building & pushing docker images # # The purpose of this job template is to run: # 1. login to the docker registry # 2. inject a version.properties file and set versions # 3. run a docker push # # 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-version-java-daily" id: "{project-name}-{stream}-docker-version-java-daily" project-type: freestyle node: "{build-node}" disabled: false 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 - 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: - docker-login - maven-docker-push-daily: maven-version: "{maven-version}" mvn-settings: "{mvn-settings}" pom: "{docker-pom}" # use default as mvn-profile if profile is not needed mvn-profile: "{mvn-profile}" mvn-params: "{mvn-params}" publishers: - lf-infra-publish - 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. inject a version.properties file and set versions # 3. run a docker push # # 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 <<: *docker_version_java_defaults name: "{project-name}-{stream}-docker-version-java-daily" id: "docker-version-java-daily" node: "{build-node}" wrappers: - infra-wrappers-docker-build: build-timeout: "{build-timeout}" - job-template: # Job template for building & pushing docker images for AAI specific repos # # The purpose of this job template is to run: # 1. login to the docker registry # 2. run maven goals # 3. run include-docker-push.sh # # Required Variables: # pom: name/location of the pom.xml file relative to the workspace # maven-properties: properties passed to maven name: "{project-name}-{stream}-aai-docker-java-daily" project-type: freestyle node: "{build-node}" docker-image-name: "" disabled: false java-version: "openjdk8" 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}" - docker-image-name: docker-image-name: "{docker-image-name}" scm: - gerrit-trigger-scm: refspec: "" choosing-strategy: "default" submodule-recursive: "{submodule-recursive}" wrappers: - infra-wrappers: build-timeout: "{build-timeout}" triggers: # 12 AM UTC - gerrit-trigger-release-manually: server: "{server-name}" project: "{project}" branch: "{branch}" 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}" - docker-login - maven-target: maven-version: "{maven-version}" pom: "pom.xml" goals: "clean install -DskipTests -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" settings: "{mvn-settings}" settings-type: cfp global-settings: "global-settings" global-settings-type: cfp - maven-target: maven-version: "{maven-version}" pom: "{pom}" goals: "{mvn-goals}" settings: "{mvn-settings}" settings-type: cfp global-settings: "global-settings" global-settings-type: cfp properties: - maven.test.skip=true - docker.pull.registry=nexus3.onap.org:10001 - docker.push.registry=nexus3.onap.org:10003 - shell: !include-raw-escape: include-docker-push.sh publishers: - lf-infra-publish - job-template: # Job template for Java merge jobs for SDC specific repos # # The purpose of this job template is to run: # 1. maven clean deploy # # Required Variables: # branch: git branch (eg. stable/lithium or master) <<: *merge_java_defaults name: "{project-name}-{stream}-sdc-merge-java" node: "{build-node}" build-timeout: 120 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}" - docker-login - maven-docker-push-daily: maven-version: "{maven-version}" mvn-settings: "{mvn-settings}" pom: "{docker-pom}" # 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