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-escape:
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: openjdk11
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_allowlist}"
292 admin-list: "{obj:github_pr_admin_list}"
293 white-list-target-branches:
300 - _lf_maven_snyk_cli: &lf_maven_snyk_cli
301 name: lf-maven-snyk_cli
303 ######################
304 # Default parameters #
305 ######################
308 build-days-to-keep: 30 # 30 days for troubleshooting purposes
311 git-url: "$GIT_URL/$PROJECT"
312 github-url: "https://github.com"
313 java-version: openjdk11
314 mvn-global-settings: global-settings
315 mvn-goals: clean install
320 snyk-token-credential-id: snyk-token
321 snyk-org-credential-id: snyk-org
323 submodule-recursive: true
324 submodule-timeout: 10
325 submodule-disable: false
327 gerrit_snyk_triggers:
328 - comment-added-contains-event:
329 comment-contains-value: '^Patch Set\s+\d+:\s+run-snyk\s*$'
332 - lf-infra-parameters:
336 - lf-infra-maven-parameters:
337 mvn-opts: "{mvn-opts}"
338 mvn-params: "{mvn-params}"
339 mvn-version: "{mvn-version}"
341 name: SNYK_CLI_OPTIONS
342 default: "{snyk-cli-options}"
343 description: Additional Snyk CLI commands and options
345 name: ARCHIVE_ARTIFACTS
346 default: "{archive-artifacts}"
347 description: Artifacts to archive to the logs server.
350 - credentials-binding:
352 credential-id: "{snyk-token-credential-id}"
355 credential-id: "{snyk-org-credential-id}"
358 #####################
359 # Job Configuration #
360 #####################
362 disabled: "{disable-job}"
367 mvn-version: "{mvn-version}"
368 - lf-update-java-alternatives:
369 java-version: "{java-version}"
370 - lf-provide-maven-settings:
371 global-settings-file: "{mvn-global-settings}"
372 settings-file: "{mvn-settings}"
374 mvn-goals: "{mvn-goals}"
375 - lf-infra-snyk-cli-scanner
376 - lf-provide-maven-settings-cleanup
377 - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
380 name: lf-infra-snyk-cli-scanner
381 # Download and run the Snyk CLI scanner
383 - shell: !include-raw-escape:
384 - ../shell/snyk-cli-scanner-run.sh
387 name: "{project-name}-maven-snyk-cli-{stream}"
388 id: gerrit-maven-snyk-cli
390 # yamllint disable-line rule:key-duplicates
391 <<: *lf_maven_snyk_cli
394 - lf-infra-gerrit-scm:
395 jenkins-ssh-credential: "{jenkins-ssh-credential}"
397 refspec: "$GERRIT_REFSPEC"
398 branch: "$GERRIT_BRANCH"
399 submodule-recursive: "{submodule-recursive}"
400 submodule-timeout: "{submodule-timeout}"
401 submodule-disable: "{submodule-disable}"
402 choosing-strategy: default
405 # Build weekly on Saturdays
408 server-name: "{gerrit-server-name}"
409 trigger-on: "{obj:gerrit_snyk_triggers}"
411 - project-compare-type: ANT
412 project-pattern: "{project}"
414 - branch-compare-type: ANT
415 branch-pattern: "**/{branch}"
423 name: "{project-name}-maven-snyk-cli-{stream}"
424 id: github-maven-snyk-cli
426 # yamllint disable-line rule:key-duplicates
427 <<: *lf_maven_snyk_cli
430 - lf-infra-properties:
431 build-days-to-keep: "{build-days-to-keep}"
433 url: "{github-url}/{github-org}/{project}"
436 - lf-infra-github-scm:
437 url: "{git-clone-url}{github-org}/{project}"
439 branch: "refs/heads/{branch}"
440 submodule-recursive: "{submodule-recursive}"
441 submodule-timeout: "{submodule-timeout}"
442 submodule-disable: "{submodule-disable}"
443 choosing-strategy: default
444 jenkins-ssh-credential: "{jenkins-ssh-credential}"
447 # Build weekly on Saturdays
449 - github-pull-request:
450 trigger-phrase: "^run-snyk$"
451 only-trigger-phrase: true
452 status-context: "SNYK scan"
457 white-list: "{obj:github_pr_allowlist}"
458 admin-list: "{obj:github_pr_admin_list}"
459 white-list-target-branches:
462 #########################
463 # Maven Javadoc Publish #
464 #########################
466 - _lf_maven_javadoc_publish: &lf_maven_javadoc_publish
467 name: lf-maven-javadoc-publish
469 ######################
470 # Default parameters #
471 ######################
474 build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
477 git-url: "$GIT_URL/$PROJECT"
478 github-url: "https://github.com"
479 java-version: openjdk11
481 mvn-global-settings: global-settings
486 submodule-recursive: true
487 submodule-timeout: 10
488 submodule-disable: false
490 gerrit_merge_triggers:
491 - change-merged-event
492 - comment-added-contains-event:
493 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
495 #####################
496 # Job Configuration #
497 #####################
499 disabled: "{disable-job}"
504 mvn-version: "{mvn-version}"
505 - lf-update-java-alternatives:
506 java-version: "{java-version}"
507 - lf-provide-maven-settings:
508 global-settings-file: "{mvn-global-settings}"
509 settings-file: "{mvn-settings}"
510 - lf-infra-create-netrc:
511 server-id: "{mvn-site-id}"
513 properties-content: |
514 DEPLOY_PATH={javadoc-path}
516 - shell: !include-raw-escape:
517 - ../shell/common-variables.sh
518 - ../shell/maven-javadoc-generate.sh
519 - ../shell/maven-javadoc-publish.sh
520 - lf-provide-maven-settings-cleanup
523 name: "{project-name}-maven-javadoc-publish-{stream}-{java-version}"
524 id: gerrit-maven-javadoc-publish
526 # yamllint disable-line rule:key-duplicates
527 <<: *lf_maven_javadoc_publish
529 git-url: "$GIT_URL/$GERRIT_PROJECT"
532 - lf-infra-gerrit-scm:
536 submodule-recursive: "{submodule-recursive}"
537 submodule-timeout: "{submodule-timeout}"
538 submodule-disable: "{submodule-disable}"
539 choosing-strategy: default
540 jenkins-ssh-credential: "{jenkins-ssh-credential}"
544 server-name: "{gerrit-server-name}"
545 trigger-on: "{obj:gerrit_merge_triggers}"
547 - project-compare-type: ANT
548 project-pattern: "{project}"
550 - branch-compare-type: ANT
551 branch-pattern: "**/{branch}"
554 name: "{project-name}-maven-javadoc-publish-{stream}-{java-version}"
555 id: github-maven-javadoc-publish
557 # yamllint disable-line rule:key-duplicates
558 <<: *lf_maven_javadoc_publish
561 - lf-infra-properties:
562 build-days-to-keep: "{build-days-to-keep}"
564 url: "{github-url}/{github-org}/{project}"
567 - lf-infra-github-scm:
568 url: "{git-clone-url}{github-org}/{project}"
571 submodule-recursive: "{submodule-recursive}"
572 submodule-timeout: "{submodule-timeout}"
573 submodule-disable: "{submodule-disable}"
574 choosing-strategy: default
575 jenkins-ssh-credential: "{jenkins-ssh-credential}"
581 - github-pull-request:
582 trigger-phrase: "^remerge$"
583 only-trigger-phrase: true
584 status-context: "Maven Javadoc Publish"
589 white-list: "{obj:github_pr_allowlist}"
590 admin-list: "{obj:github_pr_admin_list}"
591 white-list-target-branches:
594 ########################
595 # Maven Javadoc Verify #
596 ########################
598 - _lf_maven_javadoc_verify: &lf_maven_javadoc_verify
599 name: lf-maven-javadoc-verify
601 ######################
602 # Default parameters #
603 ######################
606 build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
609 git-url: "$GIT_URL/$PROJECT"
610 github-url: "https://github.com"
611 java-version: openjdk11
613 mvn-global-settings: global-settings
618 submodule-recursive: true
619 submodule-timeout: 10
620 submodule-disable: false
622 gerrit_verify_triggers:
623 - patchset-created-event:
625 exclude-trivial-rebase: false
626 exclude-no-code-change: false
627 - draft-published-event
628 - comment-added-contains-event:
629 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
631 #####################
632 # Job Configuration #
633 #####################
636 disabled: "{disable-job}"
641 mvn-version: "{mvn-version}"
642 - lf-update-java-alternatives:
643 java-version: "{java-version}"
644 - lf-provide-maven-settings:
645 global-settings-file: "{mvn-global-settings}"
646 settings-file: "{mvn-settings}"
648 properties-content: |
650 - shell: !include-raw-escape:
651 - ../shell/common-variables.sh
652 - ../shell/maven-javadoc-generate.sh
653 - lf-provide-maven-settings-cleanup
656 name: "{project-name}-maven-javadoc-verify-{stream}-{java-version}"
657 id: gerrit-maven-javadoc-verify
659 # yamllint disable-line rule:key-duplicates
660 <<: *lf_maven_javadoc_verify
663 - lf-infra-gerrit-scm:
664 jenkins-ssh-credential: "{jenkins-ssh-credential}"
666 refspec: "$GERRIT_REFSPEC"
667 branch: "$GERRIT_BRANCH"
668 submodule-recursive: "{submodule-recursive}"
669 submodule-timeout: "{submodule-timeout}"
670 submodule-disable: "{submodule-disable}"
671 choosing-strategy: gerrit
675 server-name: "{gerrit-server-name}"
676 trigger-on: "{obj:gerrit_verify_triggers}"
678 - project-compare-type: ANT
679 project-pattern: "{project}"
681 - branch-compare-type: ANT
682 branch-pattern: "**/{branch}"
685 name: "{project-name}-maven-javadoc-verify-{stream}-{java-version}"
686 id: github-maven-javadoc-verify
688 # yamllint disable-line rule:key-duplicates
689 <<: *lf_maven_javadoc_verify
692 - lf-infra-properties:
693 build-days-to-keep: "{build-days-to-keep}"
695 url: "{github-url}/{github-org}/{project}"
698 - lf-infra-github-scm:
699 url: "{git-clone-url}{github-org}/{project}"
700 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
702 submodule-recursive: "{submodule-recursive}"
703 submodule-timeout: "{submodule-timeout}"
704 submodule-disable: "{submodule-disable}"
705 choosing-strategy: default
706 jenkins-ssh-credential: "{jenkins-ssh-credential}"
709 - github-pull-request:
710 trigger-phrase: ^(recheck|reverify)$
711 only-trigger-phrase: false
712 status-context: "Maven Javadoc Verify"
715 white-list-target-branches:
722 - _lf_maven_merge: &lf_maven_merge
725 ######################
726 # Default parameters #
727 ######################
730 build-days-to-keep: 30 # 30 days in case we need to troubleshoot
734 git-url: "$GIT_URL/$PROJECT"
735 github-url: "https://github.com"
736 jacoco-exclude-pattern: >-
738 **/generated-sources/**,
741 java-version: openjdk11
742 mvn-global-settings: global-settings
743 mvn-goals: clean deploy
745 mvn-params: "-Dmerge"
747 nexus-cut-dirs: 6 # Number of dirs in the Nexus path to remove for wget -r.
748 pre-build-script: "# pre-build script goes here"
749 post-build-script: "# post-build script goes here"
751 submodule-recursive: true
752 submodule-timeout: 10
753 submodule-disable: false
755 gerrit_merge_triggers:
756 - change-merged-event
757 - comment-added-contains-event:
758 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
760 gerrit_trigger_file_paths:
761 - compare-type: REG_EXP
764 # github_included_regions MUST match gerrit_trigger_file_paths
765 github_included_regions:
768 post_build_trigger: ""
770 #####################
771 # Job Configuration #
772 #####################
774 disabled: "{disable-job}"
778 - lf-jacoco-nojava-workaround
780 mvn-version: "{mvn-version}"
781 - lf-update-java-alternatives:
782 java-version: "{java-version}"
783 - lf-provide-maven-settings:
784 global-settings-file: "{mvn-global-settings}"
785 settings-file: "{mvn-settings}"
786 - lf-infra-create-netrc:
787 server-id: "{mvn-snapshot-id}"
789 properties-content: |
790 NEXUS_CUT_DIRS={nexus-cut-dirs}
791 NEXUS_REPO={nexus-snapshot-repo}
792 - shell: !include-raw-escape: ../shell/maven-fetch-metadata.sh
793 - shell: "{pre-build-script}"
795 mvn-goals: "{mvn-goals}"
796 - shell: "{post-build-script}"
798 - lf-provide-maven-settings-cleanup
803 exclude-pattern: "{jacoco-exclude-pattern}"
805 - trigger-parameterized-builds: "{obj:post_build_trigger}"
808 name: "{project-name}-maven-merge-{stream}"
809 id: gerrit-maven-merge
811 # yamllint disable-line rule:key-duplicates
815 - lf-infra-gerrit-scm:
816 jenkins-ssh-credential: "{jenkins-ssh-credential}"
818 refspec: "$GERRIT_REFSPEC"
819 branch: "$GERRIT_BRANCH"
820 submodule-recursive: "{submodule-recursive}"
821 submodule-timeout: "{submodule-timeout}"
822 submodule-disable: "{submodule-disable}"
823 choosing-strategy: default
826 - timed: "{obj:cron}"
828 server-name: "{gerrit-server-name}"
829 trigger-on: "{obj:gerrit_merge_triggers}"
831 - project-compare-type: ANT
832 project-pattern: "{project}"
834 - branch-compare-type: ANT
835 branch-pattern: "**/{branch}"
836 file-paths: "{obj:gerrit_trigger_file_paths}"
839 name: "{project-name}-maven-merge-{stream}"
840 id: github-maven-merge
842 # yamllint disable-line rule:key-duplicates
846 - lf-infra-properties:
847 build-days-to-keep: "{build-days-to-keep}"
849 url: "{github-url}/{github-org}/{project}"
852 - lf-infra-github-scm:
853 url: "{git-clone-url}{github-org}/{project}"
855 branch: "refs/heads/{branch}"
856 submodule-recursive: "{submodule-recursive}"
857 submodule-timeout: "{submodule-timeout}"
858 submodule-disable: "{submodule-disable}"
859 choosing-strategy: default
860 jenkins-ssh-credential: "{jenkins-ssh-credential}"
863 - timed: "{obj:cron}"
867 - github-pull-request:
868 trigger-phrase: "^remerge$"
869 only-trigger-phrase: true
870 status-context: "Maven Merge"
875 white-list: "{obj:github_pr_allowlist}"
876 admin-list: "{obj:github_pr_admin_list}"
877 white-list-target-branches:
879 included-regions: "{obj:github_included_regions}"
881 ##########################
882 # Maven Merge for Docker #
883 ##########################
885 - _lf_maven_docker_merge: &lf_maven_docker_merge
886 name: lf-maven-docker-merge
890 - lf-jacoco-nojava-workaround
892 mvn-version: "{mvn-version}"
893 - lf-infra-docker-login:
894 global-settings-file: "{mvn-global-settings}"
895 settings-file: "{mvn-settings}"
896 - lf-update-java-alternatives:
897 java-version: "{java-version}"
898 # must provide maven settings AFTER docker due to its cleanup
899 - lf-provide-maven-settings:
900 global-settings-file: "{mvn-global-settings}"
901 settings-file: "{mvn-settings}"
902 - lf-infra-create-netrc:
903 server-id: "{mvn-snapshot-id}"
905 properties-content: |
906 NEXUS_CUT_DIRS={nexus-cut-dirs}
907 NEXUS_REPO={nexus-snapshot-repo}
908 CONTAINER_PULL_REGISTRY={container-public-registry}
909 CONTAINER_PUSH_REGISTRY={container-snapshot-registry}
910 - shell: !include-raw-escape: ../shell/maven-fetch-metadata.sh
912 mvn-goals: "{mvn-goals}"
914 - lf-provide-maven-settings-cleanup
917 name: "{project-name}-maven-docker-merge-{stream}"
918 id: gerrit-maven-docker-merge
920 # yamllint disable-line rule:key-duplicates
922 # yamllint disable-line rule:key-duplicates
923 <<: *lf_maven_docker_merge
926 - lf-infra-gerrit-scm:
927 jenkins-ssh-credential: "{jenkins-ssh-credential}"
929 refspec: "$GERRIT_REFSPEC"
930 branch: "$GERRIT_BRANCH"
931 submodule-recursive: "{submodule-recursive}"
932 submodule-timeout: "{submodule-timeout}"
933 submodule-disable: "{submodule-disable}"
934 choosing-strategy: default
938 server-name: "{gerrit-server-name}"
939 trigger-on: "{obj:gerrit_merge_triggers}"
941 - project-compare-type: ANT
942 project-pattern: "{project}"
944 - branch-compare-type: ANT
945 branch-pattern: "**/{branch}"
946 file-paths: "{obj:gerrit_trigger_file_paths}"
949 name: "{project-name}-maven-docker-merge-{stream}"
950 id: github-maven-docker-merge
952 # yamllint disable-line rule:key-duplicates
954 # yamllint disable-line rule:key-duplicates
955 <<: *lf_maven_docker_merge
958 - lf-infra-properties:
959 build-days-to-keep: "{build-days-to-keep}"
961 url: "{github-url}/{github-org}/{project}"
964 - lf-infra-github-scm:
965 url: "{git-clone-url}{github-org}/{project}"
967 branch: "refs/heads/{branch}"
968 submodule-recursive: "{submodule-recursive}"
969 submodule-timeout: "{submodule-timeout}"
970 submodule-disable: "{submodule-disable}"
971 choosing-strategy: default
972 jenkins-ssh-credential: "{jenkins-ssh-credential}"
978 - github-pull-request:
979 trigger-phrase: "^remerge$"
980 only-trigger-phrase: true
981 status-context: "Maven Docker Merge"
986 white-list: "{obj:github_pr_allowlist}"
987 admin-list: "{obj:github_pr_admin_list}"
988 white-list-target-branches:
990 included-regions: "{obj:github_included_regions}"
996 - _lf_maven_stage: &lf_maven_stage
999 ######################
1000 # Default parameters #
1001 ######################
1004 build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
1008 git-url: "$GIT_URL/$PROJECT"
1009 github-url: "https://github.com"
1010 java-version: openjdk11
1011 maven-versions-plugin: false
1012 version-properties-file: version.properties
1014 mvn-global-settings: global-settings
1015 mvn-goals: clean deploy
1019 ossrh-profile-id: ""
1022 sbom-path: "$WORKSPACE"
1023 sbom-generator: false
1024 sbom-generator-version: "v0.0.15"
1025 sign-artifacts: false
1028 submodule-recursive: true
1029 submodule-timeout: 10
1030 submodule-disable: false
1032 gerrit_release_triggers:
1033 - comment-added-contains-event:
1034 comment-contains-value: '^Patch Set\s+\d+:\s+stage-(maven-)?release\s*$'
1036 gerrit_trigger_file_paths:
1040 # github_included_regions MUST match gerrit_trigger_file_paths
1041 github_included_regions:
1044 #####################
1045 # Job Configuration #
1046 #####################
1048 disabled: "{disable-job}"
1051 - lf-infra-parameters:
1052 project: "{project}"
1055 - lf-infra-maven-parameters:
1056 mvn-opts: "{mvn-opts}"
1057 mvn-params: "{mvn-params}"
1058 mvn-version: "{mvn-version}"
1059 staging-profile-id: "{staging-profile-id}"
1061 name: MAVEN_VERSIONS_PLUGIN
1062 default: "{maven-versions-plugin}"
1063 description: Use maven-versions-plugin to update pom versions.
1065 name: ARCHIVE_ARTIFACTS
1066 default: "{archive-artifacts}"
1067 description: Artifacts to archive to the logs server.
1069 name: STAGING_PROFILE_ID
1070 default: "{staging-profile-id}"
1071 description: Nexus staging profile ID.
1073 name: SBOM_GENERATOR_VERSION
1074 default: "{sbom-generator-version}"
1075 description: SBOM generator version to download and run.
1078 default: "{sbom-path}"
1079 description: path where SBOM needs to be executed.
1082 - lf-infra-pre-build
1083 - lf-jacoco-nojava-workaround
1085 mvn-version: "{mvn-version}"
1086 - lf-update-java-alternatives:
1087 java-version: "{java-version}"
1088 - lf-provide-maven-settings:
1089 global-settings-file: "{mvn-global-settings}"
1090 settings-file: "{mvn-settings}"
1091 - lf-maven-versions-plugin:
1092 maven-versions-plugin: "{maven-versions-plugin}"
1093 version-properties-file: "{version-properties-file}"
1094 mvn-version: "{mvn-version}"
1095 mvn-pom: "{mvn-pom}"
1096 mvn-settings: "{mvn-settings}"
1097 - shell: !include-raw-escape: ../shell/maven-patch-release.sh
1099 mvn-goals: "{mvn-goals}"
1100 # With SBOM Generator
1102 condition-kind: boolean-expression
1103 condition-expression: "{sbom-generator}"
1105 - shell: echo 'Running SBOM Generator'
1106 - lf-infra-maven-sbom-generator:
1107 sbom-flags: "{sbom-flags}"
1108 - lf-sigul-sign-dir:
1109 sign-artifacts: "{sign-artifacts}"
1110 sign-dir: "$WORKSPACE/m2repo"
1111 sign-mode: "{sign-mode}"
1113 mvn-global-settings: "{mvn-global-settings}"
1114 mvn-settings: "{mvn-settings}"
1115 mvn-staging-id: "{mvn-staging-id}"
1117 mvn-central: "{mvn-central}"
1118 mvn-global-settings: "{mvn-global-settings}"
1119 mvn-settings: "{mvn-settings}"
1120 ossrh-profile-id: "{ossrh-profile-id}"
1121 - lf-provide-maven-settings-cleanup
1124 name: "{project-name}-maven-stage-{stream}"
1125 id: gerrit-maven-stage
1126 <<: *lf_maven_common
1127 # yamllint disable-line rule:key-duplicates
1131 - lf-infra-gerrit-scm:
1132 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1133 git-url: "{git-url}"
1134 refspec: "$GERRIT_REFSPEC"
1135 branch: "$GERRIT_BRANCH"
1136 submodule-recursive: "{submodule-recursive}"
1137 submodule-timeout: "{submodule-timeout}"
1138 submodule-disable: "{submodule-disable}"
1139 choosing-strategy: default
1142 - timed: "{obj:cron}"
1144 server-name: "{gerrit-server-name}"
1145 trigger-on: "{obj:gerrit_release_triggers}"
1147 - project-compare-type: ANT
1148 project-pattern: "{project}"
1150 - branch-compare-type: ANT
1151 branch-pattern: "**/{branch}"
1152 file-paths: "{obj:gerrit_trigger_file_paths}"
1155 name: "{project-name}-maven-stage-{stream}"
1156 id: github-maven-stage
1157 <<: *lf_maven_common
1158 # yamllint disable-line rule:key-duplicates
1162 - lf-infra-properties:
1163 build-days-to-keep: "{build-days-to-keep}"
1165 url: "{github-url}/{github-org}/{project}"
1168 - lf-infra-github-scm:
1169 url: "{git-clone-url}{github-org}/{project}"
1170 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1172 submodule-recursive: "{submodule-recursive}"
1173 submodule-timeout: "{submodule-timeout}"
1174 submodule-disable: "{submodule-disable}"
1175 choosing-strategy: default
1176 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1179 - timed: "{obj:cron}"
1180 - github-pull-request:
1181 trigger-phrase: "^stage-(maven-)?release$"
1182 only-trigger-phrase: true
1183 status-context: "Maven Release"
1186 white-list-target-branches:
1188 included-regions: "{obj:github_included_regions}"
1190 ##########################
1191 # Maven Stage for Docker #
1192 ##########################
1194 - _lf_maven_docker_stage: &lf_maven_docker_stage
1195 name: lf-maven-docker-stage
1198 - lf-infra-pre-build
1199 - lf-jacoco-nojava-workaround
1201 mvn-version: "{mvn-version}"
1202 - lf-update-java-alternatives:
1203 java-version: "{java-version}"
1204 - lf-infra-docker-login:
1205 global-settings-file: "{mvn-global-settings}"
1206 settings-file: "{mvn-settings}"
1207 # must provide maven settings AFTER docker-login due to its cleanup
1208 - lf-provide-maven-settings:
1209 global-settings-file: "{mvn-global-settings}"
1210 settings-file: "{mvn-settings}"
1211 - lf-maven-versions-plugin:
1212 maven-versions-plugin: "{maven-versions-plugin}"
1213 version-properties-file: "{version-properties-file}"
1214 mvn-version: "{mvn-version}"
1215 mvn-pom: "{mvn-pom}"
1216 mvn-settings: "{mvn-settings}"
1217 - shell: !include-raw-escape: ../shell/maven-patch-release.sh
1219 properties-content: |
1220 CONTAINER_PULL_REGISTRY={container-public-registry}
1221 CONTAINER_PUSH_REGISTRY={container-staging-registry}
1223 mvn-goals: "{mvn-goals}"
1224 # With SBOM Generator
1226 condition-kind: boolean-expression
1227 condition-expression: "{sbom-generator}"
1229 - shell: echo 'Running SBOM Generator'
1230 - lf-infra-maven-sbom-generator:
1231 sbom-flags: "{sbom-flags}"
1232 - lf-sigul-sign-dir:
1233 sign-artifacts: "{sign-artifacts}"
1234 sign-dir: "$WORKSPACE/m2repo"
1235 sign-mode: "{sign-mode}"
1237 # NO lf-maven-central
1238 - lf-provide-maven-settings-cleanup
1240 gerrit_release_docker_triggers:
1241 - comment-added-contains-event:
1242 comment-contains-value: '^Patch Set\s+\d+:\s+stage-(docker-)?release\s*$'
1245 name: "{project-name}-maven-docker-stage-{stream}"
1246 id: gerrit-maven-docker-stage
1247 <<: *lf_maven_common
1248 # yamllint disable-line rule:key-duplicates
1250 # yamllint disable-line rule:key-duplicates
1251 <<: *lf_maven_docker_stage
1254 - lf-infra-gerrit-scm:
1255 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1256 git-url: "{git-url}"
1257 refspec: "$GERRIT_REFSPEC"
1258 branch: "$GERRIT_BRANCH"
1259 submodule-recursive: "{submodule-recursive}"
1260 submodule-timeout: "{submodule-timeout}"
1261 submodule-disable: "{submodule-disable}"
1262 choosing-strategy: default
1265 - timed: "{obj:cron}"
1267 server-name: "{gerrit-server-name}"
1268 trigger-on: "{obj:gerrit_release_docker_triggers}"
1270 - project-compare-type: ANT
1271 project-pattern: "{project}"
1273 - branch-compare-type: ANT
1274 branch-pattern: "**/{branch}"
1275 file-paths: "{obj:gerrit_trigger_file_paths}"
1278 name: "{project-name}-maven-docker-stage-{stream}"
1279 id: github-maven-docker-stage
1280 <<: *lf_maven_common
1281 # yamllint disable-line rule:key-duplicates
1283 # yamllint disable-line rule:key-duplicates
1284 <<: *lf_maven_docker_stage
1287 - lf-infra-properties:
1288 build-days-to-keep: "{build-days-to-keep}"
1290 url: "{github-url}/{github-org}/{project}"
1293 - lf-infra-github-scm:
1294 url: "{git-clone-url}{github-org}/{project}"
1295 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1297 submodule-recursive: "{submodule-recursive}"
1298 submodule-timeout: "{submodule-timeout}"
1299 submodule-disable: "{submodule-disable}"
1300 choosing-strategy: default
1301 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1304 - timed: "{obj:cron}"
1305 - github-pull-request:
1306 trigger-phrase: "^stage-(docker-)?release$"
1307 only-trigger-phrase: true
1308 status-context: "Maven Release"
1311 white-list-target-branches:
1313 included-regions: "{obj:github_included_regions}"
1319 - _lf_maven_sonar: &lf_maven_sonar
1320 name: lf-maven-sonar
1322 ######################
1323 # Default parameters #
1324 ######################
1326 branch: master # Sonar should always be run on master branch
1327 build-days-to-keep: 7
1329 cron: "H H * * 6" # run weekly
1331 git-url: "$GIT_URL/$PROJECT"
1332 github-url: "https://github.com"
1333 jacoco-exclude-pattern: >-
1335 **/generated-sources/**,
1338 java-version: openjdk11
1340 mvn-global-settings: global-settings
1341 mvn-goals: clean install
1345 sonar-mvn-goal: "sonar:sonar"
1347 sonarcloud-project-key: ""
1348 sonarcloud-project-organization: ""
1349 sonarcloud-api-token-cred-id: sonarcloud-api-token
1350 sonarcloud-qualitygate-wait: false
1351 # Projects not compatible with jdk17 can set java-version to something else
1352 sonarcloud-java-version: openjdk17
1354 submodule-recursive: true
1355 submodule-timeout: 10
1356 submodule-disable: false
1357 scan-dev-branch: false
1359 gerrit_sonar_triggers:
1360 - comment-added-contains-event:
1361 comment-contains-value: '^Patch Set\s+\d+:\s+run-sonar\s*$'
1363 #####################
1364 # Job Configuration #
1365 #####################
1367 disabled: "{disable-job}"
1370 - lf-infra-parameters:
1371 project: "{project}"
1374 - lf-infra-maven-parameters:
1375 mvn-opts: "{mvn-opts}"
1376 mvn-params: "{mvn-params}"
1377 mvn-version: "{mvn-version}"
1379 name: ARCHIVE_ARTIFACTS
1380 default: "{archive-artifacts}"
1381 description: Artifacts to archive to the logs server.
1384 default: "{java-opts}"
1386 Java options. Example: -Xmx1024m
1388 name: SONAR_MAVEN_GOAL
1389 default: "{sonar-mvn-goal}"
1391 Maven goals to pass to the Sonar call. Typically sonar:sonar
1392 however to use a specific version of the sonar-maven-plugin we
1393 can call "org.codehaus.mojo:sonar-maven-plugin:3.3.0.603:sonar".
1396 - credentials-binding:
1398 credential-id: "{sonarcloud-api-token-cred-id}"
1402 - timed: "{obj:cron}"
1404 server-name: "{gerrit-server-name}"
1405 trigger-on: "{obj:gerrit_sonar_triggers}"
1407 - project-compare-type: "ANT"
1408 project-pattern: "{project}"
1410 - branch-compare-type: "ANT"
1411 branch-pattern: "**/master"
1420 exclude-pattern: "{jacoco-exclude-pattern}"
1424 - _mvn_sonar_builders: &mvn_sonar_builders
1425 name: mvn-sonar-builders
1427 - lf-infra-pre-build
1430 condition-kind: boolean-expression
1431 condition-expression: "{sonarcloud}"
1433 - shell: echo 'Using SonarCloud'
1434 - lf-infra-maven-sonarcloud:
1435 java-version: "{java-version}"
1436 mvn-goals: "{mvn-goals}"
1437 mvn-settings: "{mvn-settings}"
1438 mvn-version: "{mvn-version}"
1439 sonarcloud-project-key: "{sonarcloud-project-key}"
1440 sonarcloud-project-organization: "{sonarcloud-project-organization}"
1441 sonarcloud-java-version: "{sonarcloud-java-version}"
1442 sonarcloud-qualitygate-wait: "{sonarcloud-qualitygate-wait}"
1443 scan-dev-branch: "{scan-dev-branch}"
1448 condition-kind: boolean-expression
1449 condition-expression: "{sonarcloud}"
1451 - shell: echo 'Using SonarQube'
1452 - lf-infra-maven-sonar:
1453 java-version: "{java-version}"
1454 mvn-goals: "{mvn-goals}"
1455 mvn-settings: "{mvn-settings}"
1456 mvn-version: "{mvn-version}"
1458 - _mvn_sonar_builders_prescan_script: &mvn_sonar_builders_prescan_script
1459 name: mvn-sonar-builders-prescan-script
1461 - shell: "{sonar-prescan-script}"
1462 - lf-infra-pre-build
1465 condition-kind: boolean-expression
1466 condition-expression: "{sonarcloud}"
1468 - shell: echo 'Using SonarCloud'
1469 - lf-infra-maven-sonarcloud:
1470 java-version: "{java-version}"
1471 mvn-goals: "{mvn-goals}"
1472 mvn-settings: "{mvn-settings}"
1473 mvn-version: "{mvn-version}"
1474 sonarcloud-project-key: "{sonarcloud-project-key}"
1475 sonarcloud-project-organization: "{sonarcloud-project-organization}"
1476 sonarcloud-java-version: "{sonarcloud-java-version}"
1477 sonarcloud-qualitygate-wait: "{sonarcloud-qualitygate-wait}"
1478 scan-dev-branch: "{scan-dev-branch}"
1483 condition-kind: boolean-expression
1484 condition-expression: "{sonarcloud}"
1486 - shell: echo 'Using SonarQube'
1487 - lf-infra-maven-sonar:
1488 java-version: "{java-version}"
1489 mvn-goals: "{mvn-goals}"
1490 mvn-settings: "{mvn-settings}"
1491 mvn-version: "{mvn-version}"
1494 name: lf-infra-maven-sbom-generator
1495 # Run Maven goals and trigger SPDX SBOM Generator tool
1498 properties-content: |
1499 SBOM_FLAGS={sbom-flags}
1500 - shell: !include-raw-escape:
1501 - ../shell/sbom-generator.sh
1504 name: lf-infra-maven-sonar
1505 # Run a Sonar build with Maven
1508 mvn-version: "{mvn-version}"
1509 - lf-update-java-alternatives:
1510 java-version: "{java-version}"
1512 # Switch this to the sonar wrapper when JJB 2.0 is available
1513 properties-content: |
1514 SONAR_HOST_URL=$SONAR_URL
1515 MAVEN_GOALS={mvn-goals}
1516 - lf-provide-maven-settings:
1517 global-settings-file: global-settings
1518 settings-file: "{mvn-settings}"
1519 - shell: !include-raw-escape:
1520 - ../shell/common-variables.sh
1521 - ../shell/maven-sonar.sh
1522 - lf-provide-maven-settings-cleanup
1525 name: lf-infra-maven-sonarcloud
1526 # Run a Sonar build with Maven
1529 mvn-version: "{mvn-version}"
1530 - lf-update-java-alternatives:
1531 java-version: "{java-version}"
1533 # Switch this to the sonar wrapper when JJB 2.0 is available
1534 properties-content: |
1535 SONAR_HOST_URL=https://sonarcloud.io
1536 PROJECT_KEY={sonarcloud-project-key}
1537 PROJECT_ORGANIZATION={sonarcloud-project-organization}
1538 MAVEN_GOALS={mvn-goals}
1539 SONARCLOUD_JAVA_VERSION={sonarcloud-java-version}
1540 SCAN_DEV_BRANCH={scan-dev-branch}
1541 SONARCLOUD_QUALITYGATE_WAIT={sonarcloud-qualitygate-wait}
1542 - lf-provide-maven-settings:
1543 global-settings-file: global-settings
1544 settings-file: "{mvn-settings}"
1545 - shell: !include-raw-escape:
1546 - ../shell/common-variables.sh
1547 - ../shell/maven-sonar.sh
1548 - lf-provide-maven-settings-cleanup
1551 name: "{project-name}-sonar"
1552 id: gerrit-maven-sonar
1553 <<: *lf_maven_common
1554 # yamllint disable-line rule:key-duplicates
1556 <<: *mvn_sonar_builders
1559 - lf-infra-gerrit-scm:
1560 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1561 git-url: "{git-url}"
1562 refspec: $GERRIT_REFSPEC
1563 branch: $GERRIT_BRANCH
1564 submodule-recursive: "{submodule-recursive}"
1565 submodule-timeout: "{submodule-timeout}"
1566 submodule-disable: "{submodule-disable}"
1567 choosing-strategy: default
1570 name: "{project-name}-sonar-verify"
1571 id: gerrit-maven-sonar-verify
1572 <<: *lf_maven_common
1573 # yamllint disable-line rule:key-duplicates
1575 <<: *mvn_sonar_builders
1578 scan-dev-branch: true
1579 sonarcloud-qualitygate-wait: false
1581 gerrit_sonar_triggers:
1582 - patchset-created-event:
1583 exclude-drafts: true
1584 exclude-trivial-rebase: false
1585 exclude-no-code-change: false
1586 - draft-published-event
1587 - comment-added-contains-event:
1588 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1590 gerrit_trigger_file_paths:
1591 - compare-type: REG_EXP
1596 server-name: "{gerrit-server-name}"
1597 trigger-on: "{obj:gerrit_sonar_triggers}"
1599 - project-compare-type: "ANT"
1600 project-pattern: "{project}"
1602 - branch-compare-type: "ANT"
1603 branch-pattern: "**/{branch}"
1604 file-paths: "{obj:gerrit_trigger_file_paths}"
1607 - lf-infra-gerrit-scm:
1608 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1609 git-url: "{git-url}"
1610 refspec: $GERRIT_REFSPEC
1611 branch: $GERRIT_BRANCH
1612 submodule-recursive: "{submodule-recursive}"
1613 submodule-timeout: "{submodule-timeout}"
1614 submodule-disable: "{submodule-disable}"
1615 choosing-strategy: gerrit
1618 name: "{project-name}-sonar-prescan-script"
1619 id: gerrit-maven-sonar-prescan-script
1620 <<: *lf_maven_common
1621 # yamllint disable-line rule:key-duplicates
1623 <<: *mvn_sonar_builders_prescan_script
1626 - lf-infra-gerrit-scm:
1627 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1628 git-url: "{git-url}"
1629 refspec: $GERRIT_REFSPEC
1630 branch: $GERRIT_BRANCH
1631 submodule-recursive: "{submodule-recursive}"
1632 submodule-timeout: "{submodule-timeout}"
1633 submodule-disable: "{submodule-disable}"
1634 choosing-strategy: default
1637 name: "{project-name}-sonar"
1638 id: github-maven-sonar
1639 <<: *lf_maven_common
1640 # yamllint disable-line rule:key-duplicates
1644 - lf-infra-properties:
1645 build-days-to-keep: "{build-days-to-keep}"
1647 url: "{github-url}/{github-org}/{project}"
1650 - lf-infra-github-scm:
1651 url: "{git-clone-url}{github-org}/{project}"
1652 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1654 submodule-recursive: "{submodule-recursive}"
1655 submodule-timeout: "{submodule-timeout}"
1656 submodule-disable: "{submodule-disable}"
1657 choosing-strategy: default
1658 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1661 - timed: "{obj:cron}"
1662 - github-pull-request:
1663 trigger-phrase: "^run-sonar$"
1664 only-trigger-phrase: true
1665 status-context: "Maven Sonar"
1670 white-list: "{obj:github_pr_allowlist}"
1671 admin-list: "{obj:github_pr_admin_list}"
1672 white-list-target-branches:
1676 name: "{project-name}-sonar-prescan-script"
1677 id: github-maven-sonar-prescan-script
1678 <<: *lf_maven_common
1679 # yamllint disable-line rule:key-duplicates
1681 <<: *mvn_sonar_builders_prescan_script
1684 - lf-infra-properties:
1685 build-days-to-keep: "{build-days-to-keep}"
1687 url: "{github-url}/{github-org}/{project}"
1690 - lf-infra-github-scm:
1691 url: "{git-clone-url}{github-org}/{project}"
1692 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1694 submodule-recursive: "{submodule-recursive}"
1695 submodule-timeout: "{submodule-timeout}"
1696 submodule-disable: "{submodule-disable}"
1697 choosing-strategy: default
1698 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1701 - timed: "{obj:cron}"
1702 - github-pull-request:
1703 trigger-phrase: "^run-sonar$"
1704 only-trigger-phrase: true
1705 status-context: "Maven Sonar"
1710 white-list: "{obj:github_pr_allowlist}"
1711 admin-list: "{obj:github_pr_admin_list}"
1712 white-list-target-branches:
1719 - _lf_maven_verify: &lf_maven_verify
1720 name: lf-maven-verify
1722 ######################
1723 # Default parameters #
1724 ######################
1727 build-days-to-keep: 7
1730 git-url: "$GIT_URL/$PROJECT"
1731 github-url: "https://github.com"
1732 jacoco-exclude-pattern: >-
1734 **/generated-sources/**,
1737 java-version: openjdk11
1738 mvn-global-settings: global-settings
1739 mvn-goals: clean deploy
1741 mvn-params: "-Dstream=$STREAM -Dmaven.source.skip=true"
1743 pre-build-script: "# pre-build script goes here"
1744 post-build-script: "# post-build script goes here"
1746 submodule-recursive: true
1747 submodule-timeout: 10
1748 submodule-disable: false
1750 gerrit_verify_triggers:
1751 - patchset-created-event:
1752 exclude-drafts: true
1753 exclude-trivial-rebase: false
1754 exclude-no-code-change: false
1755 - draft-published-event
1756 - comment-added-contains-event:
1757 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1759 gerrit_trigger_file_paths:
1760 - compare-type: REG_EXP
1763 # github_included_regions MUST match gerrit_trigger_file_paths
1764 github_included_regions:
1767 #####################
1768 # Job Configuration #
1769 #####################
1772 disabled: "{disable-job}"
1775 - lf-infra-pre-build
1776 - lf-jacoco-nojava-workaround
1778 mvn-version: "{mvn-version}"
1779 - lf-update-java-alternatives:
1780 java-version: "{java-version}"
1781 - lf-provide-maven-settings:
1782 global-settings-file: "{mvn-global-settings}"
1783 settings-file: "{mvn-settings}"
1784 - shell: "{pre-build-script}"
1786 mvn-goals: "{mvn-goals}"
1787 - shell: "{post-build-script}"
1788 - lf-provide-maven-settings-cleanup
1793 exclude-pattern: "{jacoco-exclude-pattern}"
1797 name: "{project-name}-maven-verify-{stream}-{mvn-version}-{java-version}"
1798 id: gerrit-maven-verify
1799 <<: *lf_maven_common
1800 # yamllint disable-line rule:key-duplicates
1801 <<: *lf_maven_verify
1804 - lf-infra-gerrit-scm:
1805 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1806 git-url: "{git-url}"
1807 refspec: "$GERRIT_REFSPEC"
1808 branch: "$GERRIT_BRANCH"
1809 submodule-recursive: "{submodule-recursive}"
1810 submodule-timeout: "{submodule-timeout}"
1811 submodule-disable: "{submodule-disable}"
1812 choosing-strategy: gerrit
1816 server-name: "{gerrit-server-name}"
1817 trigger-on: "{obj:gerrit_verify_triggers}"
1819 - project-compare-type: ANT
1820 project-pattern: "{project}"
1822 - branch-compare-type: ANT
1823 branch-pattern: "**/{branch}"
1824 file-paths: "{obj:gerrit_trigger_file_paths}"
1827 name: "{project-name}-maven-verify-{stream}-{mvn-version}-{java-version}"
1828 id: github-maven-verify
1829 <<: *lf_maven_common
1830 # yamllint disable-line rule:key-duplicates
1831 <<: *lf_maven_verify
1834 - lf-infra-properties:
1835 build-days-to-keep: "{build-days-to-keep}"
1837 url: "{github-url}/{github-org}/{project}"
1840 - lf-infra-github-scm:
1841 url: "{git-clone-url}{github-org}/{project}"
1842 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1844 submodule-recursive: "{submodule-recursive}"
1845 submodule-timeout: "{submodule-timeout}"
1846 submodule-disable: "{submodule-disable}"
1847 choosing-strategy: default
1848 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1851 - github-pull-request:
1852 trigger-phrase: "^(recheck|reverify)$"
1853 only-trigger-phrase: false
1854 status-context: "Maven Verify {mvn-version}-{java-version}"
1857 white-list-target-branches:
1859 included-regions: "{obj:github_included_regions}"
1861 ###########################
1862 # Maven Verify for Docker #
1863 ###########################
1865 - _lf_maven_docker_verify: &lf_maven_docker_verify
1866 name: lf-maven-docker-verify
1868 # image push not allowed during verification
1869 mvn-goals: clean install
1872 - lf-infra-pre-build
1873 - lf-jacoco-nojava-workaround
1875 mvn-version: "{mvn-version}"
1876 - lf-update-java-alternatives:
1877 java-version: "{java-version}"
1878 - lf-infra-docker-login:
1879 global-settings-file: "{mvn-global-settings}"
1880 settings-file: "{mvn-settings}"
1881 # must provide maven settings AFTER docker due to its cleanup
1882 - lf-provide-maven-settings:
1883 global-settings-file: "{mvn-global-settings}"
1884 settings-file: "{mvn-settings}"
1886 properties-content: |
1887 CONTAINER_PULL_REGISTRY={container-public-registry}
1889 mvn-goals: "{mvn-goals}"
1890 - lf-provide-maven-settings-cleanup
1893 name: "{project-name}-maven-docker-verify-{stream}-{mvn-version}-{java-version}"
1894 id: gerrit-maven-docker-verify
1895 <<: *lf_maven_common
1896 # yamllint disable-line rule:key-duplicates
1897 <<: *lf_maven_verify
1898 # yamllint disable-line rule:key-duplicates
1899 <<: *lf_maven_docker_verify
1902 - lf-infra-gerrit-scm:
1903 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1904 git-url: "{git-url}"
1905 refspec: "$GERRIT_REFSPEC"
1906 branch: "$GERRIT_BRANCH"
1907 submodule-recursive: "{submodule-recursive}"
1908 submodule-timeout: "{submodule-timeout}"
1909 submodule-disable: "{submodule-disable}"
1910 choosing-strategy: gerrit
1914 server-name: "{gerrit-server-name}"
1915 trigger-on: "{obj:gerrit_verify_triggers}"
1917 - project-compare-type: ANT
1918 project-pattern: "{project}"
1920 - branch-compare-type: ANT
1921 branch-pattern: "**/{branch}"
1922 file-paths: "{obj:gerrit_trigger_file_paths}"
1925 name: "{project-name}-maven-docker-verify-{stream}-{mvn-version}-{java-version}"
1926 id: github-maven-docker-verify
1927 <<: *lf_maven_common
1928 # yamllint disable-line rule:key-duplicates
1929 <<: *lf_maven_verify
1930 # yamllint disable-line rule:key-duplicates
1931 <<: *lf_maven_docker_verify
1934 - lf-infra-properties:
1935 build-days-to-keep: "{build-days-to-keep}"
1937 url: "{github-url}/{github-org}/{project}"
1940 - lf-infra-github-scm:
1941 url: "{git-clone-url}{github-org}/{project}"
1942 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1944 submodule-recursive: "{submodule-recursive}"
1945 submodule-timeout: "{submodule-timeout}"
1946 submodule-disable: "{submodule-disable}"
1947 choosing-strategy: default
1948 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1951 - github-pull-request:
1952 trigger-phrase: "^(recheck|reverify)$"
1953 only-trigger-phrase: false
1954 status-context: "Maven Docker Verify {mvn-version}-{java-version}"
1957 white-list-target-branches:
1959 included-regions: "{obj:github_included_regions}"
1961 #############################
1962 # Maven Verify Dependencies #
1963 #############################
1965 - _lf_maven_verify_dependencies: &lf_maven_verify_dependencies
1966 name: lf-maven-verify-dependencies
1968 ######################
1969 # Default parameters #
1970 ######################
1973 build-days-to-keep: 7
1976 git-url: "$GIT_URL/$PROJECT"
1977 github-url: "https://github.com"
1978 jacoco-exclude-pattern: >-
1980 **/generated-sources/**,
1983 java-version: openjdk11
1984 mvn-global-settings: global-settings
1985 mvn-goals: clean deploy
1987 mvn-params: "-Dstream=$STREAM"
1990 submodule-recursive: true
1991 submodule-timeout: 10
1992 submodule-disable: false
1994 gerrit_verify_triggers:
1995 - comment-added-contains-event:
1996 comment-contains-value: "recheck: [0-9 ]+"
1997 gerrit_trigger_file_paths:
2001 #####################
2002 # Job Configuration #
2003 #####################
2006 disabled: "{disable-job}"
2009 - lf-infra-pre-build
2010 - lf-jacoco-nojava-workaround
2012 mvn-version: "{mvn-version}"
2013 - lf-update-java-alternatives:
2014 java-version: "{java-version}"
2015 - lf-provide-maven-settings:
2016 global-settings-file: "{mvn-global-settings}"
2017 settings-file: "{mvn-settings}"
2018 - lf-fetch-dependent-patches
2019 - shell: !include-raw-escape:
2020 - ../shell/common-variables.sh
2021 - ../shell/maven-build-deps.sh
2023 mvn-goals: "{mvn-goals}"
2024 - lf-provide-maven-settings-cleanup
2029 exclude-pattern: "{jacoco-exclude-pattern}"
2033 name: "{project-name}-maven-verify-deps-{stream}-{mvn-version}-{java-version}"
2034 id: gerrit-maven-verify-dependencies
2035 <<: *lf_maven_common
2036 # yamllint disable-line rule:key-duplicates
2037 <<: *lf_maven_verify_dependencies
2040 - lf-infra-gerrit-scm:
2041 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2042 git-url: "{git-url}"
2043 refspec: "$GERRIT_REFSPEC"
2044 branch: "$GERRIT_BRANCH"
2045 submodule-recursive: "{submodule-recursive}"
2046 submodule-timeout: "{submodule-timeout}"
2047 submodule-disable: "{submodule-disable}"
2048 choosing-strategy: gerrit
2052 server-name: "{gerrit-server-name}"
2053 trigger-on: "{obj:gerrit_verify_triggers}"
2055 - project-compare-type: ANT
2056 project-pattern: "{project}"
2058 - branch-compare-type: ANT
2059 branch-pattern: "**/{branch}"
2060 file-paths: "{obj:gerrit_trigger_file_paths}"
2061 comment-text-parameter-mode: PLAIN