- github-org: ''
- github_pr_whitelist:
- - ''
- github_pr_admin_list:
- - ''
-
-#################
-# Maven Release #
-#################
-
-- lf_maven_release: &lf_maven_release
- name: lf-maven-release
-
- # Produces a release candidate by creating a staging repo in Nexus.
- #
- # Runs a Maven build and deploys to $WORKSPACE/m2repo directory. This
- # directory can then be reused later to deploy to Nexus.
- #
- # Required parameters:
- #
- # :build-node: The node to run build on.
- # :jenkins-ssh-credential: Credential to use for SSH. (Generally should
- # be configured in defaults.yaml)
- # :mvn-settings: The name of settings file containing credentials for
- # the project.
- # :mvn-staging-id: Maven Server ID from settings.xml to pull credentials from.
- # (Note: This setting should be configured in defaults.yaml.)
- # :staging-profile-id: Profile ID of the project's Nexus staging profile.
- #
- # Optional parameters:
- #
- # :branch: The branch to build against. (default: master)
- # :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
- # :build-timeout: Timeout in seconds before aborting build. (default: 60)
- # :cron: Cron schedule when to trigger the job. This parameter also
- # supports multiline input via YAML pipe | character in cases where
- # one may want to provide more than 1 cron timer. (default: '')
- # :deploy-path: The path in Nexus to deploy javadoc to. (default: $PROJECT/$STREAM)
- # :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
- # :java-version: Version of Java to use for the build. (default: openjdk8)
- # :mvn-global-settings: The name of the Maven global settings to use for
- # Maven configuration. (default: global-settings)
- # :mvn-opts: Sets MAVEN_OPTS. (default: '')
- # :mvn-params: Additional mvn parameters to pass to the cli. (default: '')
- # :mvn-version: Version of maven to use. (default: mvn33)
- # :stream: Keyword that can be used to represent a release code-name.
- # Often the same as the branch. (default: master)
- # :submodule-recursive: Whether to checkout submodules recursively.
- # (default: true)
- #
- # :gerrit_release_triggers: Override Gerrit Triggers.
+ org-list:
+ - '{github-org}'
+ white-list: '{obj:github_pr_whitelist}'
+ admin-list: '{obj:github_pr_admin_list}'
+ white-list-target-branches:
+ - '{branch}'
+ included-regions: '{obj:github_included_regions}'
+
+##########################
+# Maven Merge for Docker #
+##########################
+
+- lf_maven_docker_merge: &lf_maven_docker_merge
+ name: lf-maven-docker-merge
+
+ builders:
+ - lf-infra-pre-build
+ - lf-jacoco-nojava-workaround
+ - lf-maven-install:
+ mvn-version: '{mvn-version}'
+ - lf-infra-docker-login:
+ global-settings-file: '{mvn-global-settings}'
+ settings-file: '{mvn-settings}'
+ - lf-update-java-alternatives:
+ java-version: '{java-version}'
+ # must provide maven settings AFTER docker due to its cleanup
+ - lf-provide-maven-settings:
+ global-settings-file: '{mvn-global-settings}'
+ settings-file: '{mvn-settings}'
+ - lf-infra-create-netrc:
+ server-id: '{mvn-snapshot-id}'
+ - inject:
+ properties-content: |
+ NEXUS_CUT_DIRS={nexus-cut-dirs}
+ NEXUS_REPO={nexus-snapshot-repo}
+ CONTAINER_PULL_REGISTRY={container-public-registry}
+ CONTAINER_PUSH_REGISTRY={container-snapshot-registry}
+ - shell: !include-raw-escape: ../shell/maven-fetch-metadata.sh
+ - lf-maven-build:
+ mvn-goals: '{mvn-goals}'
+ # NO lf-maven-deploy
+ - lf-provide-maven-settings-cleanup
+
+- job-template:
+ name: '{project-name}-maven-docker-merge-{stream}'
+ id: gerrit-maven-docker-merge
+ <<: *lf_maven_common
+ # yamllint disable-line rule:key-duplicates
+ <<: *lf_maven_merge
+ # yamllint disable-line rule:key-duplicates
+ <<: *lf_maven_docker_merge
+
+ scm:
+ - lf-infra-gerrit-scm:
+ jenkins-ssh-credential: '{jenkins-ssh-credential}'
+ git-url: '{git-url}'
+ refspec: '$GERRIT_REFSPEC'
+ branch: '$GERRIT_BRANCH'
+ submodule-recursive: '{submodule-recursive}'
+ submodule-timeout: '{submodule-timeout}'
+ submodule-disable: '{submodule-disable}'
+ choosing-strategy: default
+
+ triggers:
+ - gerrit:
+ server-name: '{gerrit-server-name}'
+ trigger-on: '{obj:gerrit_merge_triggers}'
+ projects:
+ - project-compare-type: ANT
+ project-pattern: '{project}'
+ branches:
+ - branch-compare-type: ANT
+ branch-pattern: '**/{branch}'
+ file-paths: '{obj:gerrit_trigger_file_paths}'
+
+- job-template:
+ name: '{project-name}-maven-docker-merge-{stream}'
+ id: github-maven-docker-merge
+ <<: *lf_maven_common
+ # yamllint disable-line rule:key-duplicates
+ <<: *lf_maven_merge
+ # yamllint disable-line rule:key-duplicates
+ <<: *lf_maven_docker_merge
+
+ properties:
+ - lf-infra-properties:
+ build-days-to-keep: '{build-days-to-keep}'
+ - github:
+ url: '{github-url}/{github-org}/{project}'
+
+ scm:
+ - lf-infra-github-scm:
+ url: '{git-clone-url}{github-org}/{project}'
+ refspec: ''
+ branch: 'refs/heads/{branch}'
+ submodule-recursive: '{submodule-recursive}'
+ submodule-timeout: '{submodule-timeout}'
+ submodule-disable: '{submodule-disable}'
+ choosing-strategy: default
+ jenkins-ssh-credential: '{jenkins-ssh-credential}'
+
+ triggers:
+ - github
+ - pollscm:
+ cron: ''
+ - github-pull-request:
+ trigger-phrase: '^remerge$'
+ only-trigger-phrase: true
+ status-context: 'Maven Docker Merge'
+ permit-all: true
+ github-hooks: true
+ org-list:
+ - '{github-org}'
+ white-list: '{obj:github_pr_whitelist}'
+ admin-list: '{obj:github_pr_admin_list}'
+ white-list-target-branches:
+ - '{branch}'
+ included-regions: '{obj:github_included_regions}'
+
+###############
+# Maven Stage #
+###############
+
+- lf_maven_stage: &lf_maven_stage
+ name: lf-maven-stage