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
34 maven-version: '{mvn-version}'
36 goals: 'versions:set versions:update-child-modules versions:commit -B'
38 - 'newVersion=${{maven-versions-plugin-set-version}}'
39 settings: '{mvn-settings}'
41 global-settings: 'global-settings'
42 global-settings-type: cfp
47 - lf-provide-maven-settings:
48 global-settings-file: '{mvn-global-settings}'
49 settings-file: '{mvn-settings}'
50 - lf-infra-create-netrc:
51 server-id: '{mvn-staging-id}'
52 # include-raw-escape fails due to JJB bug
53 - shell: !include-raw-escape:
54 - ../shell/common-variables.sh
55 - ../shell/maven-stage.sh
56 - lf-provide-maven-settings-cleanup
59 name: lf-update-java-alternatives
62 # Work around inject plugin overriding our GIT_URL variable incorrectly
63 # https://issues.jenkins-ci.org/browse/JENKINS-49775
65 SET_JDK_VERSION={java-version}
67 - shell: !include-raw-escape: ../shell/update-java-alternatives.sh
69 properties-file: '/tmp/java.env'
75 - lf_maven_common: &lf_maven_common
78 ######################
79 # Default parameters #
80 ######################
85 **/target/**/feature.xml
86 **/target/failsafe-reports/failsafe-summary.xml
87 **/target/surefire-reports/*-output.txt
93 project-type: freestyle
97 - lf-infra-properties:
98 build-days-to-keep: '{build-days-to-keep}'
101 - lf-infra-parameters:
105 - lf-infra-maven-parameters:
106 mvn-opts: '{mvn-opts}'
107 mvn-params: '{mvn-params}'
108 mvn-version: '{mvn-version}'
110 name: ARCHIVE_ARTIFACTS
111 default: '{archive-artifacts}'
112 description: Artifacts to archive to the logs server.
116 build-timeout: '{build-timeout}'
117 jenkins-ssh-credential: '{jenkins-ssh-credential}'
120 # TODO: Make email notification work.
121 # - lf-infra-email-notify:
122 # email-recipients: '{email-recipients}'
123 # email-prefix: '[releng]'
130 - lf_maven_clm: &lf_maven_clm
133 ######################
134 # Default parameters #
135 ######################
138 build-days-to-keep: 30 # 30 days for troubleshooting purposes
141 git-url: '$GIT_URL/$PROJECT'
142 github-url: 'https://github.com'
143 java-version: openjdk8
144 mvn-global-settings: global-settings
148 nexus-iq-namespace: '' # Recommend a trailing dash when set. Example: odl-
149 nexus-iq-stage: 'build'
151 submodule-recursive: true
152 submodule-timeout: 10
154 nexus_iq_scan_patterns:
162 - comment-added-contains-event:
163 comment-contains-value: run-clm$
166 - lf-infra-parameters:
170 - lf-infra-maven-parameters:
171 mvn-opts: '{mvn-opts}'
172 mvn-params: '{mvn-params}'
173 mvn-version: '{mvn-version}'
175 name: ARCHIVE_ARTIFACTS
176 default: '{archive-artifacts}'
177 description: Artifacts to archive to the logs server.
179 nexus-iq-stage: '{nexus-iq-stage}'
181 #####################
182 # Job Configuration #
183 #####################
185 disabled: '{disable-job}'
190 mvn-version: '{mvn-version}'
191 - lf-update-java-alternatives:
192 java-version: '{java-version}'
193 - lf-provide-maven-settings:
194 global-settings-file: '{mvn-global-settings}'
195 settings-file: '{mvn-settings}'
196 - shell: !include-raw-escape:
197 - ../shell/common-variables.sh
198 - ../shell/sonatype-clm.sh
199 - lf-provide-maven-settings-cleanup
200 - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
201 - nexus-iq-policy-evaluator:
202 stage: '{nexus-iq-stage}'
203 application-type: 'manual'
204 application-id: '{nexus-iq-namespace}{project-name}'
205 scan-patterns: '{obj:nexus_iq_scan_patterns}'
206 fail-build-network-error: true
209 name: '{project-name}-maven-clm-{stream}'
212 # yamllint disable-line rule:key-duplicates
216 - lf-infra-gerrit-scm:
217 jenkins-ssh-credential: '{jenkins-ssh-credential}'
219 refspec: '$GERRIT_REFSPEC'
220 branch: '$GERRIT_BRANCH'
221 submodule-recursive: '{submodule-recursive}'
222 submodule-timeout: '{submodule-timeout}'
223 choosing-strategy: default
226 # Build weekly on Saturdays
229 server-name: '{gerrit-server-name}'
230 trigger-on: '{obj:gerrit_clm_triggers}'
232 - project-compare-type: ANT
233 project-pattern: '{project}'
235 - branch-compare-type: ANT
236 branch-pattern: '**/{branch}'
244 name: '{project-name}-maven-clm-{stream}'
247 # yamllint disable-line rule:key-duplicates
251 - lf-infra-properties:
252 build-days-to-keep: '{build-days-to-keep}'
254 url: '{github-url}/{github-org}/{project}'
257 - lf-infra-github-scm:
258 url: '{git-clone-url}{github-org}/{project}'
260 branch: 'refs/heads/{branch}'
261 submodule-recursive: '{submodule-recursive}'
262 submodule-timeout: '{submodule-timeout}'
263 choosing-strategy: default
264 jenkins-ssh-credential: '{jenkins-ssh-credential}'
267 # Build weekly on Saturdays
269 - github-pull-request:
270 trigger-phrase: '^run-clm$'
271 only-trigger-phrase: true
272 status-context: 'CLM'
277 white-list: '{obj:github_pr_whitelist}'
278 admin-list: '{obj:github_pr_admin_list}'
279 white-list-target-branches:
282 #########################
283 # Maven Javadoc Publish #
284 #########################
286 - lf_maven_javadoc_publish: &lf_maven_javadoc_publish
287 name: lf-maven-javadoc-publish
289 ######################
290 # Default parameters #
291 ######################
294 build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
297 git-url: '$GIT_URL/$PROJECT'
298 github-url: 'https://github.com'
299 java-version: openjdk8
300 mvn-global-settings: global-settings
305 submodule-recursive: true
306 submodule-timeout: 10
308 gerrit_merge_triggers:
309 - change-merged-event
310 - comment-added-contains-event:
311 comment-contains-value: remerge$
313 #####################
314 # Job Configuration #
315 #####################
317 disabled: '{disable-job}'
322 mvn-version: '{mvn-version}'
323 - lf-update-java-alternatives:
324 java-version: '{java-version}'
325 - lf-provide-maven-settings:
326 global-settings-file: '{mvn-global-settings}'
327 settings-file: '{mvn-settings}'
328 - lf-infra-create-netrc:
329 server-id: '{mvn-site-id}'
331 properties-content: 'DEPLOY_PATH={javadoc-path}'
332 - shell: !include-raw-escape:
333 - ../shell/common-variables.sh
334 - ../shell/maven-javadoc-generate.sh
335 - ../shell/maven-javadoc-publish.sh
336 - lf-provide-maven-settings-cleanup
339 name: '{project-name}-maven-javadoc-publish-{stream}-{java-version}'
340 id: gerrit-maven-javadoc-publish
342 # yamllint disable-line rule:key-duplicates
343 <<: *lf_maven_javadoc_publish
345 git-url: '$GIT_URL/$GERRIT_PROJECT'
348 - lf-infra-gerrit-scm:
352 submodule-recursive: '{submodule-recursive}'
353 submodule-timeout: '{submodule-timeout}'
354 choosing-strategy: default
355 jenkins-ssh-credential: '{jenkins-ssh-credential}'
359 server-name: '{gerrit-server-name}'
360 trigger-on: '{obj:gerrit_merge_triggers}'
362 - project-compare-type: ANT
363 project-pattern: '{project}'
365 - branch-compare-type: ANT
366 branch-pattern: '**/{branch}'
369 name: '{project-name}-maven-javadoc-publish-{stream}-{java-version}'
370 id: github-maven-javadoc-publish
372 # yamllint disable-line rule:key-duplicates
373 <<: *lf_maven_javadoc_publish
376 - lf-infra-properties:
377 build-days-to-keep: '{build-days-to-keep}'
379 url: '{github-url}/{github-org}/{project}'
382 - lf-infra-github-scm:
383 url: '{git-clone-url}{github-org}/{project}'
386 submodule-recursive: '{submodule-recursive}'
387 submodule-timeout: '{submodule-timeout}'
388 choosing-strategy: default
389 jenkins-ssh-credential: '{jenkins-ssh-credential}'
395 - github-pull-request:
396 trigger-phrase: '^remerge$'
397 only-trigger-phrase: true
398 status-context: 'Maven Javadoc Publish'
403 white-list: '{obj:github_pr_whitelist}'
404 admin-list: '{obj:github_pr_admin_list}'
405 white-list-target-branches:
408 ########################
409 # Maven Javadoc Verify #
410 ########################
412 - lf_maven_javadoc_verify: &lf_maven_javadoc_verify
413 name: lf-maven-javadoc-verify
415 ######################
416 # Default parameters #
417 ######################
420 build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
423 git-url: '$GIT_URL/$PROJECT'
424 github-url: 'https://github.com'
425 java-version: openjdk8
426 mvn-global-settings: global-settings
431 submodule-recursive: true
432 submodule-timeout: 10
434 gerrit_verify_triggers:
435 - patchset-created-event:
437 exclude-trivial-rebase: false
438 exclude-no-code-change: false
439 - draft-published-event
440 - comment-added-contains-event:
441 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
443 #####################
444 # Job Configuration #
445 #####################
448 disabled: '{disable-job}'
453 mvn-version: '{mvn-version}'
454 - lf-update-java-alternatives:
455 java-version: '{java-version}'
456 - lf-provide-maven-settings:
457 global-settings-file: '{mvn-global-settings}'
458 settings-file: '{mvn-settings}'
459 - shell: !include-raw-escape:
460 - ../shell/common-variables.sh
461 - ../shell/maven-javadoc-generate.sh
462 - lf-provide-maven-settings-cleanup
465 name: '{project-name}-maven-javadoc-verify-{stream}-{java-version}'
466 id: gerrit-maven-javadoc-verify
468 # yamllint disable-line rule:key-duplicates
469 <<: *lf_maven_javadoc_verify
472 - lf-infra-gerrit-scm:
473 jenkins-ssh-credential: '{jenkins-ssh-credential}'
475 refspec: '$GERRIT_REFSPEC'
476 branch: '$GERRIT_BRANCH'
477 submodule-recursive: '{submodule-recursive}'
478 submodule-timeout: '{submodule-timeout}'
479 choosing-strategy: gerrit
483 server-name: '{gerrit-server-name}'
484 trigger-on: '{obj:gerrit_verify_triggers}'
486 - project-compare-type: ANT
487 project-pattern: '{project}'
489 - branch-compare-type: ANT
490 branch-pattern: '**/{branch}'
493 name: '{project-name}-maven-javadoc-verify-{stream}-{java-version}'
494 id: github-maven-javadoc-verify
496 # yamllint disable-line rule:key-duplicates
497 <<: *lf_maven_javadoc_verify
500 - lf-infra-properties:
501 build-days-to-keep: '{build-days-to-keep}'
503 url: '{github-url}/{github-org}/{project}'
506 - lf-infra-github-scm:
507 url: '{git-clone-url}{github-org}/{project}'
508 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
510 submodule-recursive: '{submodule-recursive}'
511 submodule-timeout: '{submodule-timeout}'
512 choosing-strategy: default
513 jenkins-ssh-credential: '{jenkins-ssh-credential}'
516 - github-pull-request:
517 trigger-phrase: ^(recheck|reverify)$
518 only-trigger-phrase: false
519 status-context: 'Maven Javadoc Verify'
522 white-list-target-branches:
529 - lf_maven_merge: &lf_maven_merge
532 ######################
533 # Default parameters #
534 ######################
537 build-days-to-keep: 30 # 30 days in case we need to troubleshoot
541 git-url: '$GIT_URL/$PROJECT'
542 github-url: 'https://github.com'
543 java-version: openjdk8
544 mvn-global-settings: global-settings
545 mvn-goals: clean deploy
547 mvn-params: '-Dmerge'
549 nexus-cut-dirs: 6 # Number of dirs in the Nexus path to remove for wget -r.
551 submodule-recursive: true
552 submodule-timeout: 10
554 gerrit_merge_triggers:
555 - change-merged-event
556 - comment-added-contains-event:
557 comment-contains-value: remerge$
559 gerrit_trigger_file_paths:
560 - compare-type: REG_EXP
563 # github_included_regions MUST match gerrit_trigger_file_paths
564 github_included_regions:
567 post_build_trigger: ''
569 #####################
570 # Job Configuration #
571 #####################
573 disabled: '{disable-job}'
577 - lf-jacoco-nojava-workaround
579 mvn-version: '{mvn-version}'
580 - lf-update-java-alternatives:
581 java-version: '{java-version}'
582 - lf-provide-maven-settings:
583 global-settings-file: '{mvn-global-settings}'
584 settings-file: '{mvn-settings}'
585 - lf-infra-create-netrc:
586 server-id: '{mvn-snapshot-id}'
588 properties-content: |
589 NEXUS_CUT_DIRS={nexus-cut-dirs}
590 NEXUS_REPO={nexus-snapshot-repo}
591 - shell: !include-raw-escape: ../shell/maven-fetch-metadata.sh
593 mvn-goals: '{mvn-goals}'
595 - lf-provide-maven-settings-cleanup
601 - trigger-parameterized-builds: '{obj:post_build_trigger}'
604 name: '{project-name}-maven-merge-{stream}'
605 id: gerrit-maven-merge
607 # yamllint disable-line rule:key-duplicates
611 - lf-infra-gerrit-scm:
612 jenkins-ssh-credential: '{jenkins-ssh-credential}'
614 refspec: '$GERRIT_REFSPEC'
615 branch: '$GERRIT_BRANCH'
616 submodule-recursive: '{submodule-recursive}'
617 submodule-timeout: '{submodule-timeout}'
618 choosing-strategy: default
621 - timed: '{obj:cron}'
623 server-name: '{gerrit-server-name}'
624 trigger-on: '{obj:gerrit_merge_triggers}'
626 - project-compare-type: ANT
627 project-pattern: '{project}'
629 - branch-compare-type: ANT
630 branch-pattern: '**/{branch}'
631 file-paths: '{obj:gerrit_trigger_file_paths}'
634 name: '{project-name}-maven-merge-{stream}'
635 id: github-maven-merge
637 # yamllint disable-line rule:key-duplicates
641 - lf-infra-properties:
642 build-days-to-keep: '{build-days-to-keep}'
644 url: '{github-url}/{github-org}/{project}'
647 - lf-infra-github-scm:
648 url: '{git-clone-url}{github-org}/{project}'
650 branch: 'refs/heads/{branch}'
651 submodule-recursive: '{submodule-recursive}'
652 submodule-timeout: '{submodule-timeout}'
653 choosing-strategy: default
654 jenkins-ssh-credential: '{jenkins-ssh-credential}'
657 - timed: '{obj:cron}'
661 - github-pull-request:
662 trigger-phrase: '^remerge$'
663 only-trigger-phrase: true
664 status-context: 'Maven Merge'
669 white-list: '{obj:github_pr_whitelist}'
670 admin-list: '{obj:github_pr_admin_list}'
671 white-list-target-branches:
673 included-regions: '{obj:github_included_regions}'
675 ##########################
676 # Maven Merge for Docker #
677 ##########################
679 - lf_maven_docker_merge: &lf_maven_docker_merge
680 name: lf-maven-docker-merge
684 - lf-jacoco-nojava-workaround
686 mvn-version: '{mvn-version}'
687 - lf-infra-docker-login:
688 global-settings-file: '{mvn-global-settings}'
689 settings-file: '{mvn-settings}'
690 - lf-update-java-alternatives:
691 java-version: '{java-version}'
692 # must provide maven settings AFTER docker due to its cleanup
693 - lf-provide-maven-settings:
694 global-settings-file: '{mvn-global-settings}'
695 settings-file: '{mvn-settings}'
696 - lf-infra-create-netrc:
697 server-id: '{mvn-snapshot-id}'
699 properties-content: |
700 NEXUS_CUT_DIRS={nexus-cut-dirs}
701 NEXUS_REPO={nexus-snapshot-repo}
702 CONTAINER_PULL_REGISTRY={container-public-registry}
703 CONTAINER_PUSH_REGISTRY={container-snapshot-registry}
704 - shell: !include-raw-escape: ../shell/maven-fetch-metadata.sh
706 mvn-goals: '{mvn-goals}'
708 - lf-provide-maven-settings-cleanup
711 name: '{project-name}-maven-docker-merge-{stream}'
712 id: gerrit-maven-docker-merge
714 # yamllint disable-line rule:key-duplicates
716 # yamllint disable-line rule:key-duplicates
717 <<: *lf_maven_docker_merge
720 - lf-infra-gerrit-scm:
721 jenkins-ssh-credential: '{jenkins-ssh-credential}'
723 refspec: '$GERRIT_REFSPEC'
724 branch: '$GERRIT_BRANCH'
725 submodule-recursive: '{submodule-recursive}'
726 submodule-timeout: '{submodule-timeout}'
727 choosing-strategy: default
731 server-name: '{gerrit-server-name}'
732 trigger-on: '{obj:gerrit_merge_triggers}'
734 - project-compare-type: ANT
735 project-pattern: '{project}'
737 - branch-compare-type: ANT
738 branch-pattern: '**/{branch}'
739 file-paths: '{obj:gerrit_trigger_file_paths}'
742 name: '{project-name}-maven-docker-merge-{stream}'
743 id: github-maven-docker-merge
745 # yamllint disable-line rule:key-duplicates
747 # yamllint disable-line rule:key-duplicates
748 <<: *lf_maven_docker_merge
751 - lf-infra-properties:
752 build-days-to-keep: '{build-days-to-keep}'
754 url: '{github-url}/{github-org}/{project}'
757 - lf-infra-github-scm:
758 url: '{git-clone-url}{github-org}/{project}'
760 branch: 'refs/heads/{branch}'
761 submodule-recursive: '{submodule-recursive}'
762 submodule-timeout: '{submodule-timeout}'
763 choosing-strategy: default
764 jenkins-ssh-credential: '{jenkins-ssh-credential}'
770 - github-pull-request:
771 trigger-phrase: '^remerge$'
772 only-trigger-phrase: true
773 status-context: 'Maven Docker Merge'
778 white-list: '{obj:github_pr_whitelist}'
779 admin-list: '{obj:github_pr_admin_list}'
780 white-list-target-branches:
782 included-regions: '{obj:github_included_regions}'
788 - lf_maven_stage: &lf_maven_stage
791 ######################
792 # Default parameters #
793 ######################
796 build-days-to-keep: 30 # 30 days in case a release takes long to get approved.
800 git-url: '$GIT_URL/$PROJECT'
801 github-url: 'https://github.com'
802 java-version: openjdk8
803 maven-versions-plugin: false
804 maven-versions-plugin-set-version: ''
806 mvn-global-settings: global-settings
807 mvn-goals: clean deploy
813 sign-artifacts: false
816 submodule-recursive: true
817 submodule-timeout: 10
819 gerrit_release_triggers:
820 - comment-added-contains-event:
821 comment-contains-value: stage-release$
823 #####################
824 # Job Configuration #
825 #####################
827 disabled: '{disable-job}'
830 - lf-infra-parameters:
834 - lf-infra-maven-parameters:
835 mvn-opts: '{mvn-opts}'
836 mvn-params: '{mvn-params}'
837 mvn-version: '{mvn-version}'
838 staging-profile-id: '{staging-profile-id}'
840 name: MAVEN_VERSIONS_PLUGIN
841 default: '{maven-versions-plugin}'
842 description: Use maven-versions-plugin to update pom versions.
844 name: ARCHIVE_ARTIFACTS
845 default: '{archive-artifacts}'
846 description: Artifacts to archive to the logs server.
848 name: STAGING_PROFILE_ID
849 default: '{staging-profile-id}'
850 description: Nexus staging profile ID.
854 - lf-jacoco-nojava-workaround
856 mvn-version: '{mvn-version}'
857 - lf-update-java-alternatives:
858 java-version: '{java-version}'
859 - lf-provide-maven-settings:
860 global-settings-file: '{mvn-global-settings}'
861 settings-file: '{mvn-settings}'
862 - lf-maven-versions-plugin:
863 maven-versions-plugin: '{maven-versions-plugin}'
864 mvn-version: '{mvn-version}'
866 maven-versions-plugin-set-version: '{maven-versions-plugin-set-version}'
867 mvn-settings: '{mvn-settings}'
868 - shell: !include-raw-escape: ../shell/maven-patch-release.sh
870 mvn-goals: '{mvn-goals}'
872 sign-artifacts: '{sign-artifacts}'
873 sign-dir: '$WORKSPACE/m2repo'
874 sign-mode: '{sign-mode}'
876 mvn-global-settings: '{mvn-global-settings}'
877 mvn-settings: '{mvn-settings}'
878 mvn-staging-id: '{mvn-staging-id}'
880 mvn-central: '{mvn-central}'
881 mvn-global-settings: '{mvn-global-settings}'
882 mvn-settings: '{mvn-settings}'
883 ossrh-profile-id: '{ossrh-profile-id}'
884 - lf-provide-maven-settings-cleanup
887 name: '{project-name}-maven-stage-{stream}'
888 id: gerrit-maven-stage
890 # yamllint disable-line rule:key-duplicates
894 - lf-infra-gerrit-scm:
895 jenkins-ssh-credential: '{jenkins-ssh-credential}'
897 refspec: '$GERRIT_REFSPEC'
898 branch: '$GERRIT_BRANCH'
899 submodule-recursive: '{submodule-recursive}'
900 submodule-timeout: '{submodule-timeout}'
901 choosing-strategy: default
904 - timed: '{obj:cron}'
906 server-name: '{gerrit-server-name}'
907 trigger-on: '{obj:gerrit_release_triggers}'
909 - project-compare-type: ANT
910 project-pattern: '{project}'
912 - branch-compare-type: ANT
913 branch-pattern: '**/{branch}'
916 name: '{project-name}-maven-stage-{stream}'
917 id: github-maven-stage
919 # yamllint disable-line rule:key-duplicates
923 - lf-infra-properties:
924 build-days-to-keep: '{build-days-to-keep}'
926 url: '{github-url}/{github-org}/{project}'
929 - lf-infra-github-scm:
930 url: '{git-clone-url}{github-org}/{project}'
931 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
933 submodule-recursive: '{submodule-recursive}'
934 submodule-timeout: '{submodule-timeout}'
935 choosing-strategy: default
936 jenkins-ssh-credential: '{jenkins-ssh-credential}'
939 - timed: '{obj:cron}'
940 - github-pull-request:
941 trigger-phrase: '^build release$'
942 only-trigger-phrase: true
943 status-context: 'Maven Release'
946 white-list-target-branches:
949 ##########################
950 # Maven Stage for Docker #
951 ##########################
953 - lf_maven_docker_stage: &lf_maven_docker_stage
954 name: lf-maven-docker-stage
958 - lf-jacoco-nojava-workaround
960 mvn-version: '{mvn-version}'
961 - lf-update-java-alternatives:
962 java-version: '{java-version}'
963 - lf-infra-docker-login:
964 global-settings-file: '{mvn-global-settings}'
965 settings-file: '{mvn-settings}'
966 # must provide maven settings AFTER docker-login due to its cleanup
967 - lf-provide-maven-settings:
968 global-settings-file: '{mvn-global-settings}'
969 settings-file: '{mvn-settings}'
970 - shell: !include-raw-escape: ../shell/maven-patch-release.sh
971 - lf-maven-versions-plugin:
972 maven-versions-plugin: '{maven-versions-plugin}'
973 mvn-version: '{mvn-version}'
975 maven-versions-plugin-set-version: '{maven-versions-plugin-set-version}'
976 mvn-settings: '{mvn-settings}'
978 properties-content: |
979 CONTAINER_PULL_REGISTRY={container-public-registry}
980 CONTAINER_PUSH_REGISTRY={container-staging-registry}
982 mvn-goals: '{mvn-goals}'
984 sign-artifacts: '{sign-artifacts}'
985 sign-dir: '$WORKSPACE/m2repo'
986 sign-mode: '{sign-mode}'
988 # NO lf-maven-central
989 - lf-provide-maven-settings-cleanup
992 name: '{project-name}-maven-docker-stage-{stream}'
993 id: gerrit-maven-docker-stage
995 # yamllint disable-line rule:key-duplicates
997 # yamllint disable-line rule:key-duplicates
998 <<: *lf_maven_docker_stage
1001 - lf-infra-gerrit-scm:
1002 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1003 git-url: '{git-url}'
1004 refspec: '$GERRIT_REFSPEC'
1005 branch: '$GERRIT_BRANCH'
1006 submodule-recursive: '{submodule-recursive}'
1007 submodule-timeout: '{submodule-timeout}'
1008 choosing-strategy: default
1011 - timed: '{obj:cron}'
1013 server-name: '{gerrit-server-name}'
1014 trigger-on: '{obj:gerrit_release_triggers}'
1016 - project-compare-type: ANT
1017 project-pattern: '{project}'
1019 - branch-compare-type: ANT
1020 branch-pattern: '**/{branch}'
1023 name: '{project-name}-maven-docker-stage-{stream}'
1024 id: github-maven-docker-stage
1025 <<: *lf_maven_common
1026 # yamllint disable-line rule:key-duplicates
1028 # yamllint disable-line rule:key-duplicates
1029 <<: *lf_maven_docker_stage
1032 - lf-infra-properties:
1033 build-days-to-keep: '{build-days-to-keep}'
1035 url: '{github-url}/{github-org}/{project}'
1038 - lf-infra-github-scm:
1039 url: '{git-clone-url}{github-org}/{project}'
1040 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1042 submodule-recursive: '{submodule-recursive}'
1043 submodule-timeout: '{submodule-timeout}'
1044 choosing-strategy: default
1045 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1048 - timed: '{obj:cron}'
1049 - github-pull-request:
1050 trigger-phrase: '^build release$'
1051 only-trigger-phrase: true
1052 status-context: 'Maven Release'
1055 white-list-target-branches:
1062 - lf_maven_sonar: &lf_maven_sonar
1063 name: lf-maven-sonar
1065 ######################
1066 # Default parameters #
1067 ######################
1069 branch: master # Sonar should always be run on master branch
1070 build-days-to-keep: 7
1072 cron: 'H H * * 6' # run weekly
1074 git-url: '$GIT_URL/$PROJECT'
1075 github-url: 'https://github.com'
1076 java-version: openjdk8
1077 mvn-global-settings: global-settings
1081 sonar-mvn-goal: 'sonar:sonar'
1083 sonarcloud-project-key: ''
1084 sonarcloud-project-organization: ''
1085 sonarcloud-api-token: ''
1087 submodule-recursive: true
1088 submodule-timeout: 10
1090 gerrit_sonar_triggers:
1091 - comment-added-contains-event:
1092 comment-contains-value: run-sonar$
1094 #####################
1095 # Job Configuration #
1096 #####################
1098 disabled: '{disable-job}'
1101 - lf-infra-parameters:
1102 project: '{project}'
1105 - lf-infra-maven-parameters:
1106 mvn-opts: '{mvn-opts}'
1107 mvn-params: '{mvn-params}'
1108 mvn-version: '{mvn-version}'
1110 name: ARCHIVE_ARTIFACTS
1111 default: '{archive-artifacts}'
1112 description: Artifacts to archive to the logs server.
1114 name: SONAR_MAVEN_GOAL
1115 default: '{sonar-mvn-goal}'
1117 Maven goals to pass to the Sonar call. Typically sonar:sonar
1118 however to use a specific version of the sonar-maven-plugin we
1119 can call "org.codehaus.mojo:sonar-maven-plugin:3.3.0.603:sonar".
1122 - timed: '{obj:cron}'
1124 server-name: '{gerrit-server-name}'
1125 trigger-on: '{obj:gerrit_sonar_triggers}'
1127 - project-compare-type: 'ANT'
1128 project-pattern: '{project}'
1130 - branch-compare-type: 'ANT'
1131 branch-pattern: '**/master'
1139 - lf-infra-pre-build
1142 condition-kind: boolean-expression
1143 condition-expression: '{sonarcloud}'
1145 - shell: echo 'Using SonarCloud'
1146 - lf-infra-maven-sonarcloud:
1147 java-version: '{java-version}'
1148 mvn-settings: '{mvn-settings}'
1149 mvn-version: '{mvn-version}'
1150 sonarcloud-project-key: '{sonarcloud-project-key}'
1151 sonarcloud-project-organization: '{sonarcloud-project-organization}'
1152 sonarcloud-api-token: '{sonarcloud-api-token}'
1157 condition-kind: boolean-expression
1158 condition-expression: '{sonarcloud}'
1160 - shell: echo 'Using SonarQube'
1161 - lf-infra-maven-sonar:
1162 java-version: '{java-version}'
1163 mvn-settings: '{mvn-settings}'
1164 mvn-version: '{mvn-version}'
1172 name: lf-infra-maven-sonar
1173 # Run a Sonar build with Maven
1176 mvn-version: '{mvn-version}'
1177 - lf-update-java-alternatives:
1178 java-version: '{java-version}'
1180 # Switch this to the sonar wrapper when JJB 2.0 is available
1181 properties-content: SONAR_HOST_URL=$SONAR_URL
1182 - lf-provide-maven-settings:
1183 global-settings-file: global-settings
1184 settings-file: '{mvn-settings}'
1185 - shell: !include-raw-escape:
1186 - ../shell/common-variables.sh
1187 - ../shell/maven-sonar.sh
1188 - lf-provide-maven-settings-cleanup
1191 name: lf-infra-maven-sonarcloud
1192 # Run a Sonar build with Maven
1195 mvn-version: '{mvn-version}'
1196 - lf-update-java-alternatives:
1197 java-version: '{java-version}'
1199 # Switch this to the sonar wrapper when JJB 2.0 is available
1200 properties-content: |
1201 SONAR_HOST_URL=https://sonarcloud.io
1202 PROJECT_KEY={sonarcloud-project-key}
1203 PROJECT_ORGANIZATION={sonarcloud-project-organization}
1204 API_TOKEN={sonarcloud-api-token}
1205 - lf-provide-maven-settings:
1206 global-settings-file: global-settings
1207 settings-file: '{mvn-settings}'
1208 - shell: !include-raw-escape:
1209 - ../shell/common-variables.sh
1210 - ../shell/maven-sonar.sh
1211 - lf-provide-maven-settings-cleanup
1214 name: '{project-name}-sonar'
1215 id: gerrit-maven-sonar
1216 <<: *lf_maven_common
1217 # yamllint disable-line rule:key-duplicates
1221 - lf-infra-gerrit-scm:
1222 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1223 git-url: '{git-url}'
1224 refspec: $GERRIT_REFSPEC
1225 branch: $GERRIT_BRANCH
1226 submodule-recursive: '{submodule-recursive}'
1227 submodule-timeout: '{submodule-timeout}'
1228 choosing-strategy: default
1231 name: '{project-name}-sonar'
1232 id: github-maven-sonar
1233 <<: *lf_maven_common
1234 # yamllint disable-line rule:key-duplicates
1238 - lf-infra-properties:
1239 build-days-to-keep: '{build-days-to-keep}'
1241 url: '{github-url}/{github-org}/{project}'
1244 - lf-infra-github-scm:
1245 url: '{git-clone-url}{github-org}/{project}'
1246 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1248 submodule-recursive: '{submodule-recursive}'
1249 submodule-timeout: '{submodule-timeout}'
1250 choosing-strategy: default
1251 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1254 - timed: '{obj:cron}'
1255 - github-pull-request:
1256 trigger-phrase: '^run-sonar$'
1257 only-trigger-phrase: true
1258 status-context: 'Maven Sonar'
1263 white-list: '{obj:github_pr_whitelist}'
1264 admin-list: '{obj:github_pr_admin_list}'
1265 white-list-target-branches:
1272 - lf_maven_verify: &lf_maven_verify
1273 name: lf-maven-verify
1275 ######################
1276 # Default parameters #
1277 ######################
1280 build-days-to-keep: 7
1283 git-url: '$GIT_URL/$PROJECT'
1284 github-url: 'https://github.com'
1285 java-version: openjdk8
1286 mvn-global-settings: global-settings
1287 mvn-goals: clean deploy
1289 mvn-params: '-Dstream=$STREAM -Dmaven.source.skip=true'
1292 submodule-recursive: true
1293 submodule-timeout: 10
1295 gerrit_verify_triggers:
1296 - patchset-created-event:
1297 exclude-drafts: true
1298 exclude-trivial-rebase: false
1299 exclude-no-code-change: false
1300 - draft-published-event
1301 - comment-added-contains-event:
1302 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1304 gerrit_trigger_file_paths:
1305 - compare-type: REG_EXP
1308 # github_included_regions MUST match gerrit_trigger_file_paths
1309 github_included_regions:
1312 #####################
1313 # Job Configuration #
1314 #####################
1317 disabled: '{disable-job}'
1320 - lf-infra-pre-build
1321 - lf-jacoco-nojava-workaround
1323 mvn-version: '{mvn-version}'
1324 - lf-update-java-alternatives:
1325 java-version: '{java-version}'
1326 - lf-provide-maven-settings:
1327 global-settings-file: '{mvn-global-settings}'
1328 settings-file: '{mvn-settings}'
1330 mvn-goals: '{mvn-goals}'
1331 - lf-provide-maven-settings-cleanup
1339 name: '{project-name}-maven-verify-{stream}-{mvn-version}-{java-version}'
1340 id: gerrit-maven-verify
1341 <<: *lf_maven_common
1342 # yamllint disable-line rule:key-duplicates
1343 <<: *lf_maven_verify
1346 - lf-infra-gerrit-scm:
1347 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1348 git-url: '{git-url}'
1349 refspec: '$GERRIT_REFSPEC'
1350 branch: '$GERRIT_BRANCH'
1351 submodule-recursive: '{submodule-recursive}'
1352 submodule-timeout: '{submodule-timeout}'
1353 choosing-strategy: gerrit
1357 server-name: '{gerrit-server-name}'
1358 trigger-on: '{obj:gerrit_verify_triggers}'
1360 - project-compare-type: ANT
1361 project-pattern: '{project}'
1363 - branch-compare-type: ANT
1364 branch-pattern: '**/{branch}'
1365 file-paths: '{obj:gerrit_trigger_file_paths}'
1368 name: '{project-name}-maven-verify-{stream}-{mvn-version}-{java-version}'
1369 id: github-maven-verify
1370 <<: *lf_maven_common
1371 # yamllint disable-line rule:key-duplicates
1372 <<: *lf_maven_verify
1375 - lf-infra-properties:
1376 build-days-to-keep: '{build-days-to-keep}'
1378 url: '{github-url}/{github-org}/{project}'
1381 - lf-infra-github-scm:
1382 url: '{git-clone-url}{github-org}/{project}'
1383 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1385 submodule-recursive: '{submodule-recursive}'
1386 submodule-timeout: '{submodule-timeout}'
1387 choosing-strategy: default
1388 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1391 - github-pull-request:
1392 trigger-phrase: '^(recheck|reverify)$'
1393 only-trigger-phrase: false
1394 status-context: 'Maven Verify'
1397 white-list-target-branches:
1399 included-regions: '{obj:github_included_regions}'
1401 ###########################
1402 # Maven Verify for Docker #
1403 ###########################
1405 - lf_maven_docker_verify: &lf_maven_docker_verify
1406 name: lf-maven-docker-verify
1409 - lf-infra-pre-build
1410 - lf-jacoco-nojava-workaround
1412 mvn-version: '{mvn-version}'
1413 - lf-update-java-alternatives:
1414 java-version: '{java-version}'
1415 - lf-infra-docker-login:
1416 global-settings-file: '{mvn-global-settings}'
1417 settings-file: '{mvn-settings}'
1418 # must provide maven settings AFTER docker due to its cleanup
1419 - lf-provide-maven-settings:
1420 global-settings-file: '{mvn-global-settings}'
1421 settings-file: '{mvn-settings}'
1423 properties-content: |
1424 CONTAINER_PULL_REGISTRY={container-public-registry}
1426 mvn-goals: '{mvn-goals}'
1427 - lf-provide-maven-settings-cleanup
1430 name: '{project-name}-maven-docker-verify-{stream}-{mvn-version}-{java-version}'
1431 id: gerrit-maven-docker-verify
1432 <<: *lf_maven_common
1433 # yamllint disable-line rule:key-duplicates
1434 <<: *lf_maven_verify
1435 # yamllint disable-line rule:key-duplicates
1436 <<: *lf_maven_docker_verify
1439 - lf-infra-gerrit-scm:
1440 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1441 git-url: '{git-url}'
1442 refspec: '$GERRIT_REFSPEC'
1443 branch: '$GERRIT_BRANCH'
1444 submodule-recursive: '{submodule-recursive}'
1445 submodule-timeout: '{submodule-timeout}'
1446 choosing-strategy: gerrit
1450 server-name: '{gerrit-server-name}'
1451 trigger-on: '{obj:gerrit_verify_triggers}'
1453 - project-compare-type: ANT
1454 project-pattern: '{project}'
1456 - branch-compare-type: ANT
1457 branch-pattern: '**/{branch}'
1458 file-paths: '{obj:gerrit_trigger_file_paths}'
1461 name: '{project-name}-maven-docker-verify-{stream}-{mvn-version}-{java-version}'
1462 id: github-maven-docker-verify
1463 <<: *lf_maven_common
1464 # yamllint disable-line rule:key-duplicates
1465 <<: *lf_maven_verify
1466 # yamllint disable-line rule:key-duplicates
1467 <<: *lf_maven_docker_verify
1470 - lf-infra-properties:
1471 build-days-to-keep: '{build-days-to-keep}'
1473 url: '{github-url}/{github-org}/{project}'
1476 - lf-infra-github-scm:
1477 url: '{git-clone-url}{github-org}/{project}'
1478 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1480 submodule-recursive: '{submodule-recursive}'
1481 submodule-timeout: '{submodule-timeout}'
1482 choosing-strategy: default
1483 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1486 - github-pull-request:
1487 trigger-phrase: '^(recheck|reverify)$'
1488 only-trigger-phrase: false
1489 status-context: 'Maven Docker Verify'
1492 white-list-target-branches:
1494 included-regions: '{obj:github_included_regions}'
1496 #############################
1497 # Maven Verify Dependencies #
1498 #############################
1500 - lf_maven_verify_dependencies: &lf_maven_verify_dependencies
1501 name: lf-maven-verify-dependencies
1503 ######################
1504 # Default parameters #
1505 ######################
1508 build-days-to-keep: 7
1511 git-url: '$GIT_URL/$PROJECT'
1512 github-url: 'https://github.com'
1513 java-version: openjdk8
1514 mvn-global-settings: global-settings
1515 mvn-goals: clean deploy
1517 mvn-params: '-Dstream=$STREAM'
1520 submodule-recursive: true
1521 submodule-timeout: 10
1523 gerrit_verify_triggers:
1524 - comment-added-contains-event:
1525 comment-contains-value: 'recheck: [0-9 ]+'
1526 gerrit_trigger_file_paths:
1530 #####################
1531 # Job Configuration #
1532 #####################
1535 disabled: '{disable-job}'
1538 - lf-infra-pre-build
1539 - lf-jacoco-nojava-workaround
1541 mvn-version: '{mvn-version}'
1542 - lf-update-java-alternatives:
1543 java-version: '{java-version}'
1544 - lf-provide-maven-settings:
1545 global-settings-file: '{mvn-global-settings}'
1546 settings-file: '{mvn-settings}'
1547 - lf-fetch-dependent-patches
1548 - shell: !include-raw-escape:
1549 - ../shell/common-variables.sh
1550 - ../shell/maven-build-deps.sh
1552 mvn-goals: '{mvn-goals}'
1553 - lf-provide-maven-settings-cleanup
1561 name: '{project-name}-maven-verify-deps-{stream}-{mvn-version}-{java-version}'
1562 id: gerrit-maven-verify-dependencies
1563 <<: *lf_maven_common
1564 # yamllint disable-line rule:key-duplicates
1565 <<: *lf_maven_verify_dependencies
1568 - lf-infra-gerrit-scm:
1569 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1570 git-url: '{git-url}'
1571 refspec: '$GERRIT_REFSPEC'
1572 branch: '$GERRIT_BRANCH'
1573 submodule-recursive: '{submodule-recursive}'
1574 submodule-timeout: '{submodule-timeout}'
1575 choosing-strategy: gerrit
1579 server-name: '{gerrit-server-name}'
1580 trigger-on: '{obj:gerrit_verify_triggers}'
1582 - project-compare-type: ANT
1583 project-pattern: '{project}'
1585 - branch-compare-type: ANT
1586 branch-pattern: '**/{branch}'
1587 file-paths: '{obj:gerrit_trigger_file_paths}'