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
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: "**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**"
737 java-version: openjdk11
738 mvn-global-settings: global-settings
739 mvn-goals: clean deploy
741 mvn-params: "-Dmerge"
743 nexus-cut-dirs: 6 # Number of dirs in the Nexus path to remove for wget -r.
744 pre-build-script: "# pre-build script goes here"
745 post-build-script: "# post-build script goes here"
747 submodule-recursive: true
748 submodule-timeout: 10
749 submodule-disable: false
751 gerrit_merge_triggers:
752 - change-merged-event
753 - comment-added-contains-event:
754 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
756 gerrit_trigger_file_paths:
757 - compare-type: REG_EXP
760 # github_included_regions MUST match gerrit_trigger_file_paths
761 github_included_regions:
764 post_build_trigger: ""
766 #####################
767 # Job Configuration #
768 #####################
770 disabled: "{disable-job}"
774 - lf-jacoco-nojava-workaround
776 mvn-version: "{mvn-version}"
777 - lf-update-java-alternatives:
778 java-version: "{java-version}"
779 - lf-provide-maven-settings:
780 global-settings-file: "{mvn-global-settings}"
781 settings-file: "{mvn-settings}"
782 - lf-infra-create-netrc:
783 server-id: "{mvn-snapshot-id}"
785 properties-content: |
786 NEXUS_CUT_DIRS={nexus-cut-dirs}
787 NEXUS_REPO={nexus-snapshot-repo}
788 - shell: !include-raw-escape: ../shell/maven-fetch-metadata.sh
789 - shell: "{pre-build-script}"
791 mvn-goals: "{mvn-goals}"
792 - shell: "{post-build-script}"
794 - lf-provide-maven-settings-cleanup
799 exclude-pattern: "{jacoco-exclude-pattern}"
801 - trigger-parameterized-builds: "{obj:post_build_trigger}"
804 name: "{project-name}-maven-merge-{stream}"
805 id: gerrit-maven-merge
807 # yamllint disable-line rule:key-duplicates
811 - lf-infra-gerrit-scm:
812 jenkins-ssh-credential: "{jenkins-ssh-credential}"
814 refspec: "$GERRIT_REFSPEC"
815 branch: "$GERRIT_BRANCH"
816 submodule-recursive: "{submodule-recursive}"
817 submodule-timeout: "{submodule-timeout}"
818 submodule-disable: "{submodule-disable}"
819 choosing-strategy: default
822 - timed: "{obj:cron}"
824 server-name: "{gerrit-server-name}"
825 trigger-on: "{obj:gerrit_merge_triggers}"
827 - project-compare-type: ANT
828 project-pattern: "{project}"
830 - branch-compare-type: ANT
831 branch-pattern: "**/{branch}"
832 file-paths: "{obj:gerrit_trigger_file_paths}"
835 name: "{project-name}-maven-merge-{stream}"
836 id: github-maven-merge
838 # yamllint disable-line rule:key-duplicates
842 - lf-infra-properties:
843 build-days-to-keep: "{build-days-to-keep}"
845 url: "{github-url}/{github-org}/{project}"
848 - lf-infra-github-scm:
849 url: "{git-clone-url}{github-org}/{project}"
851 branch: "refs/heads/{branch}"
852 submodule-recursive: "{submodule-recursive}"
853 submodule-timeout: "{submodule-timeout}"
854 submodule-disable: "{submodule-disable}"
855 choosing-strategy: default
856 jenkins-ssh-credential: "{jenkins-ssh-credential}"
859 - timed: "{obj:cron}"
863 - github-pull-request:
864 trigger-phrase: "^remerge$"
865 only-trigger-phrase: true
866 status-context: "Maven Merge"
871 white-list: "{obj:github_pr_allowlist}"
872 admin-list: "{obj:github_pr_admin_list}"
873 white-list-target-branches:
875 included-regions: "{obj:github_included_regions}"
877 ##########################
878 # Maven Merge for Docker #
879 ##########################
881 - _lf_maven_docker_merge: &lf_maven_docker_merge
882 name: lf-maven-docker-merge
886 - lf-jacoco-nojava-workaround
888 mvn-version: "{mvn-version}"
889 - lf-infra-docker-login:
890 global-settings-file: "{mvn-global-settings}"
891 settings-file: "{mvn-settings}"
892 - lf-update-java-alternatives:
893 java-version: "{java-version}"
894 # must provide maven settings AFTER docker due to its cleanup
895 - lf-provide-maven-settings:
896 global-settings-file: "{mvn-global-settings}"
897 settings-file: "{mvn-settings}"
898 - lf-infra-create-netrc:
899 server-id: "{mvn-snapshot-id}"
901 properties-content: |
902 NEXUS_CUT_DIRS={nexus-cut-dirs}
903 NEXUS_REPO={nexus-snapshot-repo}
904 CONTAINER_PULL_REGISTRY={container-public-registry}
905 CONTAINER_PUSH_REGISTRY={container-snapshot-registry}
906 - shell: !include-raw-escape: ../shell/maven-fetch-metadata.sh
908 mvn-goals: "{mvn-goals}"
910 - lf-provide-maven-settings-cleanup
913 name: "{project-name}-maven-docker-merge-{stream}"
914 id: gerrit-maven-docker-merge
916 # yamllint disable-line rule:key-duplicates
918 # yamllint disable-line rule:key-duplicates
919 <<: *lf_maven_docker_merge
922 - lf-infra-gerrit-scm:
923 jenkins-ssh-credential: "{jenkins-ssh-credential}"
925 refspec: "$GERRIT_REFSPEC"
926 branch: "$GERRIT_BRANCH"
927 submodule-recursive: "{submodule-recursive}"
928 submodule-timeout: "{submodule-timeout}"
929 submodule-disable: "{submodule-disable}"
930 choosing-strategy: default
934 server-name: "{gerrit-server-name}"
935 trigger-on: "{obj:gerrit_merge_triggers}"
937 - project-compare-type: ANT
938 project-pattern: "{project}"
940 - branch-compare-type: ANT
941 branch-pattern: "**/{branch}"
942 file-paths: "{obj:gerrit_trigger_file_paths}"
945 name: "{project-name}-maven-docker-merge-{stream}"
946 id: github-maven-docker-merge
948 # yamllint disable-line rule:key-duplicates
950 # yamllint disable-line rule:key-duplicates
951 <<: *lf_maven_docker_merge
954 - lf-infra-properties:
955 build-days-to-keep: "{build-days-to-keep}"
957 url: "{github-url}/{github-org}/{project}"
960 - lf-infra-github-scm:
961 url: "{git-clone-url}{github-org}/{project}"
963 branch: "refs/heads/{branch}"
964 submodule-recursive: "{submodule-recursive}"
965 submodule-timeout: "{submodule-timeout}"
966 submodule-disable: "{submodule-disable}"
967 choosing-strategy: default
968 jenkins-ssh-credential: "{jenkins-ssh-credential}"
974 - github-pull-request:
975 trigger-phrase: "^remerge$"
976 only-trigger-phrase: true
977 status-context: "Maven Docker Merge"
982 white-list: "{obj:github_pr_allowlist}"
983 admin-list: "{obj:github_pr_admin_list}"
984 white-list-target-branches:
986 included-regions: "{obj:github_included_regions}"
992 - _lf_maven_stage: &lf_maven_stage
995 ######################
996 # Default parameters #
997 ######################
1000 build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
1004 git-url: "$GIT_URL/$PROJECT"
1005 github-url: "https://github.com"
1006 java-version: openjdk11
1007 maven-versions-plugin: false
1008 version-properties-file: version.properties
1010 mvn-global-settings: global-settings
1011 mvn-goals: clean deploy
1015 ossrh-profile-id: ""
1018 sbom-path: "$WORKSPACE"
1019 sbom-generator: false
1020 sbom-generator-version: "v0.0.15"
1021 sign-artifacts: false
1024 submodule-recursive: true
1025 submodule-timeout: 10
1026 submodule-disable: false
1028 gerrit_release_triggers:
1029 - comment-added-contains-event:
1030 comment-contains-value: '^Patch Set\s+\d+:\s+stage-(maven-)?release\s*$'
1032 gerrit_trigger_file_paths:
1036 # github_included_regions MUST match gerrit_trigger_file_paths
1037 github_included_regions:
1040 #####################
1041 # Job Configuration #
1042 #####################
1044 disabled: "{disable-job}"
1047 - lf-infra-parameters:
1048 project: "{project}"
1051 - lf-infra-maven-parameters:
1052 mvn-opts: "{mvn-opts}"
1053 mvn-params: "{mvn-params}"
1054 mvn-version: "{mvn-version}"
1055 staging-profile-id: "{staging-profile-id}"
1057 name: MAVEN_VERSIONS_PLUGIN
1058 default: "{maven-versions-plugin}"
1059 description: Use maven-versions-plugin to update pom versions.
1061 name: ARCHIVE_ARTIFACTS
1062 default: "{archive-artifacts}"
1063 description: Artifacts to archive to the logs server.
1065 name: STAGING_PROFILE_ID
1066 default: "{staging-profile-id}"
1067 description: Nexus staging profile ID.
1069 name: SBOM_GENERATOR_VERSION
1070 default: "{sbom-generator-version}"
1071 description: SBOM generator version to download and run.
1074 default: "{sbom-path}"
1075 description: path where SBOM needs to be executed.
1078 - lf-infra-pre-build
1079 - lf-jacoco-nojava-workaround
1081 mvn-version: "{mvn-version}"
1082 - lf-update-java-alternatives:
1083 java-version: "{java-version}"
1084 - lf-provide-maven-settings:
1085 global-settings-file: "{mvn-global-settings}"
1086 settings-file: "{mvn-settings}"
1087 - lf-maven-versions-plugin:
1088 maven-versions-plugin: "{maven-versions-plugin}"
1089 version-properties-file: "{version-properties-file}"
1090 mvn-version: "{mvn-version}"
1091 mvn-pom: "{mvn-pom}"
1092 mvn-settings: "{mvn-settings}"
1093 - shell: !include-raw-escape: ../shell/maven-patch-release.sh
1095 mvn-goals: "{mvn-goals}"
1096 # With SBOM Generator
1098 condition-kind: boolean-expression
1099 condition-expression: "{sbom-generator}"
1101 - shell: echo 'Running SBOM Generator'
1102 - lf-infra-maven-sbom-generator:
1103 sbom-flags: "{sbom-flags}"
1104 - lf-sigul-sign-dir:
1105 sign-artifacts: "{sign-artifacts}"
1106 sign-dir: "$WORKSPACE/m2repo"
1107 sign-mode: "{sign-mode}"
1109 mvn-global-settings: "{mvn-global-settings}"
1110 mvn-settings: "{mvn-settings}"
1111 mvn-staging-id: "{mvn-staging-id}"
1113 mvn-central: "{mvn-central}"
1114 mvn-global-settings: "{mvn-global-settings}"
1115 mvn-settings: "{mvn-settings}"
1116 ossrh-profile-id: "{ossrh-profile-id}"
1117 - lf-provide-maven-settings-cleanup
1120 name: "{project-name}-maven-stage-{stream}"
1121 id: gerrit-maven-stage
1122 <<: *lf_maven_common
1123 # yamllint disable-line rule:key-duplicates
1127 - lf-infra-gerrit-scm:
1128 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1129 git-url: "{git-url}"
1130 refspec: "$GERRIT_REFSPEC"
1131 branch: "$GERRIT_BRANCH"
1132 submodule-recursive: "{submodule-recursive}"
1133 submodule-timeout: "{submodule-timeout}"
1134 submodule-disable: "{submodule-disable}"
1135 choosing-strategy: default
1138 - timed: "{obj:cron}"
1140 server-name: "{gerrit-server-name}"
1141 trigger-on: "{obj:gerrit_release_triggers}"
1143 - project-compare-type: ANT
1144 project-pattern: "{project}"
1146 - branch-compare-type: ANT
1147 branch-pattern: "**/{branch}"
1148 file-paths: "{obj:gerrit_trigger_file_paths}"
1151 name: "{project-name}-maven-stage-{stream}"
1152 id: github-maven-stage
1153 <<: *lf_maven_common
1154 # yamllint disable-line rule:key-duplicates
1158 - lf-infra-properties:
1159 build-days-to-keep: "{build-days-to-keep}"
1161 url: "{github-url}/{github-org}/{project}"
1164 - lf-infra-github-scm:
1165 url: "{git-clone-url}{github-org}/{project}"
1166 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1168 submodule-recursive: "{submodule-recursive}"
1169 submodule-timeout: "{submodule-timeout}"
1170 submodule-disable: "{submodule-disable}"
1171 choosing-strategy: default
1172 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1175 - timed: "{obj:cron}"
1176 - github-pull-request:
1177 trigger-phrase: "^stage-(maven-)?release$"
1178 only-trigger-phrase: true
1179 status-context: "Maven Release"
1182 white-list-target-branches:
1184 included-regions: "{obj:github_included_regions}"
1186 ##########################
1187 # Maven Stage for Docker #
1188 ##########################
1190 - _lf_maven_docker_stage: &lf_maven_docker_stage
1191 name: lf-maven-docker-stage
1194 - lf-infra-pre-build
1195 - lf-jacoco-nojava-workaround
1197 mvn-version: "{mvn-version}"
1198 - lf-update-java-alternatives:
1199 java-version: "{java-version}"
1200 - lf-infra-docker-login:
1201 global-settings-file: "{mvn-global-settings}"
1202 settings-file: "{mvn-settings}"
1203 # must provide maven settings AFTER docker-login due to its cleanup
1204 - lf-provide-maven-settings:
1205 global-settings-file: "{mvn-global-settings}"
1206 settings-file: "{mvn-settings}"
1207 - lf-maven-versions-plugin:
1208 maven-versions-plugin: "{maven-versions-plugin}"
1209 version-properties-file: "{version-properties-file}"
1210 mvn-version: "{mvn-version}"
1211 mvn-pom: "{mvn-pom}"
1212 mvn-settings: "{mvn-settings}"
1213 - shell: !include-raw-escape: ../shell/maven-patch-release.sh
1215 properties-content: |
1216 CONTAINER_PULL_REGISTRY={container-public-registry}
1217 CONTAINER_PUSH_REGISTRY={container-staging-registry}
1219 mvn-goals: "{mvn-goals}"
1220 - lf-sigul-sign-dir:
1221 sign-artifacts: "{sign-artifacts}"
1222 sign-dir: "$WORKSPACE/m2repo"
1223 sign-mode: "{sign-mode}"
1225 # NO lf-maven-central
1226 - lf-provide-maven-settings-cleanup
1228 gerrit_release_docker_triggers:
1229 - comment-added-contains-event:
1230 comment-contains-value: '^Patch Set\s+\d+:\s+stage-(docker-)?release\s*$'
1233 name: "{project-name}-maven-docker-stage-{stream}"
1234 id: gerrit-maven-docker-stage
1235 <<: *lf_maven_common
1236 # yamllint disable-line rule:key-duplicates
1238 # yamllint disable-line rule:key-duplicates
1239 <<: *lf_maven_docker_stage
1242 - lf-infra-gerrit-scm:
1243 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1244 git-url: "{git-url}"
1245 refspec: "$GERRIT_REFSPEC"
1246 branch: "$GERRIT_BRANCH"
1247 submodule-recursive: "{submodule-recursive}"
1248 submodule-timeout: "{submodule-timeout}"
1249 submodule-disable: "{submodule-disable}"
1250 choosing-strategy: default
1253 - timed: "{obj:cron}"
1255 server-name: "{gerrit-server-name}"
1256 trigger-on: "{obj:gerrit_release_docker_triggers}"
1258 - project-compare-type: ANT
1259 project-pattern: "{project}"
1261 - branch-compare-type: ANT
1262 branch-pattern: "**/{branch}"
1263 file-paths: "{obj:gerrit_trigger_file_paths}"
1266 name: "{project-name}-maven-docker-stage-{stream}"
1267 id: github-maven-docker-stage
1268 <<: *lf_maven_common
1269 # yamllint disable-line rule:key-duplicates
1271 # yamllint disable-line rule:key-duplicates
1272 <<: *lf_maven_docker_stage
1275 - lf-infra-properties:
1276 build-days-to-keep: "{build-days-to-keep}"
1278 url: "{github-url}/{github-org}/{project}"
1281 - lf-infra-github-scm:
1282 url: "{git-clone-url}{github-org}/{project}"
1283 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1285 submodule-recursive: "{submodule-recursive}"
1286 submodule-timeout: "{submodule-timeout}"
1287 submodule-disable: "{submodule-disable}"
1288 choosing-strategy: default
1289 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1292 - timed: "{obj:cron}"
1293 - github-pull-request:
1294 trigger-phrase: "^stage-(docker-)?release$"
1295 only-trigger-phrase: true
1296 status-context: "Maven Release"
1299 white-list-target-branches:
1301 included-regions: "{obj:github_included_regions}"
1307 - _lf_maven_sonar: &lf_maven_sonar
1308 name: lf-maven-sonar
1310 ######################
1311 # Default parameters #
1312 ######################
1314 branch: master # Sonar should always be run on master branch
1315 build-days-to-keep: 7
1317 cron: "H H * * 6" # run weekly
1319 git-url: "$GIT_URL/$PROJECT"
1320 github-url: "https://github.com"
1321 jacoco-exclude-pattern: "**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**"
1322 java-version: openjdk11
1324 mvn-global-settings: global-settings
1325 mvn-goals: clean install
1329 sonar-mvn-goal: "sonar:sonar"
1331 sonarcloud-project-key: ""
1332 sonarcloud-project-organization: ""
1333 sonarcloud-api-token-cred-id: sonarcloud-api-token
1334 sonarcloud-qualitygate-wait: false
1335 # SonarCloud scan using jdk8 will become deprecated by Oct, 2020
1336 # Projects not compatible with jdk11 can set java-version to something else
1337 sonarcloud-java-version: openjdk11
1339 submodule-recursive: true
1340 submodule-timeout: 10
1341 submodule-disable: false
1342 scan-dev-branch: false
1344 gerrit_sonar_triggers:
1345 - comment-added-contains-event:
1346 comment-contains-value: '^Patch Set\s+\d+:\s+run-sonar\s*$'
1348 #####################
1349 # Job Configuration #
1350 #####################
1352 disabled: "{disable-job}"
1355 - lf-infra-parameters:
1356 project: "{project}"
1359 - lf-infra-maven-parameters:
1360 mvn-opts: "{mvn-opts}"
1361 mvn-params: "{mvn-params}"
1362 mvn-version: "{mvn-version}"
1364 name: ARCHIVE_ARTIFACTS
1365 default: "{archive-artifacts}"
1366 description: Artifacts to archive to the logs server.
1369 default: "{java-opts}"
1371 Java options. Example: -Xmx1024m
1373 name: SONAR_MAVEN_GOAL
1374 default: "{sonar-mvn-goal}"
1376 Maven goals to pass to the Sonar call. Typically sonar:sonar
1377 however to use a specific version of the sonar-maven-plugin we
1378 can call "org.codehaus.mojo:sonar-maven-plugin:3.3.0.603:sonar".
1381 - credentials-binding:
1383 credential-id: "{sonarcloud-api-token-cred-id}"
1387 - timed: "{obj:cron}"
1389 server-name: "{gerrit-server-name}"
1390 trigger-on: "{obj:gerrit_sonar_triggers}"
1392 - project-compare-type: "ANT"
1393 project-pattern: "{project}"
1395 - branch-compare-type: "ANT"
1396 branch-pattern: "**/master"
1405 exclude-pattern: "{jacoco-exclude-pattern}"
1409 - _mvn_sonar_builders: &mvn_sonar_builders
1410 name: mvn-sonar-builders
1412 - lf-infra-pre-build
1415 condition-kind: boolean-expression
1416 condition-expression: "{sonarcloud}"
1418 - shell: echo 'Using SonarCloud'
1419 - lf-infra-maven-sonarcloud:
1420 java-version: "{java-version}"
1421 mvn-goals: "{mvn-goals}"
1422 mvn-settings: "{mvn-settings}"
1423 mvn-version: "{mvn-version}"
1424 sonarcloud-project-key: "{sonarcloud-project-key}"
1425 sonarcloud-project-organization: "{sonarcloud-project-organization}"
1426 sonarcloud-java-version: "{sonarcloud-java-version}"
1427 sonarcloud-qualitygate-wait: "{sonarcloud-qualitygate-wait}"
1428 scan-dev-branch: "{scan-dev-branch}"
1433 condition-kind: boolean-expression
1434 condition-expression: "{sonarcloud}"
1436 - shell: echo 'Using SonarQube'
1437 - lf-infra-maven-sonar:
1438 java-version: "{java-version}"
1439 mvn-goals: "{mvn-goals}"
1440 mvn-settings: "{mvn-settings}"
1441 mvn-version: "{mvn-version}"
1443 - _mvn_sonar_builders_prescan_script: &mvn_sonar_builders_prescan_script
1444 name: mvn-sonar-builders-prescan-script
1446 - shell: "{sonar-prescan-script}"
1447 - lf-infra-pre-build
1450 condition-kind: boolean-expression
1451 condition-expression: "{sonarcloud}"
1453 - shell: echo 'Using SonarCloud'
1454 - lf-infra-maven-sonarcloud:
1455 java-version: "{java-version}"
1456 mvn-goals: "{mvn-goals}"
1457 mvn-settings: "{mvn-settings}"
1458 mvn-version: "{mvn-version}"
1459 sonarcloud-project-key: "{sonarcloud-project-key}"
1460 sonarcloud-project-organization: "{sonarcloud-project-organization}"
1461 sonarcloud-java-version: "{sonarcloud-java-version}"
1462 sonarcloud-qualitygate-wait: "{sonarcloud-qualitygate-wait}"
1463 scan-dev-branch: "{scan-dev-branch}"
1468 condition-kind: boolean-expression
1469 condition-expression: "{sonarcloud}"
1471 - shell: echo 'Using SonarQube'
1472 - lf-infra-maven-sonar:
1473 java-version: "{java-version}"
1474 mvn-goals: "{mvn-goals}"
1475 mvn-settings: "{mvn-settings}"
1476 mvn-version: "{mvn-version}"
1479 name: lf-infra-maven-sbom-generator
1480 # Run Maven goals and trigger SPDX SBOM Generator tool
1483 properties-content: |
1484 SBOM_FLAGS={sbom-flags}
1485 - shell: !include-raw-escape:
1486 - ../shell/sbom-generator.sh
1489 name: lf-infra-maven-sonar
1490 # Run a Sonar build with Maven
1493 mvn-version: "{mvn-version}"
1494 - lf-update-java-alternatives:
1495 java-version: "{java-version}"
1497 # Switch this to the sonar wrapper when JJB 2.0 is available
1498 properties-content: |
1499 SONAR_HOST_URL=$SONAR_URL
1500 MAVEN_GOALS={mvn-goals}
1501 - lf-provide-maven-settings:
1502 global-settings-file: global-settings
1503 settings-file: "{mvn-settings}"
1504 - shell: !include-raw-escape:
1505 - ../shell/common-variables.sh
1506 - ../shell/maven-sonar.sh
1507 - lf-provide-maven-settings-cleanup
1510 name: lf-infra-maven-sonarcloud
1511 # Run a Sonar build with Maven
1514 mvn-version: "{mvn-version}"
1515 - lf-update-java-alternatives:
1516 java-version: "{java-version}"
1518 # Switch this to the sonar wrapper when JJB 2.0 is available
1519 properties-content: |
1520 SONAR_HOST_URL=https://sonarcloud.io
1521 PROJECT_KEY={sonarcloud-project-key}
1522 PROJECT_ORGANIZATION={sonarcloud-project-organization}
1523 MAVEN_GOALS={mvn-goals}
1524 SONARCLOUD_JAVA_VERSION={sonarcloud-java-version}
1525 SCAN_DEV_BRANCH={scan-dev-branch}
1526 SONARCLOUD_QUALITYGATE_WAIT={sonarcloud-qualitygate-wait}
1527 - lf-provide-maven-settings:
1528 global-settings-file: global-settings
1529 settings-file: "{mvn-settings}"
1530 - shell: !include-raw-escape:
1531 - ../shell/common-variables.sh
1532 - ../shell/maven-sonar.sh
1533 - lf-provide-maven-settings-cleanup
1536 name: "{project-name}-sonar"
1537 id: gerrit-maven-sonar
1538 <<: *lf_maven_common
1539 # yamllint disable-line rule:key-duplicates
1541 <<: *mvn_sonar_builders
1544 - lf-infra-gerrit-scm:
1545 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1546 git-url: "{git-url}"
1547 refspec: $GERRIT_REFSPEC
1548 branch: $GERRIT_BRANCH
1549 submodule-recursive: "{submodule-recursive}"
1550 submodule-timeout: "{submodule-timeout}"
1551 submodule-disable: "{submodule-disable}"
1552 choosing-strategy: default
1555 name: "{project-name}-sonar-verify"
1556 id: gerrit-maven-sonar-verify
1557 <<: *lf_maven_common
1558 # yamllint disable-line rule:key-duplicates
1560 <<: *mvn_sonar_builders
1563 scan-dev-branch: true
1564 sonarcloud-qualitygate-wait: false
1566 gerrit_sonar_triggers:
1567 - patchset-created-event:
1568 exclude-drafts: true
1569 exclude-trivial-rebase: false
1570 exclude-no-code-change: false
1571 - draft-published-event
1572 - comment-added-contains-event:
1573 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1575 gerrit_trigger_file_paths:
1576 - compare-type: REG_EXP
1581 server-name: "{gerrit-server-name}"
1582 trigger-on: "{obj:gerrit_sonar_triggers}"
1584 - project-compare-type: "ANT"
1585 project-pattern: "{project}"
1587 - branch-compare-type: "ANT"
1588 branch-pattern: "**/{branch}"
1589 file-paths: "{obj:gerrit_trigger_file_paths}"
1592 - lf-infra-gerrit-scm:
1593 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1594 git-url: "{git-url}"
1595 refspec: $GERRIT_REFSPEC
1596 branch: $GERRIT_BRANCH
1597 submodule-recursive: "{submodule-recursive}"
1598 submodule-timeout: "{submodule-timeout}"
1599 submodule-disable: "{submodule-disable}"
1600 choosing-strategy: gerrit
1603 name: "{project-name}-sonar-prescan-script"
1604 id: gerrit-maven-sonar-prescan-script
1605 <<: *lf_maven_common
1606 # yamllint disable-line rule:key-duplicates
1608 <<: *mvn_sonar_builders_prescan_script
1611 - lf-infra-gerrit-scm:
1612 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1613 git-url: "{git-url}"
1614 refspec: $GERRIT_REFSPEC
1615 branch: $GERRIT_BRANCH
1616 submodule-recursive: "{submodule-recursive}"
1617 submodule-timeout: "{submodule-timeout}"
1618 submodule-disable: "{submodule-disable}"
1619 choosing-strategy: default
1622 name: "{project-name}-sonar"
1623 id: github-maven-sonar
1624 <<: *lf_maven_common
1625 # yamllint disable-line rule:key-duplicates
1629 - lf-infra-properties:
1630 build-days-to-keep: "{build-days-to-keep}"
1632 url: "{github-url}/{github-org}/{project}"
1635 - lf-infra-github-scm:
1636 url: "{git-clone-url}{github-org}/{project}"
1637 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1639 submodule-recursive: "{submodule-recursive}"
1640 submodule-timeout: "{submodule-timeout}"
1641 submodule-disable: "{submodule-disable}"
1642 choosing-strategy: default
1643 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1646 - timed: "{obj:cron}"
1647 - github-pull-request:
1648 trigger-phrase: "^run-sonar$"
1649 only-trigger-phrase: true
1650 status-context: "Maven Sonar"
1655 white-list: "{obj:github_pr_allowlist}"
1656 admin-list: "{obj:github_pr_admin_list}"
1657 white-list-target-branches:
1661 name: "{project-name}-sonar-prescan-script"
1662 id: github-maven-sonar-prescan-script
1663 <<: *lf_maven_common
1664 # yamllint disable-line rule:key-duplicates
1666 <<: *mvn_sonar_builders_prescan_script
1669 - lf-infra-properties:
1670 build-days-to-keep: "{build-days-to-keep}"
1672 url: "{github-url}/{github-org}/{project}"
1675 - lf-infra-github-scm:
1676 url: "{git-clone-url}{github-org}/{project}"
1677 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1679 submodule-recursive: "{submodule-recursive}"
1680 submodule-timeout: "{submodule-timeout}"
1681 submodule-disable: "{submodule-disable}"
1682 choosing-strategy: default
1683 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1686 - timed: "{obj:cron}"
1687 - github-pull-request:
1688 trigger-phrase: "^run-sonar$"
1689 only-trigger-phrase: true
1690 status-context: "Maven Sonar"
1695 white-list: "{obj:github_pr_allowlist}"
1696 admin-list: "{obj:github_pr_admin_list}"
1697 white-list-target-branches:
1704 - _lf_maven_verify: &lf_maven_verify
1705 name: lf-maven-verify
1707 ######################
1708 # Default parameters #
1709 ######################
1712 build-days-to-keep: 7
1715 git-url: "$GIT_URL/$PROJECT"
1716 github-url: "https://github.com"
1717 jacoco-exclude-pattern: "**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**"
1718 java-version: openjdk11
1719 mvn-global-settings: global-settings
1720 mvn-goals: clean deploy
1722 mvn-params: "-Dstream=$STREAM -Dmaven.source.skip=true"
1724 pre-build-script: "# pre-build script goes here"
1725 post-build-script: "# post-build script goes here"
1727 submodule-recursive: true
1728 submodule-timeout: 10
1729 submodule-disable: false
1731 gerrit_verify_triggers:
1732 - patchset-created-event:
1733 exclude-drafts: true
1734 exclude-trivial-rebase: false
1735 exclude-no-code-change: false
1736 - draft-published-event
1737 - comment-added-contains-event:
1738 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1740 gerrit_trigger_file_paths:
1741 - compare-type: REG_EXP
1744 # github_included_regions MUST match gerrit_trigger_file_paths
1745 github_included_regions:
1748 #####################
1749 # Job Configuration #
1750 #####################
1753 disabled: "{disable-job}"
1756 - lf-infra-pre-build
1757 - lf-jacoco-nojava-workaround
1759 mvn-version: "{mvn-version}"
1760 - lf-update-java-alternatives:
1761 java-version: "{java-version}"
1762 - lf-provide-maven-settings:
1763 global-settings-file: "{mvn-global-settings}"
1764 settings-file: "{mvn-settings}"
1765 - shell: "{pre-build-script}"
1767 mvn-goals: "{mvn-goals}"
1768 - shell: "{post-build-script}"
1769 - lf-provide-maven-settings-cleanup
1774 exclude-pattern: "{jacoco-exclude-pattern}"
1778 name: "{project-name}-maven-verify-{stream}-{mvn-version}-{java-version}"
1779 id: gerrit-maven-verify
1780 <<: *lf_maven_common
1781 # yamllint disable-line rule:key-duplicates
1782 <<: *lf_maven_verify
1785 - lf-infra-gerrit-scm:
1786 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1787 git-url: "{git-url}"
1788 refspec: "$GERRIT_REFSPEC"
1789 branch: "$GERRIT_BRANCH"
1790 submodule-recursive: "{submodule-recursive}"
1791 submodule-timeout: "{submodule-timeout}"
1792 submodule-disable: "{submodule-disable}"
1793 choosing-strategy: gerrit
1797 server-name: "{gerrit-server-name}"
1798 trigger-on: "{obj:gerrit_verify_triggers}"
1800 - project-compare-type: ANT
1801 project-pattern: "{project}"
1803 - branch-compare-type: ANT
1804 branch-pattern: "**/{branch}"
1805 file-paths: "{obj:gerrit_trigger_file_paths}"
1808 name: "{project-name}-maven-verify-{stream}-{mvn-version}-{java-version}"
1809 id: github-maven-verify
1810 <<: *lf_maven_common
1811 # yamllint disable-line rule:key-duplicates
1812 <<: *lf_maven_verify
1815 - lf-infra-properties:
1816 build-days-to-keep: "{build-days-to-keep}"
1818 url: "{github-url}/{github-org}/{project}"
1821 - lf-infra-github-scm:
1822 url: "{git-clone-url}{github-org}/{project}"
1823 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1825 submodule-recursive: "{submodule-recursive}"
1826 submodule-timeout: "{submodule-timeout}"
1827 submodule-disable: "{submodule-disable}"
1828 choosing-strategy: default
1829 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1832 - github-pull-request:
1833 trigger-phrase: "^(recheck|reverify)$"
1834 only-trigger-phrase: false
1835 status-context: "Maven Verify {mvn-version}-{java-version}"
1838 white-list-target-branches:
1840 included-regions: "{obj:github_included_regions}"
1842 ###########################
1843 # Maven Verify for Docker #
1844 ###########################
1846 - _lf_maven_docker_verify: &lf_maven_docker_verify
1847 name: lf-maven-docker-verify
1849 # image push not allowed during verification
1850 mvn-goals: clean install
1853 - lf-infra-pre-build
1854 - lf-jacoco-nojava-workaround
1856 mvn-version: "{mvn-version}"
1857 - lf-update-java-alternatives:
1858 java-version: "{java-version}"
1859 - lf-infra-docker-login:
1860 global-settings-file: "{mvn-global-settings}"
1861 settings-file: "{mvn-settings}"
1862 # must provide maven settings AFTER docker due to its cleanup
1863 - lf-provide-maven-settings:
1864 global-settings-file: "{mvn-global-settings}"
1865 settings-file: "{mvn-settings}"
1867 properties-content: |
1868 CONTAINER_PULL_REGISTRY={container-public-registry}
1870 mvn-goals: "{mvn-goals}"
1871 - lf-provide-maven-settings-cleanup
1874 name: "{project-name}-maven-docker-verify-{stream}-{mvn-version}-{java-version}"
1875 id: gerrit-maven-docker-verify
1876 <<: *lf_maven_common
1877 # yamllint disable-line rule:key-duplicates
1878 <<: *lf_maven_verify
1879 # yamllint disable-line rule:key-duplicates
1880 <<: *lf_maven_docker_verify
1883 - lf-infra-gerrit-scm:
1884 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1885 git-url: "{git-url}"
1886 refspec: "$GERRIT_REFSPEC"
1887 branch: "$GERRIT_BRANCH"
1888 submodule-recursive: "{submodule-recursive}"
1889 submodule-timeout: "{submodule-timeout}"
1890 submodule-disable: "{submodule-disable}"
1891 choosing-strategy: gerrit
1895 server-name: "{gerrit-server-name}"
1896 trigger-on: "{obj:gerrit_verify_triggers}"
1898 - project-compare-type: ANT
1899 project-pattern: "{project}"
1901 - branch-compare-type: ANT
1902 branch-pattern: "**/{branch}"
1903 file-paths: "{obj:gerrit_trigger_file_paths}"
1906 name: "{project-name}-maven-docker-verify-{stream}-{mvn-version}-{java-version}"
1907 id: github-maven-docker-verify
1908 <<: *lf_maven_common
1909 # yamllint disable-line rule:key-duplicates
1910 <<: *lf_maven_verify
1911 # yamllint disable-line rule:key-duplicates
1912 <<: *lf_maven_docker_verify
1915 - lf-infra-properties:
1916 build-days-to-keep: "{build-days-to-keep}"
1918 url: "{github-url}/{github-org}/{project}"
1921 - lf-infra-github-scm:
1922 url: "{git-clone-url}{github-org}/{project}"
1923 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1925 submodule-recursive: "{submodule-recursive}"
1926 submodule-timeout: "{submodule-timeout}"
1927 submodule-disable: "{submodule-disable}"
1928 choosing-strategy: default
1929 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1932 - github-pull-request:
1933 trigger-phrase: "^(recheck|reverify)$"
1934 only-trigger-phrase: false
1935 status-context: "Maven Docker Verify {mvn-version}-{java-version}"
1938 white-list-target-branches:
1940 included-regions: "{obj:github_included_regions}"
1942 #############################
1943 # Maven Verify Dependencies #
1944 #############################
1946 - _lf_maven_verify_dependencies: &lf_maven_verify_dependencies
1947 name: lf-maven-verify-dependencies
1949 ######################
1950 # Default parameters #
1951 ######################
1954 build-days-to-keep: 7
1957 git-url: "$GIT_URL/$PROJECT"
1958 github-url: "https://github.com"
1959 jacoco-exclude-pattern: "**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**"
1960 java-version: openjdk11
1961 mvn-global-settings: global-settings
1962 mvn-goals: clean deploy
1964 mvn-params: "-Dstream=$STREAM"
1967 submodule-recursive: true
1968 submodule-timeout: 10
1969 submodule-disable: false
1971 gerrit_verify_triggers:
1972 - comment-added-contains-event:
1973 comment-contains-value: "recheck: [0-9 ]+"
1974 gerrit_trigger_file_paths:
1978 #####################
1979 # Job Configuration #
1980 #####################
1983 disabled: "{disable-job}"
1986 - lf-infra-pre-build
1987 - lf-jacoco-nojava-workaround
1989 mvn-version: "{mvn-version}"
1990 - lf-update-java-alternatives:
1991 java-version: "{java-version}"
1992 - lf-provide-maven-settings:
1993 global-settings-file: "{mvn-global-settings}"
1994 settings-file: "{mvn-settings}"
1995 - lf-fetch-dependent-patches
1996 - shell: !include-raw-escape:
1997 - ../shell/common-variables.sh
1998 - ../shell/maven-build-deps.sh
2000 mvn-goals: "{mvn-goals}"
2001 - lf-provide-maven-settings-cleanup
2006 exclude-pattern: "{jacoco-exclude-pattern}"
2010 name: "{project-name}-maven-verify-deps-{stream}-{mvn-version}-{java-version}"
2011 id: gerrit-maven-verify-dependencies
2012 <<: *lf_maven_common
2013 # yamllint disable-line rule:key-duplicates
2014 <<: *lf_maven_verify_dependencies
2017 - lf-infra-gerrit-scm:
2018 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2019 git-url: "{git-url}"
2020 refspec: "$GERRIT_REFSPEC"
2021 branch: "$GERRIT_BRANCH"
2022 submodule-recursive: "{submodule-recursive}"
2023 submodule-timeout: "{submodule-timeout}"
2024 submodule-disable: "{submodule-disable}"
2025 choosing-strategy: gerrit
2029 server-name: "{gerrit-server-name}"
2030 trigger-on: "{obj:gerrit_verify_triggers}"
2032 - project-compare-type: ANT
2033 project-pattern: "{project}"
2035 - branch-compare-type: ANT
2036 branch-pattern: "**/{branch}"
2037 file-paths: "{obj:gerrit_trigger_file_paths}"
2038 comment-text-parameter-mode: PLAIN