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: 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
319 snyk-token-credential-id: snyk-token
320 snyk-org-credential-id: snyk-org
322 submodule-recursive: true
323 submodule-timeout: 10
324 submodule-disable: false
326 gerrit_snyk_triggers:
327 - comment-added-contains-event:
328 comment-contains-value: '^Patch Set\s+\d+:\s+run-snyk\s*$'
331 - lf-infra-parameters:
335 - lf-infra-maven-parameters:
336 mvn-opts: "{mvn-opts}"
337 mvn-params: "{mvn-params}"
338 mvn-version: "{mvn-version}"
340 name: ARCHIVE_ARTIFACTS
341 default: "{archive-artifacts}"
342 description: Artifacts to archive to the logs server.
345 - credentials-binding:
347 credential-id: "{snyk-token-credential-id}"
350 credential-id: "{snyk-org-credential-id}"
353 #####################
354 # Job Configuration #
355 #####################
357 disabled: "{disable-job}"
362 mvn-version: "{mvn-version}"
363 - lf-update-java-alternatives:
364 java-version: "{java-version}"
365 - lf-provide-maven-settings:
366 global-settings-file: "{mvn-global-settings}"
367 settings-file: "{mvn-settings}"
369 mvn-goals: "{mvn-goals}"
370 - lf-infra-snyk-cli-scanner
371 - lf-provide-maven-settings-cleanup
372 - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
375 name: lf-infra-snyk-cli-scanner
376 # Download and run the Snyk CLI scanner
378 - shell: !include-raw-escape:
379 - ../shell/snyk-cli-scanner-run.sh
382 name: "{project-name}-maven-snyk-cli-{stream}"
383 id: gerrit-maven-snyk-cli
385 # yamllint disable-line rule:key-duplicates
386 <<: *lf_maven_snyk_cli
389 - lf-infra-gerrit-scm:
390 jenkins-ssh-credential: "{jenkins-ssh-credential}"
392 refspec: "$GERRIT_REFSPEC"
393 branch: "$GERRIT_BRANCH"
394 submodule-recursive: "{submodule-recursive}"
395 submodule-timeout: "{submodule-timeout}"
396 submodule-disable: "{submodule-disable}"
397 choosing-strategy: default
400 # Build weekly on Saturdays
403 server-name: "{gerrit-server-name}"
404 trigger-on: "{obj:gerrit_snyk_triggers}"
406 - project-compare-type: ANT
407 project-pattern: "{project}"
409 - branch-compare-type: ANT
410 branch-pattern: "**/{branch}"
418 name: "{project-name}-maven-snyk-cli-{stream}"
419 id: github-maven-snyk-cli
421 # yamllint disable-line rule:key-duplicates
422 <<: *lf_maven_snyk_cli
425 - lf-infra-properties:
426 build-days-to-keep: "{build-days-to-keep}"
428 url: "{github-url}/{github-org}/{project}"
431 - lf-infra-github-scm:
432 url: "{git-clone-url}{github-org}/{project}"
434 branch: "refs/heads/{branch}"
435 submodule-recursive: "{submodule-recursive}"
436 submodule-timeout: "{submodule-timeout}"
437 submodule-disable: "{submodule-disable}"
438 choosing-strategy: default
439 jenkins-ssh-credential: "{jenkins-ssh-credential}"
442 # Build weekly on Saturdays
444 - github-pull-request:
445 trigger-phrase: "^run-snyk$"
446 only-trigger-phrase: true
447 status-context: "SNYK scan"
452 white-list: "{obj:github_pr_allowlist}"
453 admin-list: "{obj:github_pr_admin_list}"
454 white-list-target-branches:
457 #########################
458 # Maven Javadoc Publish #
459 #########################
461 - lf_maven_javadoc_publish: &lf_maven_javadoc_publish
462 name: lf-maven-javadoc-publish
464 ######################
465 # Default parameters #
466 ######################
469 build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
472 git-url: "$GIT_URL/$PROJECT"
473 github-url: "https://github.com"
474 java-version: openjdk11
476 mvn-global-settings: global-settings
481 submodule-recursive: true
482 submodule-timeout: 10
483 submodule-disable: false
485 gerrit_merge_triggers:
486 - change-merged-event
487 - comment-added-contains-event:
488 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
490 #####################
491 # Job Configuration #
492 #####################
494 disabled: "{disable-job}"
499 mvn-version: "{mvn-version}"
500 - lf-update-java-alternatives:
501 java-version: "{java-version}"
502 - lf-provide-maven-settings:
503 global-settings-file: "{mvn-global-settings}"
504 settings-file: "{mvn-settings}"
505 - lf-infra-create-netrc:
506 server-id: "{mvn-site-id}"
508 properties-content: |
509 DEPLOY_PATH={javadoc-path}
511 - shell: !include-raw-escape:
512 - ../shell/common-variables.sh
513 - ../shell/maven-javadoc-generate.sh
514 - ../shell/maven-javadoc-publish.sh
515 - lf-provide-maven-settings-cleanup
518 name: "{project-name}-maven-javadoc-publish-{stream}-{java-version}"
519 id: gerrit-maven-javadoc-publish
521 # yamllint disable-line rule:key-duplicates
522 <<: *lf_maven_javadoc_publish
524 git-url: "$GIT_URL/$GERRIT_PROJECT"
527 - lf-infra-gerrit-scm:
531 submodule-recursive: "{submodule-recursive}"
532 submodule-timeout: "{submodule-timeout}"
533 submodule-disable: "{submodule-disable}"
534 choosing-strategy: default
535 jenkins-ssh-credential: "{jenkins-ssh-credential}"
539 server-name: "{gerrit-server-name}"
540 trigger-on: "{obj:gerrit_merge_triggers}"
542 - project-compare-type: ANT
543 project-pattern: "{project}"
545 - branch-compare-type: ANT
546 branch-pattern: "**/{branch}"
549 name: "{project-name}-maven-javadoc-publish-{stream}-{java-version}"
550 id: github-maven-javadoc-publish
552 # yamllint disable-line rule:key-duplicates
553 <<: *lf_maven_javadoc_publish
556 - lf-infra-properties:
557 build-days-to-keep: "{build-days-to-keep}"
559 url: "{github-url}/{github-org}/{project}"
562 - lf-infra-github-scm:
563 url: "{git-clone-url}{github-org}/{project}"
566 submodule-recursive: "{submodule-recursive}"
567 submodule-timeout: "{submodule-timeout}"
568 submodule-disable: "{submodule-disable}"
569 choosing-strategy: default
570 jenkins-ssh-credential: "{jenkins-ssh-credential}"
576 - github-pull-request:
577 trigger-phrase: "^remerge$"
578 only-trigger-phrase: true
579 status-context: "Maven Javadoc Publish"
584 white-list: "{obj:github_pr_allowlist}"
585 admin-list: "{obj:github_pr_admin_list}"
586 white-list-target-branches:
589 ########################
590 # Maven Javadoc Verify #
591 ########################
593 - lf_maven_javadoc_verify: &lf_maven_javadoc_verify
594 name: lf-maven-javadoc-verify
596 ######################
597 # Default parameters #
598 ######################
601 build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
604 git-url: "$GIT_URL/$PROJECT"
605 github-url: "https://github.com"
606 java-version: openjdk11
608 mvn-global-settings: global-settings
613 submodule-recursive: true
614 submodule-timeout: 10
615 submodule-disable: false
617 gerrit_verify_triggers:
618 - patchset-created-event:
620 exclude-trivial-rebase: false
621 exclude-no-code-change: false
622 - draft-published-event
623 - comment-added-contains-event:
624 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
626 #####################
627 # Job Configuration #
628 #####################
631 disabled: "{disable-job}"
636 mvn-version: "{mvn-version}"
637 - lf-update-java-alternatives:
638 java-version: "{java-version}"
639 - lf-provide-maven-settings:
640 global-settings-file: "{mvn-global-settings}"
641 settings-file: "{mvn-settings}"
643 properties-content: |
645 - shell: !include-raw-escape:
646 - ../shell/common-variables.sh
647 - ../shell/maven-javadoc-generate.sh
648 - lf-provide-maven-settings-cleanup
651 name: "{project-name}-maven-javadoc-verify-{stream}-{java-version}"
652 id: gerrit-maven-javadoc-verify
654 # yamllint disable-line rule:key-duplicates
655 <<: *lf_maven_javadoc_verify
658 - lf-infra-gerrit-scm:
659 jenkins-ssh-credential: "{jenkins-ssh-credential}"
661 refspec: "$GERRIT_REFSPEC"
662 branch: "$GERRIT_BRANCH"
663 submodule-recursive: "{submodule-recursive}"
664 submodule-timeout: "{submodule-timeout}"
665 submodule-disable: "{submodule-disable}"
666 choosing-strategy: gerrit
670 server-name: "{gerrit-server-name}"
671 trigger-on: "{obj:gerrit_verify_triggers}"
673 - project-compare-type: ANT
674 project-pattern: "{project}"
676 - branch-compare-type: ANT
677 branch-pattern: "**/{branch}"
680 name: "{project-name}-maven-javadoc-verify-{stream}-{java-version}"
681 id: github-maven-javadoc-verify
683 # yamllint disable-line rule:key-duplicates
684 <<: *lf_maven_javadoc_verify
687 - lf-infra-properties:
688 build-days-to-keep: "{build-days-to-keep}"
690 url: "{github-url}/{github-org}/{project}"
693 - lf-infra-github-scm:
694 url: "{git-clone-url}{github-org}/{project}"
695 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
697 submodule-recursive: "{submodule-recursive}"
698 submodule-timeout: "{submodule-timeout}"
699 submodule-disable: "{submodule-disable}"
700 choosing-strategy: default
701 jenkins-ssh-credential: "{jenkins-ssh-credential}"
704 - github-pull-request:
705 trigger-phrase: ^(recheck|reverify)$
706 only-trigger-phrase: false
707 status-context: "Maven Javadoc Verify"
710 white-list-target-branches:
717 - lf_maven_merge: &lf_maven_merge
720 ######################
721 # Default parameters #
722 ######################
725 build-days-to-keep: 30 # 30 days in case we need to troubleshoot
729 git-url: "$GIT_URL/$PROJECT"
730 github-url: "https://github.com"
731 java-version: openjdk11
732 mvn-global-settings: global-settings
733 mvn-goals: clean deploy
735 mvn-params: "-Dmerge"
737 nexus-cut-dirs: 6 # Number of dirs in the Nexus path to remove for wget -r.
738 pre-build-script: "# pre-build script goes here"
739 post-build-script: "# post-build script goes here"
741 submodule-recursive: true
742 submodule-timeout: 10
743 submodule-disable: false
745 gerrit_merge_triggers:
746 - change-merged-event
747 - comment-added-contains-event:
748 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
750 gerrit_trigger_file_paths:
751 - compare-type: REG_EXP
754 # github_included_regions MUST match gerrit_trigger_file_paths
755 github_included_regions:
758 post_build_trigger: ""
760 #####################
761 # Job Configuration #
762 #####################
764 disabled: "{disable-job}"
768 - lf-jacoco-nojava-workaround
770 mvn-version: "{mvn-version}"
771 - lf-update-java-alternatives:
772 java-version: "{java-version}"
773 - lf-provide-maven-settings:
774 global-settings-file: "{mvn-global-settings}"
775 settings-file: "{mvn-settings}"
776 - lf-infra-create-netrc:
777 server-id: "{mvn-snapshot-id}"
779 properties-content: |
780 NEXUS_CUT_DIRS={nexus-cut-dirs}
781 NEXUS_REPO={nexus-snapshot-repo}
782 - shell: !include-raw-escape: ../shell/maven-fetch-metadata.sh
783 - shell: "{pre-build-script}"
785 mvn-goals: "{mvn-goals}"
786 - shell: "{post-build-script}"
788 - lf-provide-maven-settings-cleanup
794 - trigger-parameterized-builds: "{obj:post_build_trigger}"
797 name: "{project-name}-maven-merge-{stream}"
798 id: gerrit-maven-merge
800 # yamllint disable-line rule:key-duplicates
804 - lf-infra-gerrit-scm:
805 jenkins-ssh-credential: "{jenkins-ssh-credential}"
807 refspec: "$GERRIT_REFSPEC"
808 branch: "$GERRIT_BRANCH"
809 submodule-recursive: "{submodule-recursive}"
810 submodule-timeout: "{submodule-timeout}"
811 submodule-disable: "{submodule-disable}"
812 choosing-strategy: default
815 - timed: "{obj:cron}"
817 server-name: "{gerrit-server-name}"
818 trigger-on: "{obj:gerrit_merge_triggers}"
820 - project-compare-type: ANT
821 project-pattern: "{project}"
823 - branch-compare-type: ANT
824 branch-pattern: "**/{branch}"
825 file-paths: "{obj:gerrit_trigger_file_paths}"
828 name: "{project-name}-maven-merge-{stream}"
829 id: github-maven-merge
831 # yamllint disable-line rule:key-duplicates
835 - lf-infra-properties:
836 build-days-to-keep: "{build-days-to-keep}"
838 url: "{github-url}/{github-org}/{project}"
841 - lf-infra-github-scm:
842 url: "{git-clone-url}{github-org}/{project}"
844 branch: "refs/heads/{branch}"
845 submodule-recursive: "{submodule-recursive}"
846 submodule-timeout: "{submodule-timeout}"
847 submodule-disable: "{submodule-disable}"
848 choosing-strategy: default
849 jenkins-ssh-credential: "{jenkins-ssh-credential}"
852 - timed: "{obj:cron}"
856 - github-pull-request:
857 trigger-phrase: "^remerge$"
858 only-trigger-phrase: true
859 status-context: "Maven Merge"
864 white-list: "{obj:github_pr_allowlist}"
865 admin-list: "{obj:github_pr_admin_list}"
866 white-list-target-branches:
868 included-regions: "{obj:github_included_regions}"
870 ##########################
871 # Maven Merge for Docker #
872 ##########################
874 - lf_maven_docker_merge: &lf_maven_docker_merge
875 name: lf-maven-docker-merge
879 - lf-jacoco-nojava-workaround
881 mvn-version: "{mvn-version}"
882 - lf-infra-docker-login:
883 global-settings-file: "{mvn-global-settings}"
884 settings-file: "{mvn-settings}"
885 - lf-update-java-alternatives:
886 java-version: "{java-version}"
887 # must provide maven settings AFTER docker due to its cleanup
888 - lf-provide-maven-settings:
889 global-settings-file: "{mvn-global-settings}"
890 settings-file: "{mvn-settings}"
891 - lf-infra-create-netrc:
892 server-id: "{mvn-snapshot-id}"
894 properties-content: |
895 NEXUS_CUT_DIRS={nexus-cut-dirs}
896 NEXUS_REPO={nexus-snapshot-repo}
897 CONTAINER_PULL_REGISTRY={container-public-registry}
898 CONTAINER_PUSH_REGISTRY={container-snapshot-registry}
899 - shell: !include-raw-escape: ../shell/maven-fetch-metadata.sh
901 mvn-goals: "{mvn-goals}"
903 - lf-provide-maven-settings-cleanup
906 name: "{project-name}-maven-docker-merge-{stream}"
907 id: gerrit-maven-docker-merge
909 # yamllint disable-line rule:key-duplicates
911 # yamllint disable-line rule:key-duplicates
912 <<: *lf_maven_docker_merge
915 - lf-infra-gerrit-scm:
916 jenkins-ssh-credential: "{jenkins-ssh-credential}"
918 refspec: "$GERRIT_REFSPEC"
919 branch: "$GERRIT_BRANCH"
920 submodule-recursive: "{submodule-recursive}"
921 submodule-timeout: "{submodule-timeout}"
922 submodule-disable: "{submodule-disable}"
923 choosing-strategy: default
927 server-name: "{gerrit-server-name}"
928 trigger-on: "{obj:gerrit_merge_triggers}"
930 - project-compare-type: ANT
931 project-pattern: "{project}"
933 - branch-compare-type: ANT
934 branch-pattern: "**/{branch}"
935 file-paths: "{obj:gerrit_trigger_file_paths}"
938 name: "{project-name}-maven-docker-merge-{stream}"
939 id: github-maven-docker-merge
941 # yamllint disable-line rule:key-duplicates
943 # yamllint disable-line rule:key-duplicates
944 <<: *lf_maven_docker_merge
947 - lf-infra-properties:
948 build-days-to-keep: "{build-days-to-keep}"
950 url: "{github-url}/{github-org}/{project}"
953 - lf-infra-github-scm:
954 url: "{git-clone-url}{github-org}/{project}"
956 branch: "refs/heads/{branch}"
957 submodule-recursive: "{submodule-recursive}"
958 submodule-timeout: "{submodule-timeout}"
959 submodule-disable: "{submodule-disable}"
960 choosing-strategy: default
961 jenkins-ssh-credential: "{jenkins-ssh-credential}"
967 - github-pull-request:
968 trigger-phrase: "^remerge$"
969 only-trigger-phrase: true
970 status-context: "Maven Docker Merge"
975 white-list: "{obj:github_pr_allowlist}"
976 admin-list: "{obj:github_pr_admin_list}"
977 white-list-target-branches:
979 included-regions: "{obj:github_included_regions}"
985 - lf_maven_stage: &lf_maven_stage
988 ######################
989 # Default parameters #
990 ######################
993 build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
997 git-url: "$GIT_URL/$PROJECT"
998 github-url: "https://github.com"
999 java-version: openjdk11
1000 maven-versions-plugin: false
1001 version-properties-file: version.properties
1003 mvn-global-settings: global-settings
1004 mvn-goals: clean deploy
1008 ossrh-profile-id: ""
1011 sbom-path: "$WORKSPACE"
1012 sbom-generator: false
1013 sbom-generator-version: "v0.0.15"
1014 sign-artifacts: false
1017 submodule-recursive: true
1018 submodule-timeout: 10
1019 submodule-disable: false
1021 gerrit_release_triggers:
1022 - comment-added-contains-event:
1023 comment-contains-value: '^Patch Set\s+\d+:\s+stage-(maven-)?release\s*$'
1025 gerrit_trigger_file_paths:
1029 # github_included_regions MUST match gerrit_trigger_file_paths
1030 github_included_regions:
1033 #####################
1034 # Job Configuration #
1035 #####################
1037 disabled: "{disable-job}"
1040 - lf-infra-parameters:
1041 project: "{project}"
1044 - lf-infra-maven-parameters:
1045 mvn-opts: "{mvn-opts}"
1046 mvn-params: "{mvn-params}"
1047 mvn-version: "{mvn-version}"
1048 staging-profile-id: "{staging-profile-id}"
1050 name: MAVEN_VERSIONS_PLUGIN
1051 default: "{maven-versions-plugin}"
1052 description: Use maven-versions-plugin to update pom versions.
1054 name: ARCHIVE_ARTIFACTS
1055 default: "{archive-artifacts}"
1056 description: Artifacts to archive to the logs server.
1058 name: STAGING_PROFILE_ID
1059 default: "{staging-profile-id}"
1060 description: Nexus staging profile ID.
1062 name: SBOM_GENERATOR_VERSION
1063 default: "{sbom-generator-version}"
1064 description: SBOM generator version to download and run.
1067 default: "{sbom-path}"
1068 description: path where SBOM needs to be executed.
1071 - lf-infra-pre-build
1072 - lf-jacoco-nojava-workaround
1074 mvn-version: "{mvn-version}"
1075 - lf-update-java-alternatives:
1076 java-version: "{java-version}"
1077 - lf-provide-maven-settings:
1078 global-settings-file: "{mvn-global-settings}"
1079 settings-file: "{mvn-settings}"
1080 - lf-maven-versions-plugin:
1081 maven-versions-plugin: "{maven-versions-plugin}"
1082 version-properties-file: "{version-properties-file}"
1083 mvn-version: "{mvn-version}"
1084 mvn-pom: "{mvn-pom}"
1085 mvn-settings: "{mvn-settings}"
1086 - shell: !include-raw-escape: ../shell/maven-patch-release.sh
1088 mvn-goals: "{mvn-goals}"
1089 # With SBOM Generator
1091 condition-kind: boolean-expression
1092 condition-expression: "{sbom-generator}"
1094 - shell: echo 'Running SBOM Generator'
1095 - lf-infra-maven-sbom-generator:
1096 sbom-flags: "{sbom-flags}"
1097 - lf-sigul-sign-dir:
1098 sign-artifacts: "{sign-artifacts}"
1099 sign-dir: "$WORKSPACE/m2repo"
1100 sign-mode: "{sign-mode}"
1102 mvn-global-settings: "{mvn-global-settings}"
1103 mvn-settings: "{mvn-settings}"
1104 mvn-staging-id: "{mvn-staging-id}"
1106 mvn-central: "{mvn-central}"
1107 mvn-global-settings: "{mvn-global-settings}"
1108 mvn-settings: "{mvn-settings}"
1109 ossrh-profile-id: "{ossrh-profile-id}"
1110 - lf-provide-maven-settings-cleanup
1113 name: "{project-name}-maven-stage-{stream}"
1114 id: gerrit-maven-stage
1115 <<: *lf_maven_common
1116 # yamllint disable-line rule:key-duplicates
1120 - lf-infra-gerrit-scm:
1121 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1122 git-url: "{git-url}"
1123 refspec: "$GERRIT_REFSPEC"
1124 branch: "$GERRIT_BRANCH"
1125 submodule-recursive: "{submodule-recursive}"
1126 submodule-timeout: "{submodule-timeout}"
1127 submodule-disable: "{submodule-disable}"
1128 choosing-strategy: default
1131 - timed: "{obj:cron}"
1133 server-name: "{gerrit-server-name}"
1134 trigger-on: "{obj:gerrit_release_triggers}"
1136 - project-compare-type: ANT
1137 project-pattern: "{project}"
1139 - branch-compare-type: ANT
1140 branch-pattern: "**/{branch}"
1141 file-paths: "{obj:gerrit_trigger_file_paths}"
1144 name: "{project-name}-maven-stage-{stream}"
1145 id: github-maven-stage
1146 <<: *lf_maven_common
1147 # yamllint disable-line rule:key-duplicates
1151 - lf-infra-properties:
1152 build-days-to-keep: "{build-days-to-keep}"
1154 url: "{github-url}/{github-org}/{project}"
1157 - lf-infra-github-scm:
1158 url: "{git-clone-url}{github-org}/{project}"
1159 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1161 submodule-recursive: "{submodule-recursive}"
1162 submodule-timeout: "{submodule-timeout}"
1163 submodule-disable: "{submodule-disable}"
1164 choosing-strategy: default
1165 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1168 - timed: "{obj:cron}"
1169 - github-pull-request:
1170 trigger-phrase: "^stage-(maven-)?release$"
1171 only-trigger-phrase: true
1172 status-context: "Maven Release"
1175 white-list-target-branches:
1177 included-regions: "{obj:github_included_regions}"
1179 ##########################
1180 # Maven Stage for Docker #
1181 ##########################
1183 - lf_maven_docker_stage: &lf_maven_docker_stage
1184 name: lf-maven-docker-stage
1187 - lf-infra-pre-build
1188 - lf-jacoco-nojava-workaround
1190 mvn-version: "{mvn-version}"
1191 - lf-update-java-alternatives:
1192 java-version: "{java-version}"
1193 - lf-infra-docker-login:
1194 global-settings-file: "{mvn-global-settings}"
1195 settings-file: "{mvn-settings}"
1196 # must provide maven settings AFTER docker-login due to its cleanup
1197 - lf-provide-maven-settings:
1198 global-settings-file: "{mvn-global-settings}"
1199 settings-file: "{mvn-settings}"
1200 - lf-maven-versions-plugin:
1201 maven-versions-plugin: "{maven-versions-plugin}"
1202 version-properties-file: "{version-properties-file}"
1203 mvn-version: "{mvn-version}"
1204 mvn-pom: "{mvn-pom}"
1205 mvn-settings: "{mvn-settings}"
1206 - shell: !include-raw-escape: ../shell/maven-patch-release.sh
1208 properties-content: |
1209 CONTAINER_PULL_REGISTRY={container-public-registry}
1210 CONTAINER_PUSH_REGISTRY={container-staging-registry}
1212 mvn-goals: "{mvn-goals}"
1213 - lf-sigul-sign-dir:
1214 sign-artifacts: "{sign-artifacts}"
1215 sign-dir: "$WORKSPACE/m2repo"
1216 sign-mode: "{sign-mode}"
1218 # NO lf-maven-central
1219 - lf-provide-maven-settings-cleanup
1221 gerrit_release_docker_triggers:
1222 - comment-added-contains-event:
1223 comment-contains-value: '^Patch Set\s+\d+:\s+stage-(docker-)?release\s*$'
1226 name: "{project-name}-maven-docker-stage-{stream}"
1227 id: gerrit-maven-docker-stage
1228 <<: *lf_maven_common
1229 # yamllint disable-line rule:key-duplicates
1231 # yamllint disable-line rule:key-duplicates
1232 <<: *lf_maven_docker_stage
1235 - lf-infra-gerrit-scm:
1236 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1237 git-url: "{git-url}"
1238 refspec: "$GERRIT_REFSPEC"
1239 branch: "$GERRIT_BRANCH"
1240 submodule-recursive: "{submodule-recursive}"
1241 submodule-timeout: "{submodule-timeout}"
1242 submodule-disable: "{submodule-disable}"
1243 choosing-strategy: default
1246 - timed: "{obj:cron}"
1248 server-name: "{gerrit-server-name}"
1249 trigger-on: "{obj:gerrit_release_docker_triggers}"
1251 - project-compare-type: ANT
1252 project-pattern: "{project}"
1254 - branch-compare-type: ANT
1255 branch-pattern: "**/{branch}"
1256 file-paths: "{obj:gerrit_trigger_file_paths}"
1259 name: "{project-name}-maven-docker-stage-{stream}"
1260 id: github-maven-docker-stage
1261 <<: *lf_maven_common
1262 # yamllint disable-line rule:key-duplicates
1264 # yamllint disable-line rule:key-duplicates
1265 <<: *lf_maven_docker_stage
1268 - lf-infra-properties:
1269 build-days-to-keep: "{build-days-to-keep}"
1271 url: "{github-url}/{github-org}/{project}"
1274 - lf-infra-github-scm:
1275 url: "{git-clone-url}{github-org}/{project}"
1276 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1278 submodule-recursive: "{submodule-recursive}"
1279 submodule-timeout: "{submodule-timeout}"
1280 submodule-disable: "{submodule-disable}"
1281 choosing-strategy: default
1282 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1285 - timed: "{obj:cron}"
1286 - github-pull-request:
1287 trigger-phrase: "^stage-(docker-)?release$"
1288 only-trigger-phrase: true
1289 status-context: "Maven Release"
1292 white-list-target-branches:
1294 included-regions: "{obj:github_included_regions}"
1300 - lf_maven_sonar: &lf_maven_sonar
1301 name: lf-maven-sonar
1303 ######################
1304 # Default parameters #
1305 ######################
1307 branch: master # Sonar should always be run on master branch
1308 build-days-to-keep: 7
1310 cron: "H H * * 6" # run weekly
1312 git-url: "$GIT_URL/$PROJECT"
1313 github-url: "https://github.com"
1314 java-version: openjdk11
1316 mvn-global-settings: global-settings
1317 mvn-goals: clean install
1321 sonar-mvn-goal: "sonar:sonar"
1323 sonarcloud-project-key: ""
1324 sonarcloud-project-organization: ""
1325 sonarcloud-api-token-cred-id: sonarcloud-api-token
1326 sonarcloud-qualitygate-wait: false
1327 # SonarCloud scan using jdk8 will become deprecated by Oct, 2020
1328 # Projects not compatible with jdk11 can set java-version to something else
1329 sonarcloud-java-version: openjdk11
1331 submodule-recursive: true
1332 submodule-timeout: 10
1333 submodule-disable: false
1334 scan-dev-branch: false
1336 gerrit_sonar_triggers:
1337 - comment-added-contains-event:
1338 comment-contains-value: '^Patch Set\s+\d+:\s+run-sonar\s*$'
1340 #####################
1341 # Job Configuration #
1342 #####################
1344 disabled: "{disable-job}"
1347 - lf-infra-parameters:
1348 project: "{project}"
1351 - lf-infra-maven-parameters:
1352 mvn-opts: "{mvn-opts}"
1353 mvn-params: "{mvn-params}"
1354 mvn-version: "{mvn-version}"
1356 name: ARCHIVE_ARTIFACTS
1357 default: "{archive-artifacts}"
1358 description: Artifacts to archive to the logs server.
1361 default: "{java-opts}"
1363 Java options. Example: -Xmx1024m
1365 name: SONAR_MAVEN_GOAL
1366 default: "{sonar-mvn-goal}"
1368 Maven goals to pass to the Sonar call. Typically sonar:sonar
1369 however to use a specific version of the sonar-maven-plugin we
1370 can call "org.codehaus.mojo:sonar-maven-plugin:3.3.0.603:sonar".
1373 - credentials-binding:
1375 credential-id: '{sonarcloud-api-token-cred-id}'
1379 - timed: "{obj:cron}"
1381 server-name: "{gerrit-server-name}"
1382 trigger-on: "{obj:gerrit_sonar_triggers}"
1384 - project-compare-type: "ANT"
1385 project-pattern: "{project}"
1387 - branch-compare-type: "ANT"
1388 branch-pattern: "**/master"
1400 - mvn_sonar_builders: &mvn_sonar_builders
1401 name: mvn-sonar-builders
1403 - lf-infra-pre-build
1406 condition-kind: boolean-expression
1407 condition-expression: "{sonarcloud}"
1409 - shell: echo 'Using SonarCloud'
1410 - lf-infra-maven-sonarcloud:
1411 java-version: "{java-version}"
1412 mvn-goals: "{mvn-goals}"
1413 mvn-settings: "{mvn-settings}"
1414 mvn-version: "{mvn-version}"
1415 sonarcloud-project-key: "{sonarcloud-project-key}"
1416 sonarcloud-project-organization: "{sonarcloud-project-organization}"
1417 sonarcloud-java-version: "{sonarcloud-java-version}"
1418 sonarcloud-qualitygate-wait: "{sonarcloud-qualitygate-wait}"
1419 scan-dev-branch: "{scan-dev-branch}"
1424 condition-kind: boolean-expression
1425 condition-expression: "{sonarcloud}"
1427 - shell: echo 'Using SonarQube'
1428 - lf-infra-maven-sonar:
1429 java-version: "{java-version}"
1430 mvn-goals: "{mvn-goals}"
1431 mvn-settings: "{mvn-settings}"
1432 mvn-version: "{mvn-version}"
1434 - mvn_sonar_builders_prescan_script: &mvn_sonar_builders_prescan_script
1435 name: mvn-sonar-builders-prescan-script
1437 - shell: "{sonar-prescan-script}"
1438 - lf-infra-pre-build
1441 condition-kind: boolean-expression
1442 condition-expression: "{sonarcloud}"
1444 - shell: echo 'Using SonarCloud'
1445 - lf-infra-maven-sonarcloud:
1446 java-version: "{java-version}"
1447 mvn-goals: "{mvn-goals}"
1448 mvn-settings: "{mvn-settings}"
1449 mvn-version: "{mvn-version}"
1450 sonarcloud-project-key: "{sonarcloud-project-key}"
1451 sonarcloud-project-organization: "{sonarcloud-project-organization}"
1452 sonarcloud-java-version: "{sonarcloud-java-version}"
1453 sonarcloud-qualitygate-wait: "{sonarcloud-qualitygate-wait}"
1454 scan-dev-branch: "{scan-dev-branch}"
1459 condition-kind: boolean-expression
1460 condition-expression: "{sonarcloud}"
1462 - shell: echo 'Using SonarQube'
1463 - lf-infra-maven-sonar:
1464 java-version: "{java-version}"
1465 mvn-goals: "{mvn-goals}"
1466 mvn-settings: "{mvn-settings}"
1467 mvn-version: "{mvn-version}"
1470 name: lf-infra-maven-sbom-generator
1471 # Run Maven goals and trigger SPDX SBOM Generator tool
1474 properties-content: |
1475 SBOM_FLAGS={sbom-flags}
1476 - shell: !include-raw-escape:
1477 - ../shell/sbom-generator.sh
1480 name: lf-infra-maven-sonar
1481 # Run a Sonar build with Maven
1484 mvn-version: "{mvn-version}"
1485 - lf-update-java-alternatives:
1486 java-version: "{java-version}"
1488 # Switch this to the sonar wrapper when JJB 2.0 is available
1489 properties-content: |
1490 SONAR_HOST_URL=$SONAR_URL
1491 MAVEN_GOALS={mvn-goals}
1492 - lf-provide-maven-settings:
1493 global-settings-file: global-settings
1494 settings-file: "{mvn-settings}"
1495 - shell: !include-raw-escape:
1496 - ../shell/common-variables.sh
1497 - ../shell/maven-sonar.sh
1498 - lf-provide-maven-settings-cleanup
1501 name: lf-infra-maven-sonarcloud
1502 # Run a Sonar build with Maven
1505 mvn-version: "{mvn-version}"
1506 - lf-update-java-alternatives:
1507 java-version: "{java-version}"
1509 # Switch this to the sonar wrapper when JJB 2.0 is available
1510 properties-content: |
1511 SONAR_HOST_URL=https://sonarcloud.io
1512 PROJECT_KEY={sonarcloud-project-key}
1513 PROJECT_ORGANIZATION={sonarcloud-project-organization}
1514 MAVEN_GOALS={mvn-goals}
1515 SONARCLOUD_JAVA_VERSION={sonarcloud-java-version}
1516 SCAN_DEV_BRANCH={scan-dev-branch}
1517 SONARCLOUD_QUALITYGATE_WAIT={sonarcloud-qualitygate-wait}
1518 - lf-provide-maven-settings:
1519 global-settings-file: global-settings
1520 settings-file: "{mvn-settings}"
1521 - shell: !include-raw-escape:
1522 - ../shell/common-variables.sh
1523 - ../shell/maven-sonar.sh
1524 - lf-provide-maven-settings-cleanup
1527 name: "{project-name}-sonar"
1528 id: gerrit-maven-sonar
1529 <<: *lf_maven_common
1530 # yamllint disable-line rule:key-duplicates
1532 <<: *mvn_sonar_builders
1535 - lf-infra-gerrit-scm:
1536 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1537 git-url: "{git-url}"
1538 refspec: $GERRIT_REFSPEC
1539 branch: $GERRIT_BRANCH
1540 submodule-recursive: "{submodule-recursive}"
1541 submodule-timeout: "{submodule-timeout}"
1542 submodule-disable: "{submodule-disable}"
1543 choosing-strategy: default
1546 name: "{project-name}-sonar-verify"
1547 id: gerrit-maven-sonar-verify
1548 <<: *lf_maven_common
1549 # yamllint disable-line rule:key-duplicates
1551 <<: *mvn_sonar_builders
1554 scan-dev-branch: true
1555 sonarcloud-qualitygate-wait: false
1557 gerrit_sonar_triggers:
1558 - patchset-created-event:
1559 exclude-drafts: true
1560 exclude-trivial-rebase: false
1561 exclude-no-code-change: false
1562 - draft-published-event
1563 - comment-added-contains-event:
1564 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1566 gerrit_trigger_file_paths:
1567 - compare-type: REG_EXP
1572 server-name: "{gerrit-server-name}"
1573 trigger-on: "{obj:gerrit_sonar_triggers}"
1575 - project-compare-type: "ANT"
1576 project-pattern: "{project}"
1578 - branch-compare-type: "ANT"
1579 branch-pattern: "**/{branch}"
1580 file-paths: "{obj:gerrit_trigger_file_paths}"
1583 - lf-infra-gerrit-scm:
1584 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1585 git-url: "{git-url}"
1586 refspec: $GERRIT_REFSPEC
1587 branch: $GERRIT_BRANCH
1588 submodule-recursive: "{submodule-recursive}"
1589 submodule-timeout: "{submodule-timeout}"
1590 submodule-disable: "{submodule-disable}"
1591 choosing-strategy: gerrit
1594 name: "{project-name}-sonar-prescan-script"
1595 id: gerrit-maven-sonar-prescan-script
1596 <<: *lf_maven_common
1597 # yamllint disable-line rule:key-duplicates
1599 <<: *mvn_sonar_builders_prescan_script
1602 - lf-infra-gerrit-scm:
1603 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1604 git-url: "{git-url}"
1605 refspec: $GERRIT_REFSPEC
1606 branch: $GERRIT_BRANCH
1607 submodule-recursive: "{submodule-recursive}"
1608 submodule-timeout: "{submodule-timeout}"
1609 submodule-disable: "{submodule-disable}"
1610 choosing-strategy: default
1613 name: "{project-name}-sonar"
1614 id: github-maven-sonar
1615 <<: *lf_maven_common
1616 # yamllint disable-line rule:key-duplicates
1620 - lf-infra-properties:
1621 build-days-to-keep: "{build-days-to-keep}"
1623 url: "{github-url}/{github-org}/{project}"
1626 - lf-infra-github-scm:
1627 url: "{git-clone-url}{github-org}/{project}"
1628 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1630 submodule-recursive: "{submodule-recursive}"
1631 submodule-timeout: "{submodule-timeout}"
1632 submodule-disable: "{submodule-disable}"
1633 choosing-strategy: default
1634 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1637 - timed: "{obj:cron}"
1638 - github-pull-request:
1639 trigger-phrase: "^run-sonar$"
1640 only-trigger-phrase: true
1641 status-context: "Maven Sonar"
1646 white-list: "{obj:github_pr_allowlist}"
1647 admin-list: "{obj:github_pr_admin_list}"
1648 white-list-target-branches:
1652 name: "{project-name}-sonar-prescan-script"
1653 id: github-maven-sonar-prescan-script
1654 <<: *lf_maven_common
1655 # yamllint disable-line rule:key-duplicates
1657 <<: *mvn_sonar_builders_prescan_script
1660 - lf-infra-properties:
1661 build-days-to-keep: "{build-days-to-keep}"
1663 url: "{github-url}/{github-org}/{project}"
1666 - lf-infra-github-scm:
1667 url: "{git-clone-url}{github-org}/{project}"
1668 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1670 submodule-recursive: "{submodule-recursive}"
1671 submodule-timeout: "{submodule-timeout}"
1672 submodule-disable: "{submodule-disable}"
1673 choosing-strategy: default
1674 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1677 - timed: "{obj:cron}"
1678 - github-pull-request:
1679 trigger-phrase: "^run-sonar$"
1680 only-trigger-phrase: true
1681 status-context: "Maven Sonar"
1686 white-list: "{obj:github_pr_allowlist}"
1687 admin-list: "{obj:github_pr_admin_list}"
1688 white-list-target-branches:
1695 - lf_maven_verify: &lf_maven_verify
1696 name: lf-maven-verify
1698 ######################
1699 # Default parameters #
1700 ######################
1703 build-days-to-keep: 7
1706 git-url: "$GIT_URL/$PROJECT"
1707 github-url: "https://github.com"
1708 java-version: openjdk11
1709 mvn-global-settings: global-settings
1710 mvn-goals: clean deploy
1712 mvn-params: "-Dstream=$STREAM -Dmaven.source.skip=true"
1714 pre-build-script: "# pre-build script goes here"
1715 post-build-script: "# post-build script goes here"
1717 submodule-recursive: true
1718 submodule-timeout: 10
1719 submodule-disable: false
1721 gerrit_verify_triggers:
1722 - patchset-created-event:
1723 exclude-drafts: true
1724 exclude-trivial-rebase: false
1725 exclude-no-code-change: false
1726 - draft-published-event
1727 - comment-added-contains-event:
1728 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1730 gerrit_trigger_file_paths:
1731 - compare-type: REG_EXP
1734 # github_included_regions MUST match gerrit_trigger_file_paths
1735 github_included_regions:
1738 #####################
1739 # Job Configuration #
1740 #####################
1743 disabled: "{disable-job}"
1746 - lf-infra-pre-build
1747 - lf-jacoco-nojava-workaround
1749 mvn-version: "{mvn-version}"
1750 - lf-update-java-alternatives:
1751 java-version: "{java-version}"
1752 - lf-provide-maven-settings:
1753 global-settings-file: "{mvn-global-settings}"
1754 settings-file: "{mvn-settings}"
1755 - shell: "{pre-build-script}"
1757 mvn-goals: "{mvn-goals}"
1758 - shell: "{post-build-script}"
1759 - lf-provide-maven-settings-cleanup
1767 name: "{project-name}-maven-verify-{stream}-{mvn-version}-{java-version}"
1768 id: gerrit-maven-verify
1769 <<: *lf_maven_common
1770 # yamllint disable-line rule:key-duplicates
1771 <<: *lf_maven_verify
1774 - lf-infra-gerrit-scm:
1775 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1776 git-url: "{git-url}"
1777 refspec: "$GERRIT_REFSPEC"
1778 branch: "$GERRIT_BRANCH"
1779 submodule-recursive: "{submodule-recursive}"
1780 submodule-timeout: "{submodule-timeout}"
1781 submodule-disable: "{submodule-disable}"
1782 choosing-strategy: gerrit
1786 server-name: "{gerrit-server-name}"
1787 trigger-on: "{obj:gerrit_verify_triggers}"
1789 - project-compare-type: ANT
1790 project-pattern: "{project}"
1792 - branch-compare-type: ANT
1793 branch-pattern: "**/{branch}"
1794 file-paths: "{obj:gerrit_trigger_file_paths}"
1797 name: "{project-name}-maven-verify-{stream}-{mvn-version}-{java-version}"
1798 id: github-maven-verify
1799 <<: *lf_maven_common
1800 # yamllint disable-line rule:key-duplicates
1801 <<: *lf_maven_verify
1804 - lf-infra-properties:
1805 build-days-to-keep: "{build-days-to-keep}"
1807 url: "{github-url}/{github-org}/{project}"
1810 - lf-infra-github-scm:
1811 url: "{git-clone-url}{github-org}/{project}"
1812 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1814 submodule-recursive: "{submodule-recursive}"
1815 submodule-timeout: "{submodule-timeout}"
1816 submodule-disable: "{submodule-disable}"
1817 choosing-strategy: default
1818 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1821 - github-pull-request:
1822 trigger-phrase: "^(recheck|reverify)$"
1823 only-trigger-phrase: false
1824 status-context: "Maven Verify {mvn-version}-{java-version}"
1827 white-list-target-branches:
1829 included-regions: "{obj:github_included_regions}"
1831 ###########################
1832 # Maven Verify for Docker #
1833 ###########################
1835 - lf_maven_docker_verify: &lf_maven_docker_verify
1836 name: lf-maven-docker-verify
1838 # image push not allowed during verification
1839 mvn-goals: clean install
1842 - lf-infra-pre-build
1843 - lf-jacoco-nojava-workaround
1845 mvn-version: "{mvn-version}"
1846 - lf-update-java-alternatives:
1847 java-version: "{java-version}"
1848 - lf-infra-docker-login:
1849 global-settings-file: "{mvn-global-settings}"
1850 settings-file: "{mvn-settings}"
1851 # must provide maven settings AFTER docker due to its cleanup
1852 - lf-provide-maven-settings:
1853 global-settings-file: "{mvn-global-settings}"
1854 settings-file: "{mvn-settings}"
1856 properties-content: |
1857 CONTAINER_PULL_REGISTRY={container-public-registry}
1859 mvn-goals: "{mvn-goals}"
1860 - lf-provide-maven-settings-cleanup
1863 name: "{project-name}-maven-docker-verify-{stream}-{mvn-version}-{java-version}"
1864 id: gerrit-maven-docker-verify
1865 <<: *lf_maven_common
1866 # yamllint disable-line rule:key-duplicates
1867 <<: *lf_maven_verify
1868 # yamllint disable-line rule:key-duplicates
1869 <<: *lf_maven_docker_verify
1872 - lf-infra-gerrit-scm:
1873 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1874 git-url: "{git-url}"
1875 refspec: "$GERRIT_REFSPEC"
1876 branch: "$GERRIT_BRANCH"
1877 submodule-recursive: "{submodule-recursive}"
1878 submodule-timeout: "{submodule-timeout}"
1879 submodule-disable: "{submodule-disable}"
1880 choosing-strategy: gerrit
1884 server-name: "{gerrit-server-name}"
1885 trigger-on: "{obj:gerrit_verify_triggers}"
1887 - project-compare-type: ANT
1888 project-pattern: "{project}"
1890 - branch-compare-type: ANT
1891 branch-pattern: "**/{branch}"
1892 file-paths: "{obj:gerrit_trigger_file_paths}"
1895 name: "{project-name}-maven-docker-verify-{stream}-{mvn-version}-{java-version}"
1896 id: github-maven-docker-verify
1897 <<: *lf_maven_common
1898 # yamllint disable-line rule:key-duplicates
1899 <<: *lf_maven_verify
1900 # yamllint disable-line rule:key-duplicates
1901 <<: *lf_maven_docker_verify
1904 - lf-infra-properties:
1905 build-days-to-keep: "{build-days-to-keep}"
1907 url: "{github-url}/{github-org}/{project}"
1910 - lf-infra-github-scm:
1911 url: "{git-clone-url}{github-org}/{project}"
1912 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1914 submodule-recursive: "{submodule-recursive}"
1915 submodule-timeout: "{submodule-timeout}"
1916 submodule-disable: "{submodule-disable}"
1917 choosing-strategy: default
1918 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1921 - github-pull-request:
1922 trigger-phrase: "^(recheck|reverify)$"
1923 only-trigger-phrase: false
1924 status-context: "Maven Docker Verify {mvn-version}-{java-version}"
1927 white-list-target-branches:
1929 included-regions: "{obj:github_included_regions}"
1931 #############################
1932 # Maven Verify Dependencies #
1933 #############################
1935 - lf_maven_verify_dependencies: &lf_maven_verify_dependencies
1936 name: lf-maven-verify-dependencies
1938 ######################
1939 # Default parameters #
1940 ######################
1943 build-days-to-keep: 7
1946 git-url: "$GIT_URL/$PROJECT"
1947 github-url: "https://github.com"
1948 java-version: openjdk11
1949 mvn-global-settings: global-settings
1950 mvn-goals: clean deploy
1952 mvn-params: "-Dstream=$STREAM"
1955 submodule-recursive: true
1956 submodule-timeout: 10
1957 submodule-disable: false
1959 gerrit_verify_triggers:
1960 - comment-added-contains-event:
1961 comment-contains-value: "recheck: [0-9 ]+"
1962 gerrit_trigger_file_paths:
1966 #####################
1967 # Job Configuration #
1968 #####################
1971 disabled: "{disable-job}"
1974 - lf-infra-pre-build
1975 - lf-jacoco-nojava-workaround
1977 mvn-version: "{mvn-version}"
1978 - lf-update-java-alternatives:
1979 java-version: "{java-version}"
1980 - lf-provide-maven-settings:
1981 global-settings-file: "{mvn-global-settings}"
1982 settings-file: "{mvn-settings}"
1983 - lf-fetch-dependent-patches
1984 - shell: !include-raw-escape:
1985 - ../shell/common-variables.sh
1986 - ../shell/maven-build-deps.sh
1988 mvn-goals: "{mvn-goals}"
1989 - lf-provide-maven-settings-cleanup
1997 name: "{project-name}-maven-verify-deps-{stream}-{mvn-version}-{java-version}"
1998 id: gerrit-maven-verify-dependencies
1999 <<: *lf_maven_common
2000 # yamllint disable-line rule:key-duplicates
2001 <<: *lf_maven_verify_dependencies
2004 - lf-infra-gerrit-scm:
2005 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2006 git-url: "{git-url}"
2007 refspec: "$GERRIT_REFSPEC"
2008 branch: "$GERRIT_BRANCH"
2009 submodule-recursive: "{submodule-recursive}"
2010 submodule-timeout: "{submodule-timeout}"
2011 submodule-disable: "{submodule-disable}"
2012 choosing-strategy: gerrit
2016 server-name: "{gerrit-server-name}"
2017 trigger-on: "{obj:gerrit_verify_triggers}"
2019 - project-compare-type: ANT
2020 project-pattern: "{project}"
2022 - branch-compare-type: ANT
2023 branch-pattern: "**/{branch}"
2024 file-paths: "{obj:gerrit_trigger_file_paths}"
2025 comment-text-parameter-mode: PLAIN