2 # This file contains job templates for Maven projects.
5 name: '{project-name}-maven-jobs'
7 # This job group contains all the recommended jobs that should be deployed
12 - gerrit-maven-release
14 - gerrit-maven-verify-dependencies
17 name: '{project-name}-github-maven-jobs'
19 # This job group contains all the recommended jobs that should be deployed
20 # for any project ci that is using github.
24 - github-maven-release
28 name: '{project-name}-maven-javadoc-jobs'
30 # This job group contains all the recommended jobs that should be deployed
34 - gerrit-maven-javadoc-publish
35 - gerrit-maven-javadoc-verify
38 name: '{project-name}-github-maven-javadoc-jobs'
40 # This job group contains all the recommended jobs that should be deployed
44 - github-maven-javadoc-publish
45 - github-maven-javadoc-verify
51 - lf_maven_common: &lf_maven_common
54 project-type: freestyle
59 - lf-infra-properties:
60 build-days-to-keep: '{build-days-to-keep}'
63 - lf-infra-parameters:
67 lftools-version: '{lftools-version}'
68 - lf-infra-maven-parameters:
69 mvn-opts: '{mvn-opts}'
70 mvn-params: '{mvn-params}'
71 mvn-version: '{mvn-version}'
72 # Staging repos do not make sense for CLM jobs so set it blank.
73 staging-profile-id: '{staging-profile-id}'
77 build-timeout: '{build-timeout}'
78 jenkins-ssh-credential: '{jenkins-ssh-credential}'
81 # TODO: Make email notification work.
82 # - lf-infra-email-notify:
83 # email-recipients: '{email-recipients}'
84 # email-prefix: '[releng]'
91 - lf_maven_clm: &lf_maven_clm
94 # Produces a CLM scan of the code into Nexus IQ Server.
96 # Required parameters:
97 # build-node: The node to run build on.
98 # jenkins-ssh-credential: Credential to use for SSH. (Generally should
99 # be configured in defaults.yaml)
100 # mvn-settings: The name of settings file containing credentials for
103 # Optional parameters:
104 # mvn-global-settings: The name of the Maven global settings to use for
105 # Maven configuration. (default: global-settings)
107 ######################
108 # Default parameters #
109 ######################
112 build-days-to-keep: 30 # 30 days for troubleshooting purposes
114 git-url: '$GIT_URL/$PROJECT'
115 java-version: openjdk8
116 mvn-global-settings: global-settings
121 submodule-recursive: true
123 # Staging repos do not make sense for CLM jobs so set it blank.
124 staging-profile-id: ''
126 #####################
127 # Job Configuration #
128 #####################
131 # Build weekly on Saturdays
136 mvn-version: '{mvn-version}'
137 - lf-provide-maven-settings:
138 global-settings-file: '{mvn-global-settings}'
139 settings-file: '{mvn-settings}'
140 - shell: !include-raw-escape:
141 - ../shell/common-variables.sh
142 - ../shell/sonatype-clm.sh
143 - lf-provide-maven-settings-cleanup
144 - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
146 application-name: '{project-name}'
149 name: '{project-name}-maven-clm-{stream}'
152 # yamllint disable-line rule:key-duplicates
156 - lf-infra-gerrit-scm:
157 jenkins-ssh-credential: '{jenkins-ssh-credential}'
159 refspec: '$GERRIT_REFSPEC'
160 branch: '$GERRIT_BRANCH'
161 submodule-recursive: '{submodule-recursive}'
162 choosing-strategy: default
165 name: '{project-name}-maven-clm-{stream}'
168 # yamllint disable-line rule:key-duplicates
173 url: '{git-url}/{github-org}/{project}'
176 - lf-infra-github-scm:
177 url: '{git-clone-url}{github-org}/{project}'
178 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
180 submodule-recursive: '{submodule-recursive}'
181 choosing-strategy: default
182 jenkins-ssh-credential: '{jenkins-ssh-credential}'
184 #########################
185 # Maven Javadoc Publish #
186 #########################
188 - lf_maven_javadoc_publish: &lf_maven_javadoc_publish
189 name: lf-maven-javadoc-publish
191 # Produces and publishes javadocs for a Maven project.
193 # Expects javadocs to be available in $WORKSPACE/target/site/apidocs
195 # Required parameters:
197 # :build-node: The node to run build on.
198 # :javadoc-path: The path in Nexus to deploy javadoc to.
199 # :jenkins-ssh-credential: Credential to use for SSH. (Generally should
200 # be configured in defaults.yaml)
201 # :mvn-settings: The name of settings file containing credentials for
203 # :mvn-site-id: Maven Server ID from settings.xml to pull credentials from.
204 # (Note: This setting should be configured in defaults.yaml.)
206 # Optional parameters:
208 # :branch: The branch to build against. (default: master)
209 # :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
210 # :build-timeout: Timeout in seconds before aborting build. (default: 60)
211 # :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
212 # :java-version: Version of Java to use for the build. (default: openjdk8)
213 # :mvn-global-settings: The name of the Maven global settings to use for
214 # Maven configuration. (default: global-settings)
215 # :mvn-opts: Sets MAVEN_OPTS. (default: '')
216 # :mvn-params: Additional mvn parameters to pass to the cli. (default: '')
217 # :mvn-version: Version of maven to use. (default: mvn33)
218 # :submodule-recursive: Whether to checkout submodules recursively.
221 # :gerrit_javadoc_merge_triggers: Override Gerrit Triggers.
223 ######################
224 # Default parameters #
225 ######################
228 build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
230 git-url: '$GIT_URL/$PROJECT'
231 java-version: openjdk8
232 mvn-global-settings: global-settings
236 staging-profile-id: '' # Unused by the javadoc jobs
238 submodule-recursive: true
240 gerrit_javadoc_merge_triggers:
241 - change-merged-event
242 - comment-added-contains-event:
243 comment-contains-value: remerge$
245 #####################
246 # Job Configuration #
247 #####################
251 mvn-version: '{mvn-version}'
252 - lf-provide-maven-settings:
253 global-settings-file: '{mvn-global-settings}'
254 settings-file: '{mvn-settings}'
255 - lf-infra-create-netrc:
256 server-id: '{mvn-site-id}'
258 properties-content: 'DEPLOY_PATH={javadoc-path}'
259 - shell: !include-raw-escape:
260 - ../shell/common-variables.sh
261 - ../shell/maven-javadoc-generate.sh
262 - ../shell/lftools-install.sh
263 - ../shell/maven-javadoc-publish.sh
264 - lf-provide-maven-settings-cleanup
267 name: '{project-name}-maven-javadoc-publish-{stream}'
268 id: gerrit-maven-javadoc-publish
270 # yamllint disable-line rule:key-duplicates
271 <<: *lf_maven_javadoc_publish
273 git-url: '$GIT_URL/$GERRIT_PROJECT'
276 - lf-infra-gerrit-scm:
280 submodule-recursive: '{submodule-recursive}'
281 choosing-strategy: default
282 jenkins-ssh-credential: '{jenkins-ssh-credential}'
286 server-name: '{gerrit-server-name}'
287 trigger-on: '{obj:gerrit_javadoc_merge_triggers}'
289 - project-compare-type: ANT
290 project-pattern: '{project}'
292 - branch-compare-type: ANT
293 branch-pattern: '**/{branch}'
296 name: '{project-name}-maven-javadoc-publish-{stream}'
297 id: github-maven-javadoc-publish
299 # yamllint disable-line rule:key-duplicates
300 <<: *lf_maven_javadoc_publish
304 url: '{git-url}/{github-org}/{project}'
307 - lf-infra-github-scm:
308 url: '{git-clone-url}{github-org}/{project}'
311 submodule-recursive: '{submodule-recursive}'
312 choosing-strategy: default
313 jenkins-ssh-credential: '{jenkins-ssh-credential}'
319 - lf-infra-github-pr-trigger:
320 trigger-phrase: '^remerge$'
321 only-trigger-phrase: true
322 status-context: 'JJB Merge'
325 github-org: '{github-org}'
326 github_pr_whitelist: '{obj:github_pr_whitelist}'
327 github_pr_admin_list: '{obj:github_pr_admin_list}'
329 ########################
330 # Maven Javadoc Verify #
331 ########################
333 - lf_maven_javadoc_verify: &lf_maven_javadoc_verify
334 name: lf-maven-javadoc-verify
336 # Produces javadocs for a Maven project.
338 # Expects javadocs to be available in $WORKSPACE/target/site/apidocs
340 # Required parameters:
341 # build-node: The node to run build on.
342 # jenkins-ssh-credential: Credential to use for SSH. (Generally should
343 # be configured in defaults.yaml)
344 # mvn-settings: The name of settings file containing credentials for
347 # Optional parameters:
349 # :branch: The branch to build against. (default: master)
350 # :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
351 # :build-timeout: Timeout in seconds before aborting build. (default: 60)
352 # :deploy-path: The path in Nexus to deploy javadoc to. (default: $PROJECT/$STREAM)
353 # :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
354 # :java-version: Version of Java to use for the build. (default: openjdk8)
355 # :mvn-global-settings: The name of the Maven global settings to use for
356 # Maven configuration. (default: global-settings)
357 # :mvn-opts: Sets MAVEN_OPTS. (default: '')
358 # :mvn-params: Additional mvn parameters to pass to the cli. (default: '')
359 # :mvn-version: Version of maven to use. (default: mvn33)
360 # :submodule-recursive: Whether to checkout submodules recursively.
363 # :gerrit_javadoc_verify_triggers: Override Gerrit Triggers.
365 ######################
366 # Default parameters #
367 ######################
370 build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
372 git-url: '$GIT_URL/$PROJECT'
373 java-version: openjdk8
374 mvn-global-settings: global-settings
378 staging-profile-id: '' # Unused by the javadoc jobs
380 submodule-recursive: true
382 gerrit_javadoc_verify_triggers:
383 - patchset-created-event:
385 exclude-trivial-rebase: false
386 exclude-no-code-change: false
387 - draft-published-event
388 - comment-added-contains-event:
389 comment-contains-value: recheck$
391 #####################
392 # Job Configuration #
393 #####################
397 mvn-version: '{mvn-version}'
398 - lf-provide-maven-settings:
399 global-settings-file: '{mvn-global-settings}'
400 settings-file: '{mvn-settings}'
401 - shell: !include-raw-escape:
402 - ../shell/common-variables.sh
403 - ../shell/maven-javadoc-generate.sh
404 - lf-provide-maven-settings-cleanup
407 name: '{project-name}-maven-javadoc-verify-{stream}'
408 id: gerrit-maven-javadoc-verify
410 # yamllint disable-line rule:key-duplicates
411 <<: *lf_maven_javadoc_verify
414 - lf-infra-gerrit-scm:
415 jenkins-ssh-credential: '{jenkins-ssh-credential}'
417 refspec: '$GERRIT_REFSPEC'
418 branch: '$GERRIT_BRANCH'
419 submodule-recursive: '{submodule-recursive}'
420 choosing-strategy: gerrit
424 server-name: '{gerrit-server-name}'
425 trigger-on: '{obj:gerrit_javadoc_verify_triggers}'
427 - project-compare-type: ANT
428 project-pattern: '{project}'
430 - branch-compare-type: ANT
431 branch-pattern: '**/{branch}'
434 name: '{project-name}-maven-javadoc-verify-{stream}'
435 id: github-maven-javadoc-verify
437 # yamllint disable-line rule:key-duplicates
438 <<: *lf_maven_javadoc_verify
442 url: '{git-url}/{github-org}/{project}'
445 - lf-infra-github-scm:
446 url: '{git-clone-url}{github-org}/{project}'
447 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
449 submodule-recursive: '{submodule-recursive}'
450 choosing-strategy: default
451 jenkins-ssh-credential: '{jenkins-ssh-credential}'
454 - lf-infra-github-pr-trigger:
455 trigger-phrase: '^recheck$'
456 only-trigger-phrase: true
457 status-context: 'Maven Javadoc'
463 github_pr_admin_list:
470 - lf_maven_release: &lf_maven_release
471 name: lf-maven-release
473 # Produces a release candidate by creating a staging repo in Nexus.
475 # Runs a Maven build and deploys to $WORKSPACE/m2repo directory. This
476 # directory can then be reused later to deploy to Nexus.
478 # Required parameters:
479 # :build-node: The node to run build on.
480 # :jenkins-ssh-credential: Credential to use for SSH. (Generally should
481 # be configured in defaults.yaml)
482 # :mvn-settings: The name of settings file containing credentials for
484 # :mvn-staging-id: Maven Server ID from settings.xml to pull credentials from.
485 # (Note: This setting should be configured in defaults.yaml.)
486 # :staging-profile-id: Profile ID of the project's Nexus staging profile.
488 # Optional parameters:
489 # :gerrit_verify_triggers: Override Gerrit Triggers.
490 # :mvn-global-settings: The name of the Maven global settings to use for
491 # Maven configuration. (default: global-settings)
492 # :cron: Cron schedule when to trigger the job. This parameter also
493 # supports multiline input via YAML pipe | character in cases where
494 # one may want to provide more than 1 cron timer. (default: '')
496 ######################
497 # Default parameters #
498 ######################
501 build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
503 git-url: '$GIT_URL/$PROJECT'
504 java-version: openjdk8
505 mvn-global-settings: global-settings
510 submodule-recursive: true
513 gerrit_release_triggers:
514 - comment-added-contains-event:
515 comment-contains-value: build release$
517 #####################
518 # Job Configuration #
519 #####################
522 - lf-jacoco-nojava-workaround
524 mvn-version: '{mvn-version}'
525 - lf-provide-maven-settings:
526 global-settings-file: '{mvn-global-settings}'
527 settings-file: '{mvn-settings}'
528 - lf-infra-create-netrc:
529 server-id: '{mvn-staging-id}'
530 - shell: !include-raw-escape:
531 - ../shell/lftools-install.sh
532 - ../shell/common-variables.sh
533 - ../shell/maven-patch-release.sh
534 - ../shell/maven-build.sh
535 - ../shell/maven-stage.sh
536 - lf-provide-maven-settings-cleanup
539 name: '{project-name}-maven-release-{stream}'
540 id: gerrit-maven-release
542 # yamllint disable-line rule:key-duplicates
543 <<: *lf_maven_release
546 - lf-infra-gerrit-scm:
547 jenkins-ssh-credential: '{jenkins-ssh-credential}'
549 refspec: '$GERRIT_REFSPEC'
550 branch: '$GERRIT_BRANCH'
551 submodule-recursive: '{submodule-recursive}'
552 choosing-strategy: default
555 - timed: '{obj:cron}'
557 server-name: '{gerrit-server-name}'
558 trigger-on: '{obj:gerrit_release_triggers}'
560 - project-compare-type: ANT
561 project-pattern: '{project}'
563 - branch-compare-type: ANT
564 branch-pattern: '**/{branch}'
567 name: '{project-name}-maven-release-{stream}'
568 id: github-maven-release
570 # yamllint disable-line rule:key-duplicates
571 <<: *lf_maven_release
575 url: '{git-url}/{github-org}/{project}'
578 - lf-infra-github-scm:
579 url: '{git-clone-url}{github-org}/{project}'
580 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
582 submodule-recursive: '{submodule-recursive}'
583 choosing-strategy: default
584 jenkins-ssh-credential: '{jenkins-ssh-credential}'
587 - timed: '{obj:cron}'
588 - lf-infra-github-pr-trigger:
589 trigger-phrase: '^build release$'
590 only-trigger-phrase: true
591 status-context: 'Maven Release'
597 github_pr_admin_list:
604 - lf_maven_sonar: &lf_maven_sonar
607 # Sonar job which runs mvn clean install then publishes to Sonar.
609 # This job purposely only runs on the master branch as there are Additional
610 # configuration needed to support multiple branches and there's not much
611 # interest in that kind of support.
613 # Required parameters:
615 # :build-node: The node to run build on.
616 # :jenkins-ssh-credential: Credential to use for SSH. (Generally should
617 # be configured in defaults.yaml)
618 # :mvn-settings: The name of settings file containing credentials for
621 # Optional parameters:
623 # :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
624 # :build-timeout: Timeout in seconds before aborting build. (default: 60)
625 # :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
626 # :java-version: Version of Java to use for the build. (default: openjdk8)
627 # :mvn-global-settings: The name of the Maven global settings to use for
628 # Maven configuration. (default: global-settings)
629 # :mvn-opts: Sets MAVEN_OPTS. (default: '')
630 # :mvn-params: Additional mvn parameters to pass to the cli. (default: '')
631 # :mvn-version: Version of maven to use. (default: mvn33)
632 # :submodule-recursive: Whether to checkout submodules recursively.
635 # :gerrit_sonar_triggers: Override Gerrit Triggers.
637 ######################
638 # Default parameters #
639 ######################
641 branch: master # Sonar should always be run on master branch
642 build-days-to-keep: 7
644 git-url: '$GIT_URL/$PROJECT'
645 java-version: openjdk8
646 mvn-global-settings: global-settings
651 submodule-recursive: true
653 gerrit_sonar_triggers:
654 - comment-added-contains-event:
655 comment-contains-value: run-sonar$
657 # Staging repos do not make sense for CLM jobs so set it blank.
658 staging-profile-id: ''
660 #####################
661 # Job Configuration #
662 #####################
667 server-name: '{gerrit-server-name}'
668 trigger-on: '{obj:gerrit_sonar_triggers}'
670 - project-compare-type: 'ANT'
671 project-pattern: '{project}'
673 - branch-compare-type: 'ANT'
674 branch-pattern: '**/master'
682 - lf-infra-maven-sonar:
683 mvn-settings: '{mvn-settings}'
684 mvn-version: '{mvn-version}'
692 name: lf-infra-maven-sonar
693 # Run a Sonar build with Maven
696 mvn-version: '{mvn-version}'
698 # Switch this to the sonar wrapper when JJB 2.0 is available
699 properties-content: |
700 SONAR_HOST_URL=$SONAR_URL
701 SONAR_MAVEN_GOAL=sonar:sonar
702 - lf-provide-maven-settings:
703 global-settings-file: global-settings
704 settings-file: '{mvn-settings}'
705 - shell: !include-raw-escape:
706 - ../shell/common-variables.sh
707 - ../shell/maven-sonar.sh
708 - lf-provide-maven-settings-cleanup
711 name: '{project-name}-sonar'
712 id: gerrit-maven-sonar
714 # yamllint disable-line rule:key-duplicates
718 - lf-infra-gerrit-scm:
719 jenkins-ssh-credential: '{jenkins-ssh-credential}'
721 refspec: $GERRIT_REFSPEC
722 branch: $GERRIT_BRANCH
723 submodule-recursive: '{submodule-recursive}'
724 choosing-strategy: default
727 name: '{project-name}-sonar'
728 id: github-maven-sonar
730 # yamllint disable-line rule:key-duplicates
735 url: '{git-url}/{github-org}/{project}'
738 - lf-infra-github-scm:
739 url: '{git-clone-url}{github-org}/{project}'
740 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
742 submodule-recursive: '{submodule-recursive}'
743 choosing-strategy: default
744 jenkins-ssh-credential: '{jenkins-ssh-credential}'
747 - lf-infra-github-pr-trigger:
748 trigger-phrase: '^recheck$'
749 only-trigger-phrase: false
750 status-context: 'Maven Verify'
756 github_pr_admin_list:
763 - lf_maven_verify: &lf_maven_verify
764 name: lf-maven-verify
766 # Verify job which runs mvn clean install to test a project build..
768 # Required parameters:
770 # :build-node: The node to run build on.
771 # :jenkins-ssh-credential: Credential to use for SSH. (Generally should
772 # be configured in defaults.yaml)
773 # :mvn-settings: The name of settings file containing credentials for
776 # Optional parameters:
778 # :branch: Git branch to fetch for the build. (default: master)
779 # :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
780 # :build-timeout: Timeout in seconds before aborting build. (default: 60)
781 # :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
782 # :java-version: Version of Java to use for the build. (default: openjdk8)
783 # :mvn-global-settings: The name of the Maven global settings to use for
784 # Maven configuration. (default: global-settings)
785 # :mvn-opts: Sets MAVEN_OPTS. (default: '')
786 # :mvn-params: Additional mvn parameters to pass to the cli. (default: '')
787 # :mvn-version: Version of maven to use. (default: mvn33)
788 # :stream: Keyword that can be used to represent a release code-name.
789 # Often the same as the branch. (default: master)
790 # :submodule-recursive: Whether to checkout submodules recursively.
793 # :gerrit_verify_triggers: Override Gerrit Triggers.
794 # :gerrit_trigger_file_paths: Override file paths which can be used to
795 # filter which file modifications will trigger a build.
797 ######################
798 # Default parameters #
799 ######################
802 build-days-to-keep: 7
804 git-url: '$GIT_URL/$PROJECT'
805 java-version: openjdk8
806 mvn-global-settings: global-settings
808 mvn-params: '-Dstream=$STREAM'
811 submodule-recursive: true
813 gerrit_verify_triggers:
814 - patchset-created-event:
816 exclude-trivial-rebase: false
817 exclude-no-code-change: false
818 - draft-published-event
819 - comment-added-contains-event:
820 comment-contains-value: recheck$
821 gerrit_trigger_file_paths:
825 #####################
826 # Job Configuration #
827 #####################
832 - lf-jacoco-nojava-workaround
834 mvn-version: '{mvn-version}'
835 - lf-provide-maven-settings:
836 global-settings-file: '{mvn-global-settings}'
837 settings-file: '{mvn-settings}'
838 - shell: !include-raw-escape:
839 - ../shell/lftools-install.sh
840 - ../shell/common-variables.sh
841 - ../shell/maven-build.sh
842 - lf-provide-maven-settings-cleanup
850 name: '{project-name}-maven-verify-{stream}-{mvn-version}-{java-version}'
851 id: gerrit-maven-verify
853 # yamllint disable-line rule:key-duplicates
857 - lf-infra-gerrit-scm:
858 jenkins-ssh-credential: '{jenkins-ssh-credential}'
860 refspec: '$GERRIT_REFSPEC'
861 branch: '$GERRIT_BRANCH'
862 submodule-recursive: '{submodule-recursive}'
863 choosing-strategy: gerrit
867 server-name: '{gerrit-server-name}'
868 trigger-on: '{obj:gerrit_verify_triggers}'
870 - project-compare-type: ANT
871 project-pattern: '{project}'
873 - branch-compare-type: ANT
874 branch-pattern: '**/{branch}'
875 file-paths: '{obj:gerrit_trigger_file_paths}'
878 name: '{project-name}-maven-verify-{stream}-{mvn-version}-{java-version}'
879 id: github-maven-verify
881 # yamllint disable-line rule:key-duplicates
886 url: '{git-url}/{github-org}/{project}'
889 - lf-infra-github-scm:
890 url: '{git-clone-url}{github-org}/{project}'
891 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
893 submodule-recursive: '{submodule-recursive}'
894 choosing-strategy: default
895 jenkins-ssh-credential: '{jenkins-ssh-credential}'
898 - lf-infra-github-pr-trigger:
899 trigger-phrase: '^recheck$'
900 only-trigger-phrase: false
901 status-context: 'Maven Verify'
907 github_pr_admin_list:
910 #############################
911 # Maven Verify Dependencies #
912 #############################
914 - lf_maven_verify_dependencies: &lf_maven_verify_dependencies
915 name: lf-maven-verify-dependencies
917 # Verify job which runs mvn clean install to test a project build /w deps
919 # This job can be used to verify a patch in conjunction to all of the
920 # upstream patches it depends on. The user of this job can provide a list
921 # via comment trigger. The trigger is:
923 # 'recheck: SPACE_SEPERATED_LIST_OF_PATCHES'
925 # Required parameters:
927 # :build-node: The node to run build on.
928 # :jenkins-ssh-credential: Credential to use for SSH. (Generally should
929 # be configured in defaults.yaml)
930 # :mvn-settings: The name of settings file containing credentials for
933 # Optional parameters:
935 # :branch: Git branch to fetch for the build. (default: master)
936 # :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
937 # :build-timeout: Timeout in seconds before aborting build. (default: 60)
938 # :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
939 # :java-version: Version of Java to use for the build. (default: openjdk8)
940 # :mvn-global-settings: The name of the Maven global settings to use for
941 # Maven configuration. (default: global-settings)
942 # :mvn-opts: Sets MAVEN_OPTS. (default: '')
943 # :mvn-params: Additional mvn parameters to pass to the cli. (default: '')
944 # :mvn-version: Version of maven to use. (default: mvn33)
945 # :stream: Keyword that can be used to represent a release code-name.
946 # Often the same as the branch. (default: master)
947 # :submodule-recursive: Whether to checkout submodules recursively.
950 # :gerrit_verify_triggers: Override Gerrit Triggers.
951 # :gerrit_trigger_file_paths: Override file paths which can be used to
952 # filter which file modifications will trigger a build.
954 ######################
955 # Default parameters #
956 ######################
959 build-days-to-keep: 7
961 git-url: '$GIT_URL/$PROJECT'
962 java-version: openjdk8
963 mvn-global-settings: global-settings
965 mvn-params: '-Dstream=$STREAM'
967 staging-profile-id: '' # Unused by this job
969 submodule-recursive: true
971 gerrit_verify_triggers:
972 - comment-added-contains-event:
973 comment-contains-value: 'recheck: [0-9 ]+'
974 gerrit_trigger_file_paths:
978 #####################
979 # Job Configuration #
980 #####################
985 - lf-jacoco-nojava-workaround
987 mvn-version: '{mvn-version}'
988 - lf-provide-maven-settings:
989 global-settings-file: '{mvn-global-settings}'
990 settings-file: '{mvn-settings}'
991 - lf-fetch-dependent-patches
992 - shell: !include-raw-escape:
993 - ../shell/common-variables.sh
994 - ../shell/maven-build-deps.sh
995 - shell: !include-raw-escape:
996 - ../shell/common-variables.sh
997 - ../shell/maven-build.sh
998 - lf-provide-maven-settings-cleanup
1006 name: '{project-name}-maven-verify-deps-{stream}-{mvn-version}-{java-version}'
1007 id: gerrit-maven-verify-dependencies
1008 <<: *lf_maven_common
1009 # yamllint disable-line rule:key-duplicates
1010 <<: *lf_maven_verify_dependencies
1013 - lf-infra-gerrit-scm:
1014 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1015 git-url: '{git-url}'
1016 refspec: '$GERRIT_REFSPEC'
1017 branch: '$GERRIT_BRANCH'
1018 submodule-recursive: '{submodule-recursive}'
1019 choosing-strategy: gerrit
1023 server-name: '{gerrit-server-name}'
1024 trigger-on: '{obj:gerrit_verify_triggers}'
1026 - project-compare-type: ANT
1027 project-pattern: '{project}'
1029 - branch-compare-type: ANT
1030 branch-pattern: '**/{branch}'
1031 file-paths: '{obj:gerrit_trigger_file_paths}'