2 # This file contains job templates for Maven projects.
12 properties-content: "MAVEN_GOALS={mvn-goals}"
13 - shell: !include-raw-escape:
14 - ../shell/common-variables.sh
15 - ../shell/maven-build.sh
20 - shell: !include-raw:
21 - ../shell/common-variables.sh
22 - ../shell/maven-deploy.sh
25 name: lf-maven-versions-plugin
28 condition-kind: boolean-expression
29 condition-expression: "{maven-versions-plugin}"
32 properties-file: "{version-properties-file}"
34 maven-version: "{mvn-version}"
36 goals: "versions:set versions:update-child-modules versions:commit -B"
38 - "newVersion=${{release_version}}"
39 settings: "{mvn-settings}"
41 global-settings: "global-settings"
42 global-settings-type: cfp
47 - lf-provide-maven-settings:
48 global-settings-file: "{mvn-global-settings}"
49 settings-file: "{mvn-settings}"
50 - lf-infra-create-netrc:
51 server-id: "{mvn-staging-id}"
52 # include-raw-escape fails due to JJB bug
53 - shell: !include-raw-escape:
54 - ../shell/common-variables.sh
55 - ../shell/maven-stage.sh
56 - lf-provide-maven-settings-cleanup
59 name: lf-update-java-alternatives
62 # Work around inject plugin overriding our GIT_URL variable incorrectly
63 # https://issues.jenkins-ci.org/browse/JENKINS-49775
65 SET_JDK_VERSION={java-version}
67 - shell: !include-raw-escape: ../shell/update-java-alternatives.sh
69 properties-file: "/tmp/java.env"
75 - lf_maven_common: &lf_maven_common
78 ######################
79 # Default parameters #
80 ######################
85 **/target/**/feature.xml
86 **/target/failsafe-reports/failsafe-summary.xml
87 **/target/surefire-reports/*-output.txt
93 project-type: freestyle
97 - lf-infra-properties:
98 build-days-to-keep: "{build-days-to-keep}"
101 - lf-infra-parameters:
105 - lf-infra-maven-parameters:
106 mvn-opts: "{mvn-opts}"
107 mvn-params: "{mvn-params}"
108 mvn-version: "{mvn-version}"
110 name: ARCHIVE_ARTIFACTS
111 default: "{archive-artifacts}"
112 description: Artifacts to archive to the logs server.
116 build-timeout: "{build-timeout}"
117 jenkins-ssh-credential: "{jenkins-ssh-credential}"
120 # TODO: Make email notification work.
121 # - lf-infra-email-notify:
122 # email-recipients: '{email-recipients}'
123 # email-prefix: '[releng]'
130 - lf_maven_clm: &lf_maven_clm
133 ######################
134 # Default parameters #
135 ######################
138 build-days-to-keep: 30 # 30 days for troubleshooting purposes
141 git-url: "$GIT_URL/$PROJECT"
142 github-url: "https://github.com"
143 java-version: openjdk8
144 mvn-global-settings: global-settings
145 mvn-goals: clean install
149 nexus-iq-namespace: "" # Recommend a trailing dash when set. Example: odl-
150 nexus-iq-stage: "build"
152 submodule-recursive: true
153 submodule-timeout: 10
154 submodule-disable: false
156 nexus_iq_scan_patterns:
164 - comment-added-contains-event:
165 comment-contains-value: '^Patch Set\s+\d+:\s+run-clm\s*$'
168 - lf-infra-parameters:
172 - lf-infra-maven-parameters:
173 mvn-opts: "{mvn-opts}"
174 mvn-params: "{mvn-params}"
175 mvn-version: "{mvn-version}"
177 name: ARCHIVE_ARTIFACTS
178 default: "{archive-artifacts}"
179 description: Artifacts to archive to the logs server.
181 nexus-iq-stage: "{nexus-iq-stage}"
183 #####################
184 # Job Configuration #
185 #####################
187 disabled: "{disable-job}"
192 mvn-version: "{mvn-version}"
193 - lf-update-java-alternatives:
194 java-version: "{java-version}"
195 - lf-provide-maven-settings:
196 global-settings-file: "{mvn-global-settings}"
197 settings-file: "{mvn-settings}"
198 - lf-infra-sonatype-clm:
199 mvn-goals: "{mvn-goals}"
200 - lf-provide-maven-settings-cleanup
201 - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
202 - nexus-iq-policy-evaluator:
203 stage: "{nexus-iq-stage}"
204 application-type: "manual"
205 application-id: "{nexus-iq-namespace}{project-name}"
206 scan-patterns: "{obj:nexus_iq_scan_patterns}"
207 fail-build-network-error: true
210 name: lf-infra-sonatype-clm
211 # Run a CLM scan build with Maven
214 properties-content: |
215 MAVEN_GOALS={mvn-goals}
216 - shell: !include-raw-escape:
217 - ../shell/common-variables.sh
218 - ../shell/sonatype-clm.sh
221 name: "{project-name}-maven-clm-{stream}"
224 # yamllint disable-line rule:key-duplicates
228 - lf-infra-gerrit-scm:
229 jenkins-ssh-credential: "{jenkins-ssh-credential}"
231 refspec: "$GERRIT_REFSPEC"
232 branch: "$GERRIT_BRANCH"
233 submodule-recursive: "{submodule-recursive}"
234 submodule-timeout: "{submodule-timeout}"
235 submodule-disable: "{submodule-disable}"
236 choosing-strategy: default
239 # Build weekly on Saturdays
242 server-name: "{gerrit-server-name}"
243 trigger-on: "{obj:gerrit_clm_triggers}"
245 - project-compare-type: ANT
246 project-pattern: "{project}"
248 - branch-compare-type: ANT
249 branch-pattern: "**/{branch}"
257 name: "{project-name}-maven-clm-{stream}"
260 # yamllint disable-line rule:key-duplicates
264 - lf-infra-properties:
265 build-days-to-keep: "{build-days-to-keep}"
267 url: "{github-url}/{github-org}/{project}"
270 - lf-infra-github-scm:
271 url: "{git-clone-url}{github-org}/{project}"
273 branch: "refs/heads/{branch}"
274 submodule-recursive: "{submodule-recursive}"
275 submodule-timeout: "{submodule-timeout}"
276 submodule-disable: "{submodule-disable}"
277 choosing-strategy: default
278 jenkins-ssh-credential: "{jenkins-ssh-credential}"
281 # Build weekly on Saturdays
283 - github-pull-request:
284 trigger-phrase: "^run-clm$"
285 only-trigger-phrase: true
286 status-context: "CLM"
291 white-list: "{obj:github_pr_whitelist}"
292 admin-list: "{obj:github_pr_admin_list}"
293 white-list-target-branches:
296 #########################
297 # Maven Javadoc Publish #
298 #########################
300 - lf_maven_javadoc_publish: &lf_maven_javadoc_publish
301 name: lf-maven-javadoc-publish
303 ######################
304 # Default parameters #
305 ######################
308 build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
311 git-url: "$GIT_URL/$PROJECT"
312 github-url: "https://github.com"
313 java-version: openjdk8
314 mvn-global-settings: global-settings
319 submodule-recursive: true
320 submodule-timeout: 10
321 submodule-disable: false
323 gerrit_merge_triggers:
324 - change-merged-event
325 - comment-added-contains-event:
326 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
328 #####################
329 # Job Configuration #
330 #####################
332 disabled: "{disable-job}"
337 mvn-version: "{mvn-version}"
338 - lf-update-java-alternatives:
339 java-version: "{java-version}"
340 - lf-provide-maven-settings:
341 global-settings-file: "{mvn-global-settings}"
342 settings-file: "{mvn-settings}"
343 - lf-infra-create-netrc:
344 server-id: "{mvn-site-id}"
346 properties-content: "DEPLOY_PATH={javadoc-path}"
347 - shell: !include-raw-escape:
348 - ../shell/common-variables.sh
349 - ../shell/maven-javadoc-generate.sh
350 - ../shell/maven-javadoc-publish.sh
351 - lf-provide-maven-settings-cleanup
354 name: "{project-name}-maven-javadoc-publish-{stream}-{java-version}"
355 id: gerrit-maven-javadoc-publish
357 # yamllint disable-line rule:key-duplicates
358 <<: *lf_maven_javadoc_publish
360 git-url: "$GIT_URL/$GERRIT_PROJECT"
363 - lf-infra-gerrit-scm:
367 submodule-recursive: "{submodule-recursive}"
368 submodule-timeout: "{submodule-timeout}"
369 submodule-disable: "{submodule-disable}"
370 choosing-strategy: default
371 jenkins-ssh-credential: "{jenkins-ssh-credential}"
375 server-name: "{gerrit-server-name}"
376 trigger-on: "{obj:gerrit_merge_triggers}"
378 - project-compare-type: ANT
379 project-pattern: "{project}"
381 - branch-compare-type: ANT
382 branch-pattern: "**/{branch}"
385 name: "{project-name}-maven-javadoc-publish-{stream}-{java-version}"
386 id: github-maven-javadoc-publish
388 # yamllint disable-line rule:key-duplicates
389 <<: *lf_maven_javadoc_publish
392 - lf-infra-properties:
393 build-days-to-keep: "{build-days-to-keep}"
395 url: "{github-url}/{github-org}/{project}"
398 - lf-infra-github-scm:
399 url: "{git-clone-url}{github-org}/{project}"
402 submodule-recursive: "{submodule-recursive}"
403 submodule-timeout: "{submodule-timeout}"
404 submodule-disable: "{submodule-disable}"
405 choosing-strategy: default
406 jenkins-ssh-credential: "{jenkins-ssh-credential}"
412 - github-pull-request:
413 trigger-phrase: "^remerge$"
414 only-trigger-phrase: true
415 status-context: "Maven Javadoc Publish"
420 white-list: "{obj:github_pr_whitelist}"
421 admin-list: "{obj:github_pr_admin_list}"
422 white-list-target-branches:
425 ########################
426 # Maven Javadoc Verify #
427 ########################
429 - lf_maven_javadoc_verify: &lf_maven_javadoc_verify
430 name: lf-maven-javadoc-verify
432 ######################
433 # Default parameters #
434 ######################
437 build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
440 git-url: "$GIT_URL/$PROJECT"
441 github-url: "https://github.com"
442 java-version: openjdk8
443 mvn-global-settings: global-settings
448 submodule-recursive: true
449 submodule-timeout: 10
450 submodule-disable: false
452 gerrit_verify_triggers:
453 - patchset-created-event:
455 exclude-trivial-rebase: false
456 exclude-no-code-change: false
457 - draft-published-event
458 - comment-added-contains-event:
459 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
461 #####################
462 # Job Configuration #
463 #####################
466 disabled: "{disable-job}"
471 mvn-version: "{mvn-version}"
472 - lf-update-java-alternatives:
473 java-version: "{java-version}"
474 - lf-provide-maven-settings:
475 global-settings-file: "{mvn-global-settings}"
476 settings-file: "{mvn-settings}"
477 - shell: !include-raw-escape:
478 - ../shell/common-variables.sh
479 - ../shell/maven-javadoc-generate.sh
480 - lf-provide-maven-settings-cleanup
483 name: "{project-name}-maven-javadoc-verify-{stream}-{java-version}"
484 id: gerrit-maven-javadoc-verify
486 # yamllint disable-line rule:key-duplicates
487 <<: *lf_maven_javadoc_verify
490 - lf-infra-gerrit-scm:
491 jenkins-ssh-credential: "{jenkins-ssh-credential}"
493 refspec: "$GERRIT_REFSPEC"
494 branch: "$GERRIT_BRANCH"
495 submodule-recursive: "{submodule-recursive}"
496 submodule-timeout: "{submodule-timeout}"
497 submodule-disable: "{submodule-disable}"
498 choosing-strategy: gerrit
502 server-name: "{gerrit-server-name}"
503 trigger-on: "{obj:gerrit_verify_triggers}"
505 - project-compare-type: ANT
506 project-pattern: "{project}"
508 - branch-compare-type: ANT
509 branch-pattern: "**/{branch}"
512 name: "{project-name}-maven-javadoc-verify-{stream}-{java-version}"
513 id: github-maven-javadoc-verify
515 # yamllint disable-line rule:key-duplicates
516 <<: *lf_maven_javadoc_verify
519 - lf-infra-properties:
520 build-days-to-keep: "{build-days-to-keep}"
522 url: "{github-url}/{github-org}/{project}"
525 - lf-infra-github-scm:
526 url: "{git-clone-url}{github-org}/{project}"
527 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
529 submodule-recursive: "{submodule-recursive}"
530 submodule-timeout: "{submodule-timeout}"
531 submodule-disable: "{submodule-disable}"
532 choosing-strategy: default
533 jenkins-ssh-credential: "{jenkins-ssh-credential}"
536 - github-pull-request:
537 trigger-phrase: ^(recheck|reverify)$
538 only-trigger-phrase: false
539 status-context: "Maven Javadoc Verify"
542 white-list-target-branches:
549 - lf_maven_merge: &lf_maven_merge
552 ######################
553 # Default parameters #
554 ######################
557 build-days-to-keep: 30 # 30 days in case we need to troubleshoot
561 git-url: "$GIT_URL/$PROJECT"
562 github-url: "https://github.com"
563 java-version: openjdk8
564 mvn-global-settings: global-settings
565 mvn-goals: clean deploy
567 mvn-params: "-Dmerge"
569 nexus-cut-dirs: 6 # Number of dirs in the Nexus path to remove for wget -r.
571 submodule-recursive: true
572 submodule-timeout: 10
573 submodule-disable: false
575 gerrit_merge_triggers:
576 - change-merged-event
577 - comment-added-contains-event:
578 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
580 gerrit_trigger_file_paths:
581 - compare-type: REG_EXP
584 # github_included_regions MUST match gerrit_trigger_file_paths
585 github_included_regions:
588 post_build_trigger: ""
590 #####################
591 # Job Configuration #
592 #####################
594 disabled: "{disable-job}"
598 - lf-jacoco-nojava-workaround
600 mvn-version: "{mvn-version}"
601 - lf-update-java-alternatives:
602 java-version: "{java-version}"
603 - lf-provide-maven-settings:
604 global-settings-file: "{mvn-global-settings}"
605 settings-file: "{mvn-settings}"
606 - lf-infra-create-netrc:
607 server-id: "{mvn-snapshot-id}"
609 properties-content: |
610 NEXUS_CUT_DIRS={nexus-cut-dirs}
611 NEXUS_REPO={nexus-snapshot-repo}
612 - shell: !include-raw-escape: ../shell/maven-fetch-metadata.sh
614 mvn-goals: "{mvn-goals}"
616 - lf-provide-maven-settings-cleanup
622 - trigger-parameterized-builds: "{obj:post_build_trigger}"
625 name: "{project-name}-maven-merge-{stream}"
626 id: gerrit-maven-merge
628 # yamllint disable-line rule:key-duplicates
632 - lf-infra-gerrit-scm:
633 jenkins-ssh-credential: "{jenkins-ssh-credential}"
635 refspec: "$GERRIT_REFSPEC"
636 branch: "$GERRIT_BRANCH"
637 submodule-recursive: "{submodule-recursive}"
638 submodule-timeout: "{submodule-timeout}"
639 submodule-disable: "{submodule-disable}"
640 choosing-strategy: default
643 - timed: "{obj:cron}"
645 server-name: "{gerrit-server-name}"
646 trigger-on: "{obj:gerrit_merge_triggers}"
648 - project-compare-type: ANT
649 project-pattern: "{project}"
651 - branch-compare-type: ANT
652 branch-pattern: "**/{branch}"
653 file-paths: "{obj:gerrit_trigger_file_paths}"
656 name: "{project-name}-maven-merge-{stream}"
657 id: github-maven-merge
659 # yamllint disable-line rule:key-duplicates
663 - lf-infra-properties:
664 build-days-to-keep: "{build-days-to-keep}"
666 url: "{github-url}/{github-org}/{project}"
669 - lf-infra-github-scm:
670 url: "{git-clone-url}{github-org}/{project}"
672 branch: "refs/heads/{branch}"
673 submodule-recursive: "{submodule-recursive}"
674 submodule-timeout: "{submodule-timeout}"
675 submodule-disable: "{submodule-disable}"
676 choosing-strategy: default
677 jenkins-ssh-credential: "{jenkins-ssh-credential}"
680 - timed: "{obj:cron}"
684 - github-pull-request:
685 trigger-phrase: "^remerge$"
686 only-trigger-phrase: true
687 status-context: "Maven Merge"
692 white-list: "{obj:github_pr_whitelist}"
693 admin-list: "{obj:github_pr_admin_list}"
694 white-list-target-branches:
696 included-regions: "{obj:github_included_regions}"
698 ##########################
699 # Maven Merge for Docker #
700 ##########################
702 - lf_maven_docker_merge: &lf_maven_docker_merge
703 name: lf-maven-docker-merge
707 - lf-jacoco-nojava-workaround
709 mvn-version: "{mvn-version}"
710 - lf-infra-docker-login:
711 global-settings-file: "{mvn-global-settings}"
712 settings-file: "{mvn-settings}"
713 - lf-update-java-alternatives:
714 java-version: "{java-version}"
715 # must provide maven settings AFTER docker due to its cleanup
716 - lf-provide-maven-settings:
717 global-settings-file: "{mvn-global-settings}"
718 settings-file: "{mvn-settings}"
719 - lf-infra-create-netrc:
720 server-id: "{mvn-snapshot-id}"
722 properties-content: |
723 NEXUS_CUT_DIRS={nexus-cut-dirs}
724 NEXUS_REPO={nexus-snapshot-repo}
725 CONTAINER_PULL_REGISTRY={container-public-registry}
726 CONTAINER_PUSH_REGISTRY={container-snapshot-registry}
727 - shell: !include-raw-escape: ../shell/maven-fetch-metadata.sh
729 mvn-goals: "{mvn-goals}"
731 - lf-provide-maven-settings-cleanup
734 name: "{project-name}-maven-docker-merge-{stream}"
735 id: gerrit-maven-docker-merge
737 # yamllint disable-line rule:key-duplicates
739 # yamllint disable-line rule:key-duplicates
740 <<: *lf_maven_docker_merge
743 - lf-infra-gerrit-scm:
744 jenkins-ssh-credential: "{jenkins-ssh-credential}"
746 refspec: "$GERRIT_REFSPEC"
747 branch: "$GERRIT_BRANCH"
748 submodule-recursive: "{submodule-recursive}"
749 submodule-timeout: "{submodule-timeout}"
750 submodule-disable: "{submodule-disable}"
751 choosing-strategy: default
755 server-name: "{gerrit-server-name}"
756 trigger-on: "{obj:gerrit_merge_triggers}"
758 - project-compare-type: ANT
759 project-pattern: "{project}"
761 - branch-compare-type: ANT
762 branch-pattern: "**/{branch}"
763 file-paths: "{obj:gerrit_trigger_file_paths}"
766 name: "{project-name}-maven-docker-merge-{stream}"
767 id: github-maven-docker-merge
769 # yamllint disable-line rule:key-duplicates
771 # yamllint disable-line rule:key-duplicates
772 <<: *lf_maven_docker_merge
775 - lf-infra-properties:
776 build-days-to-keep: "{build-days-to-keep}"
778 url: "{github-url}/{github-org}/{project}"
781 - lf-infra-github-scm:
782 url: "{git-clone-url}{github-org}/{project}"
784 branch: "refs/heads/{branch}"
785 submodule-recursive: "{submodule-recursive}"
786 submodule-timeout: "{submodule-timeout}"
787 submodule-disable: "{submodule-disable}"
788 choosing-strategy: default
789 jenkins-ssh-credential: "{jenkins-ssh-credential}"
795 - github-pull-request:
796 trigger-phrase: "^remerge$"
797 only-trigger-phrase: true
798 status-context: "Maven Docker Merge"
803 white-list: "{obj:github_pr_whitelist}"
804 admin-list: "{obj:github_pr_admin_list}"
805 white-list-target-branches:
807 included-regions: "{obj:github_included_regions}"
813 - lf_maven_stage: &lf_maven_stage
816 ######################
817 # Default parameters #
818 ######################
821 build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
825 git-url: "$GIT_URL/$PROJECT"
826 github-url: "https://github.com"
827 java-version: openjdk8
828 maven-versions-plugin: false
829 version-properties-file: version.properties
831 mvn-global-settings: global-settings
832 mvn-goals: clean deploy
838 sign-artifacts: false
841 submodule-recursive: true
842 submodule-timeout: 10
843 submodule-disable: false
845 gerrit_release_triggers:
846 - comment-added-contains-event:
847 comment-contains-value: '^Patch Set\s+\d+:\s+stage-(maven-)?release\s*$'
849 gerrit_trigger_file_paths:
853 # github_included_regions MUST match gerrit_trigger_file_paths
854 github_included_regions:
857 #####################
858 # Job Configuration #
859 #####################
861 disabled: "{disable-job}"
864 - lf-infra-parameters:
868 - lf-infra-maven-parameters:
869 mvn-opts: "{mvn-opts}"
870 mvn-params: "{mvn-params}"
871 mvn-version: "{mvn-version}"
872 staging-profile-id: "{staging-profile-id}"
874 name: MAVEN_VERSIONS_PLUGIN
875 default: "{maven-versions-plugin}"
876 description: Use maven-versions-plugin to update pom versions.
878 name: ARCHIVE_ARTIFACTS
879 default: "{archive-artifacts}"
880 description: Artifacts to archive to the logs server.
882 name: STAGING_PROFILE_ID
883 default: "{staging-profile-id}"
884 description: Nexus staging profile ID.
888 - lf-jacoco-nojava-workaround
890 mvn-version: "{mvn-version}"
891 - lf-update-java-alternatives:
892 java-version: "{java-version}"
893 - lf-provide-maven-settings:
894 global-settings-file: "{mvn-global-settings}"
895 settings-file: "{mvn-settings}"
896 - lf-maven-versions-plugin:
897 maven-versions-plugin: "{maven-versions-plugin}"
898 version-properties-file: "{version-properties-file}"
899 mvn-version: "{mvn-version}"
901 mvn-settings: "{mvn-settings}"
902 - shell: !include-raw-escape: ../shell/maven-patch-release.sh
904 mvn-goals: "{mvn-goals}"
906 sign-artifacts: "{sign-artifacts}"
907 sign-dir: "$WORKSPACE/m2repo"
908 sign-mode: "{sign-mode}"
910 mvn-global-settings: "{mvn-global-settings}"
911 mvn-settings: "{mvn-settings}"
912 mvn-staging-id: "{mvn-staging-id}"
914 mvn-central: "{mvn-central}"
915 mvn-global-settings: "{mvn-global-settings}"
916 mvn-settings: "{mvn-settings}"
917 ossrh-profile-id: "{ossrh-profile-id}"
918 - lf-provide-maven-settings-cleanup
921 name: "{project-name}-maven-stage-{stream}"
922 id: gerrit-maven-stage
924 # yamllint disable-line rule:key-duplicates
928 - lf-infra-gerrit-scm:
929 jenkins-ssh-credential: "{jenkins-ssh-credential}"
931 refspec: "$GERRIT_REFSPEC"
932 branch: "$GERRIT_BRANCH"
933 submodule-recursive: "{submodule-recursive}"
934 submodule-timeout: "{submodule-timeout}"
935 submodule-disable: "{submodule-disable}"
936 choosing-strategy: default
939 - timed: "{obj:cron}"
941 server-name: "{gerrit-server-name}"
942 trigger-on: "{obj:gerrit_release_triggers}"
944 - project-compare-type: ANT
945 project-pattern: "{project}"
947 - branch-compare-type: ANT
948 branch-pattern: "**/{branch}"
949 file-paths: "{obj:gerrit_trigger_file_paths}"
952 name: "{project-name}-maven-stage-{stream}"
953 id: github-maven-stage
955 # yamllint disable-line rule:key-duplicates
959 - lf-infra-properties:
960 build-days-to-keep: "{build-days-to-keep}"
962 url: "{github-url}/{github-org}/{project}"
965 - lf-infra-github-scm:
966 url: "{git-clone-url}{github-org}/{project}"
967 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
969 submodule-recursive: "{submodule-recursive}"
970 submodule-timeout: "{submodule-timeout}"
971 submodule-disable: "{submodule-disable}"
972 choosing-strategy: default
973 jenkins-ssh-credential: "{jenkins-ssh-credential}"
976 - timed: "{obj:cron}"
977 - github-pull-request:
978 trigger-phrase: "^stage-(maven-)?release$"
979 only-trigger-phrase: true
980 status-context: "Maven Release"
983 white-list-target-branches:
985 included-regions: "{obj:github_included_regions}"
987 ##########################
988 # Maven Stage for Docker #
989 ##########################
991 - lf_maven_docker_stage: &lf_maven_docker_stage
992 name: lf-maven-docker-stage
996 - lf-jacoco-nojava-workaround
998 mvn-version: "{mvn-version}"
999 - lf-update-java-alternatives:
1000 java-version: "{java-version}"
1001 - lf-infra-docker-login:
1002 global-settings-file: "{mvn-global-settings}"
1003 settings-file: "{mvn-settings}"
1004 # must provide maven settings AFTER docker-login due to its cleanup
1005 - lf-provide-maven-settings:
1006 global-settings-file: "{mvn-global-settings}"
1007 settings-file: "{mvn-settings}"
1008 - lf-maven-versions-plugin:
1009 maven-versions-plugin: "{maven-versions-plugin}"
1010 version-properties-file: "{version-properties-file}"
1011 mvn-version: "{mvn-version}"
1012 mvn-pom: "{mvn-pom}"
1013 mvn-settings: "{mvn-settings}"
1014 - shell: !include-raw-escape: ../shell/maven-patch-release.sh
1016 properties-content: |
1017 CONTAINER_PULL_REGISTRY={container-public-registry}
1018 CONTAINER_PUSH_REGISTRY={container-staging-registry}
1020 mvn-goals: "{mvn-goals}"
1021 - lf-sigul-sign-dir:
1022 sign-artifacts: "{sign-artifacts}"
1023 sign-dir: "$WORKSPACE/m2repo"
1024 sign-mode: "{sign-mode}"
1026 # NO lf-maven-central
1027 - lf-provide-maven-settings-cleanup
1029 gerrit_release_docker_triggers:
1030 - comment-added-contains-event:
1031 comment-contains-value: '^Patch Set\s+\d+:\s+stage-(docker-)?release\s*$'
1034 name: "{project-name}-maven-docker-stage-{stream}"
1035 id: gerrit-maven-docker-stage
1036 <<: *lf_maven_common
1037 # yamllint disable-line rule:key-duplicates
1039 # yamllint disable-line rule:key-duplicates
1040 <<: *lf_maven_docker_stage
1043 - lf-infra-gerrit-scm:
1044 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1045 git-url: "{git-url}"
1046 refspec: "$GERRIT_REFSPEC"
1047 branch: "$GERRIT_BRANCH"
1048 submodule-recursive: "{submodule-recursive}"
1049 submodule-timeout: "{submodule-timeout}"
1050 submodule-disable: "{submodule-disable}"
1051 choosing-strategy: default
1054 - timed: "{obj:cron}"
1056 server-name: "{gerrit-server-name}"
1057 trigger-on: "{obj:gerrit_release_docker_triggers}"
1059 - project-compare-type: ANT
1060 project-pattern: "{project}"
1062 - branch-compare-type: ANT
1063 branch-pattern: "**/{branch}"
1064 file-paths: "{obj:gerrit_trigger_file_paths}"
1067 name: "{project-name}-maven-docker-stage-{stream}"
1068 id: github-maven-docker-stage
1069 <<: *lf_maven_common
1070 # yamllint disable-line rule:key-duplicates
1072 # yamllint disable-line rule:key-duplicates
1073 <<: *lf_maven_docker_stage
1076 - lf-infra-properties:
1077 build-days-to-keep: "{build-days-to-keep}"
1079 url: "{github-url}/{github-org}/{project}"
1082 - lf-infra-github-scm:
1083 url: "{git-clone-url}{github-org}/{project}"
1084 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1086 submodule-recursive: "{submodule-recursive}"
1087 submodule-timeout: "{submodule-timeout}"
1088 submodule-disable: "{submodule-disable}"
1089 choosing-strategy: default
1090 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1093 - timed: "{obj:cron}"
1094 - github-pull-request:
1095 trigger-phrase: "^stage-(docker-)?release$"
1096 only-trigger-phrase: true
1097 status-context: "Maven Release"
1100 white-list-target-branches:
1102 included-regions: "{obj:github_included_regions}"
1108 - lf_maven_sonar: &lf_maven_sonar
1109 name: lf-maven-sonar
1111 ######################
1112 # Default parameters #
1113 ######################
1115 branch: master # Sonar should always be run on master branch
1116 build-days-to-keep: 7
1118 cron: "H H * * 6" # run weekly
1120 git-url: "$GIT_URL/$PROJECT"
1121 github-url: "https://github.com"
1122 java-version: openjdk8
1124 mvn-global-settings: global-settings
1125 mvn-goals: clean install
1129 sonar-mvn-goal: "sonar:sonar"
1131 sonarcloud-project-key: ""
1132 sonarcloud-project-organization: ""
1133 sonarcloud-api-token: ""
1135 submodule-recursive: true
1136 submodule-timeout: 10
1137 submodule-disable: false
1139 gerrit_sonar_triggers:
1140 - comment-added-contains-event:
1141 comment-contains-value: '^Patch Set\s+\d+:\s+run-sonar\s*$'
1143 #####################
1144 # Job Configuration #
1145 #####################
1147 disabled: "{disable-job}"
1150 - lf-infra-parameters:
1151 project: "{project}"
1154 - lf-infra-maven-parameters:
1155 mvn-opts: "{mvn-opts}"
1156 mvn-params: "{mvn-params}"
1157 mvn-version: "{mvn-version}"
1159 name: ARCHIVE_ARTIFACTS
1160 default: "{archive-artifacts}"
1161 description: Artifacts to archive to the logs server.
1164 default: "{java-opts}"
1166 Java options. Example: -Xmx1024m
1168 name: SONAR_MAVEN_GOAL
1169 default: "{sonar-mvn-goal}"
1171 Maven goals to pass to the Sonar call. Typically sonar:sonar
1172 however to use a specific version of the sonar-maven-plugin we
1173 can call "org.codehaus.mojo:sonar-maven-plugin:3.3.0.603:sonar".
1176 - timed: "{obj:cron}"
1178 server-name: "{gerrit-server-name}"
1179 trigger-on: "{obj:gerrit_sonar_triggers}"
1181 - project-compare-type: "ANT"
1182 project-pattern: "{project}"
1184 - branch-compare-type: "ANT"
1185 branch-pattern: "**/master"
1193 - lf-infra-pre-build
1196 condition-kind: boolean-expression
1197 condition-expression: "{sonarcloud}"
1199 - shell: echo 'Using SonarCloud'
1200 - lf-infra-maven-sonarcloud:
1201 java-version: "{java-version}"
1202 mvn-goals: "{mvn-goals}"
1203 mvn-settings: "{mvn-settings}"
1204 mvn-version: "{mvn-version}"
1205 sonarcloud-project-key: "{sonarcloud-project-key}"
1206 sonarcloud-project-organization: "{sonarcloud-project-organization}"
1207 sonarcloud-api-token: "{sonarcloud-api-token}"
1212 condition-kind: boolean-expression
1213 condition-expression: "{sonarcloud}"
1215 - shell: echo 'Using SonarQube'
1216 - lf-infra-maven-sonar:
1217 java-version: "{java-version}"
1218 mvn-goals: "{mvn-goals}"
1219 mvn-settings: "{mvn-settings}"
1220 mvn-version: "{mvn-version}"
1228 name: lf-infra-maven-sonar
1229 # Run a Sonar build with Maven
1232 mvn-version: "{mvn-version}"
1233 - lf-update-java-alternatives:
1234 java-version: "{java-version}"
1236 # Switch this to the sonar wrapper when JJB 2.0 is available
1237 properties-content: |
1238 SONAR_HOST_URL=$SONAR_URL
1239 MAVEN_GOALS={mvn-goals}
1240 - lf-provide-maven-settings:
1241 global-settings-file: global-settings
1242 settings-file: "{mvn-settings}"
1243 - shell: !include-raw-escape:
1244 - ../shell/common-variables.sh
1245 - ../shell/maven-sonar.sh
1246 - lf-provide-maven-settings-cleanup
1249 name: lf-infra-maven-sonarcloud
1250 # Run a Sonar build with Maven
1253 mvn-version: "{mvn-version}"
1254 - lf-update-java-alternatives:
1255 java-version: "{java-version}"
1257 # Switch this to the sonar wrapper when JJB 2.0 is available
1258 properties-content: |
1259 SONAR_HOST_URL=https://sonarcloud.io
1260 PROJECT_KEY={sonarcloud-project-key}
1261 PROJECT_ORGANIZATION={sonarcloud-project-organization}
1262 MAVEN_GOALS={mvn-goals}
1263 API_TOKEN={sonarcloud-api-token}
1264 - lf-provide-maven-settings:
1265 global-settings-file: global-settings
1266 settings-file: "{mvn-settings}"
1267 - shell: !include-raw-escape:
1268 - ../shell/common-variables.sh
1269 - ../shell/maven-sonar.sh
1270 - lf-provide-maven-settings-cleanup
1273 name: "{project-name}-sonar"
1274 id: gerrit-maven-sonar
1275 <<: *lf_maven_common
1276 # yamllint disable-line rule:key-duplicates
1280 - lf-infra-gerrit-scm:
1281 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1282 git-url: "{git-url}"
1283 refspec: $GERRIT_REFSPEC
1284 branch: $GERRIT_BRANCH
1285 submodule-recursive: "{submodule-recursive}"
1286 submodule-timeout: "{submodule-timeout}"
1287 submodule-disable: "{submodule-disable}"
1288 choosing-strategy: default
1291 name: "{project-name}-sonar"
1292 id: github-maven-sonar
1293 <<: *lf_maven_common
1294 # yamllint disable-line rule:key-duplicates
1298 - lf-infra-properties:
1299 build-days-to-keep: "{build-days-to-keep}"
1301 url: "{github-url}/{github-org}/{project}"
1304 - lf-infra-github-scm:
1305 url: "{git-clone-url}{github-org}/{project}"
1306 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1308 submodule-recursive: "{submodule-recursive}"
1309 submodule-timeout: "{submodule-timeout}"
1310 submodule-disable: "{submodule-disable}"
1311 choosing-strategy: default
1312 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1315 - timed: "{obj:cron}"
1316 - github-pull-request:
1317 trigger-phrase: "^run-sonar$"
1318 only-trigger-phrase: true
1319 status-context: "Maven Sonar"
1324 white-list: "{obj:github_pr_whitelist}"
1325 admin-list: "{obj:github_pr_admin_list}"
1326 white-list-target-branches:
1333 - lf_maven_verify: &lf_maven_verify
1334 name: lf-maven-verify
1336 ######################
1337 # Default parameters #
1338 ######################
1341 build-days-to-keep: 7
1344 git-url: "$GIT_URL/$PROJECT"
1345 github-url: "https://github.com"
1346 java-version: openjdk8
1347 mvn-global-settings: global-settings
1348 mvn-goals: clean deploy
1350 mvn-params: "-Dstream=$STREAM -Dmaven.source.skip=true"
1353 submodule-recursive: true
1354 submodule-timeout: 10
1355 submodule-disable: false
1357 gerrit_verify_triggers:
1358 - patchset-created-event:
1359 exclude-drafts: true
1360 exclude-trivial-rebase: false
1361 exclude-no-code-change: false
1362 - draft-published-event
1363 - comment-added-contains-event:
1364 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1366 gerrit_trigger_file_paths:
1367 - compare-type: REG_EXP
1370 # github_included_regions MUST match gerrit_trigger_file_paths
1371 github_included_regions:
1374 #####################
1375 # Job Configuration #
1376 #####################
1379 disabled: "{disable-job}"
1382 - lf-infra-pre-build
1383 - lf-jacoco-nojava-workaround
1385 mvn-version: "{mvn-version}"
1386 - lf-update-java-alternatives:
1387 java-version: "{java-version}"
1388 - lf-provide-maven-settings:
1389 global-settings-file: "{mvn-global-settings}"
1390 settings-file: "{mvn-settings}"
1392 mvn-goals: "{mvn-goals}"
1393 - lf-provide-maven-settings-cleanup
1401 name: "{project-name}-maven-verify-{stream}-{mvn-version}-{java-version}"
1402 id: gerrit-maven-verify
1403 <<: *lf_maven_common
1404 # yamllint disable-line rule:key-duplicates
1405 <<: *lf_maven_verify
1408 - lf-infra-gerrit-scm:
1409 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1410 git-url: "{git-url}"
1411 refspec: "$GERRIT_REFSPEC"
1412 branch: "$GERRIT_BRANCH"
1413 submodule-recursive: "{submodule-recursive}"
1414 submodule-timeout: "{submodule-timeout}"
1415 submodule-disable: "{submodule-disable}"
1416 choosing-strategy: gerrit
1420 server-name: "{gerrit-server-name}"
1421 trigger-on: "{obj:gerrit_verify_triggers}"
1423 - project-compare-type: ANT
1424 project-pattern: "{project}"
1426 - branch-compare-type: ANT
1427 branch-pattern: "**/{branch}"
1428 file-paths: "{obj:gerrit_trigger_file_paths}"
1431 name: "{project-name}-maven-verify-{stream}-{mvn-version}-{java-version}"
1432 id: github-maven-verify
1433 <<: *lf_maven_common
1434 # yamllint disable-line rule:key-duplicates
1435 <<: *lf_maven_verify
1438 - lf-infra-properties:
1439 build-days-to-keep: "{build-days-to-keep}"
1441 url: "{github-url}/{github-org}/{project}"
1444 - lf-infra-github-scm:
1445 url: "{git-clone-url}{github-org}/{project}"
1446 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1448 submodule-recursive: "{submodule-recursive}"
1449 submodule-timeout: "{submodule-timeout}"
1450 submodule-disable: "{submodule-disable}"
1451 choosing-strategy: default
1452 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1455 - github-pull-request:
1456 trigger-phrase: "^(recheck|reverify)$"
1457 only-trigger-phrase: false
1458 status-context: "Maven Verify {mvn-version}-{java-version}"
1461 white-list-target-branches:
1463 included-regions: "{obj:github_included_regions}"
1465 ###########################
1466 # Maven Verify for Docker #
1467 ###########################
1469 - lf_maven_docker_verify: &lf_maven_docker_verify
1470 name: lf-maven-docker-verify
1472 # image push not allowed during verification
1473 mvn-goals: clean install
1476 - lf-infra-pre-build
1477 - lf-jacoco-nojava-workaround
1479 mvn-version: "{mvn-version}"
1480 - lf-update-java-alternatives:
1481 java-version: "{java-version}"
1482 - lf-infra-docker-login:
1483 global-settings-file: "{mvn-global-settings}"
1484 settings-file: "{mvn-settings}"
1485 # must provide maven settings AFTER docker due to its cleanup
1486 - lf-provide-maven-settings:
1487 global-settings-file: "{mvn-global-settings}"
1488 settings-file: "{mvn-settings}"
1490 properties-content: |
1491 CONTAINER_PULL_REGISTRY={container-public-registry}
1493 mvn-goals: "{mvn-goals}"
1494 - lf-provide-maven-settings-cleanup
1497 name: "{project-name}-maven-docker-verify-{stream}-{mvn-version}-{java-version}"
1498 id: gerrit-maven-docker-verify
1499 <<: *lf_maven_common
1500 # yamllint disable-line rule:key-duplicates
1501 <<: *lf_maven_verify
1502 # yamllint disable-line rule:key-duplicates
1503 <<: *lf_maven_docker_verify
1506 - lf-infra-gerrit-scm:
1507 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1508 git-url: "{git-url}"
1509 refspec: "$GERRIT_REFSPEC"
1510 branch: "$GERRIT_BRANCH"
1511 submodule-recursive: "{submodule-recursive}"
1512 submodule-timeout: "{submodule-timeout}"
1513 submodule-disable: "{submodule-disable}"
1514 choosing-strategy: gerrit
1518 server-name: "{gerrit-server-name}"
1519 trigger-on: "{obj:gerrit_verify_triggers}"
1521 - project-compare-type: ANT
1522 project-pattern: "{project}"
1524 - branch-compare-type: ANT
1525 branch-pattern: "**/{branch}"
1526 file-paths: "{obj:gerrit_trigger_file_paths}"
1529 name: "{project-name}-maven-docker-verify-{stream}-{mvn-version}-{java-version}"
1530 id: github-maven-docker-verify
1531 <<: *lf_maven_common
1532 # yamllint disable-line rule:key-duplicates
1533 <<: *lf_maven_verify
1534 # yamllint disable-line rule:key-duplicates
1535 <<: *lf_maven_docker_verify
1538 - lf-infra-properties:
1539 build-days-to-keep: "{build-days-to-keep}"
1541 url: "{github-url}/{github-org}/{project}"
1544 - lf-infra-github-scm:
1545 url: "{git-clone-url}{github-org}/{project}"
1546 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1548 submodule-recursive: "{submodule-recursive}"
1549 submodule-timeout: "{submodule-timeout}"
1550 submodule-disable: "{submodule-disable}"
1551 choosing-strategy: default
1552 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1555 - github-pull-request:
1556 trigger-phrase: "^(recheck|reverify)$"
1557 only-trigger-phrase: false
1558 status-context: "Maven Docker Verify {mvn-version}-{java-version}"
1561 white-list-target-branches:
1563 included-regions: "{obj:github_included_regions}"
1565 #############################
1566 # Maven Verify Dependencies #
1567 #############################
1569 - lf_maven_verify_dependencies: &lf_maven_verify_dependencies
1570 name: lf-maven-verify-dependencies
1572 ######################
1573 # Default parameters #
1574 ######################
1577 build-days-to-keep: 7
1580 git-url: "$GIT_URL/$PROJECT"
1581 github-url: "https://github.com"
1582 java-version: openjdk8
1583 mvn-global-settings: global-settings
1584 mvn-goals: clean deploy
1586 mvn-params: "-Dstream=$STREAM"
1589 submodule-recursive: true
1590 submodule-timeout: 10
1591 submodule-disable: false
1593 gerrit_verify_triggers:
1594 - comment-added-contains-event:
1595 comment-contains-value: "recheck: [0-9 ]+"
1596 gerrit_trigger_file_paths:
1600 #####################
1601 # Job Configuration #
1602 #####################
1605 disabled: "{disable-job}"
1608 - lf-infra-pre-build
1609 - lf-jacoco-nojava-workaround
1611 mvn-version: "{mvn-version}"
1612 - lf-update-java-alternatives:
1613 java-version: "{java-version}"
1614 - lf-provide-maven-settings:
1615 global-settings-file: "{mvn-global-settings}"
1616 settings-file: "{mvn-settings}"
1617 - lf-fetch-dependent-patches
1618 - shell: !include-raw-escape:
1619 - ../shell/common-variables.sh
1620 - ../shell/maven-build-deps.sh
1622 mvn-goals: "{mvn-goals}"
1623 - lf-provide-maven-settings-cleanup
1631 name: "{project-name}-maven-verify-deps-{stream}-{mvn-version}-{java-version}"
1632 id: gerrit-maven-verify-dependencies
1633 <<: *lf_maven_common
1634 # yamllint disable-line rule:key-duplicates
1635 <<: *lf_maven_verify_dependencies
1638 - lf-infra-gerrit-scm:
1639 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1640 git-url: "{git-url}"
1641 refspec: "$GERRIT_REFSPEC"
1642 branch: "$GERRIT_BRANCH"
1643 submodule-recursive: "{submodule-recursive}"
1644 submodule-timeout: "{submodule-timeout}"
1645 submodule-disable: "{submodule-disable}"
1646 choosing-strategy: gerrit
1650 server-name: "{gerrit-server-name}"
1651 trigger-on: "{obj:gerrit_verify_triggers}"
1653 - project-compare-type: ANT
1654 project-pattern: "{project}"
1656 - branch-compare-type: ANT
1657 branch-pattern: "**/{branch}"
1658 file-paths: "{obj:gerrit_trigger_file_paths}"