Migrate Maven Merge job to global-jjb
[releng/global-jjb.git] / jjb / lf-maven-jobs.yaml
1 ---
2 # This file contains job templates for Maven projects.
3
4 - job-group:
5     name: '{project-name}-maven-jobs'
6
7     # This job group contains all the recommended jobs that should be deployed
8     # for any project ci.
9
10     # TODO: Add Maven Merge job to this list once it's been fully tested.
11     jobs:
12       - gerrit-maven-clm
13       - gerrit-maven-release
14       - gerrit-maven-verify
15       - gerrit-maven-verify-dependencies
16
17 - job-group:
18     name: '{project-name}-github-maven-jobs'
19
20     # This job group contains all the recommended jobs that should be deployed
21     # for any project ci that is using github.
22
23     # TODO: Add Maven Merge job to this list once it's been fully tested.
24     jobs:
25       - github-maven-clm
26       - github-maven-release
27       - github-maven-verify
28
29 - job-group:
30     name: '{project-name}-maven-javadoc-jobs'
31
32     # This job group contains all the recommended jobs that should be deployed
33     # for any project ci.
34
35     jobs:
36       - gerrit-maven-javadoc-publish
37       - gerrit-maven-javadoc-verify
38
39 - job-group:
40     name: '{project-name}-github-maven-javadoc-jobs'
41
42     # This job group contains all the recommended jobs that should be deployed
43     # for any project ci.
44
45     jobs:
46       - github-maven-javadoc-publish
47       - github-maven-javadoc-verify
48
49 ####################
50 # COMMON FUNCTIONS #
51 ####################
52
53 - lf_maven_common: &lf_maven_common
54     name: lf-maven-common
55
56     project-type: freestyle
57     node: '{build-node}'
58     jdk: '{java-version}'
59
60     properties:
61       - lf-infra-properties:
62           build-days-to-keep: '{build-days-to-keep}'
63
64     parameters:
65       - lf-infra-parameters:
66           project: '{project}'
67           branch: '{branch}'
68           stream: '{stream}'
69           lftools-version: '{lftools-version}'
70       - lf-infra-maven-parameters:
71           mvn-opts: '{mvn-opts}'
72           mvn-params: '{mvn-params}'
73           mvn-version: '{mvn-version}'
74           # Staging repos do not make sense for CLM jobs so set it blank.
75           staging-profile-id: '{staging-profile-id}'
76       - string:
77           name: ARCHIVE_ARTIFACTS
78           default: '{archive-artifacts}'
79           description: Artifacts to archive to the logs server.
80
81     wrappers:
82       - lf-infra-wrappers:
83           build-timeout: '{build-timeout}'
84           jenkins-ssh-credential: '{jenkins-ssh-credential}'
85
86     publishers:
87       # TODO: Make email notification work.
88       # - lf-infra-email-notify:
89       #     email-recipients: '{email-recipients}'
90       #     email-prefix: '[releng]'
91       - lf-infra-publish
92
93 #############
94 # Maven CLM #
95 #############
96
97 - lf_maven_clm: &lf_maven_clm
98     name: lf-maven-clm
99
100     ######################
101     # Default parameters #
102     ######################
103
104     archive-artifacts: ''
105     branch: master
106     build-days-to-keep: 30  # 30 days for troubleshooting purposes
107     build-timeout: 15
108     git-url: '$GIT_URL/$PROJECT'
109     java-version: openjdk8
110     mvn-global-settings: global-settings
111     mvn-opts: ''
112     mvn-params: ''
113     mvn-version: mvn33
114     staging-profile-id: ''  # Unused in this job
115     stream: master
116     submodule-recursive: true
117
118     #####################
119     # Job Configuration #
120     #####################
121
122     triggers:
123       # Build weekly on Saturdays
124       - timed: 'H H * * 6'
125
126     builders:
127       - lf-maven-install:
128           mvn-version: '{mvn-version}'
129       - lf-provide-maven-settings:
130           global-settings-file: '{mvn-global-settings}'
131           settings-file: '{mvn-settings}'
132       - shell: !include-raw-escape:
133           - ../shell/common-variables.sh
134           - ../shell/sonatype-clm.sh
135       - lf-provide-maven-settings-cleanup
136       - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
137       - sonatype-clm:
138           application-name: '{project-name}'
139
140 - job-template:
141     name: '{project-name}-maven-clm-{stream}'
142     id: gerrit-maven-clm
143     <<: *lf_maven_common
144     # yamllint disable-line rule:key-duplicates
145     <<: *lf_maven_clm
146
147     scm:
148       - lf-infra-gerrit-scm:
149           jenkins-ssh-credential: '{jenkins-ssh-credential}'
150           git-url: '{git-url}'
151           refspec: '$GERRIT_REFSPEC'
152           branch: '$GERRIT_BRANCH'
153           submodule-recursive: '{submodule-recursive}'
154           choosing-strategy: default
155
156 - job-template:
157     name: '{project-name}-maven-clm-{stream}'
158     id: github-maven-clm
159     <<: *lf_maven_common
160     # yamllint disable-line rule:key-duplicates
161     <<: *lf_maven_clm
162
163     properties:
164       - github:
165           url: '{git-url}/{github-org}/{project}'
166
167     scm:
168       - lf-infra-github-scm:
169           url: '{git-clone-url}{github-org}/{project}'
170           refspec: ''
171           branch: 'refs/heads/{branch}'
172           submodule-recursive: '{submodule-recursive}'
173           choosing-strategy: default
174           jenkins-ssh-credential: '{jenkins-ssh-credential}'
175
176 #########################
177 # Maven Javadoc Publish #
178 #########################
179
180 - lf_maven_javadoc_publish: &lf_maven_javadoc_publish
181     name: lf-maven-javadoc-publish
182
183     ######################
184     # Default parameters #
185     ######################
186
187     archive-artifacts: ''
188     branch: master
189     build-days-to-keep: 30  # 30 days in case a release takes long to get approved.
190     build-timeout: 30
191     git-url: '$GIT_URL/$PROJECT'
192     java-version: openjdk8
193     mvn-global-settings: global-settings
194     mvn-opts: ''
195     mvn-params: ''
196     mvn-version: mvn33
197     staging-profile-id: ''  # Unused by the javadoc jobs
198     stream: master
199     submodule-recursive: true
200
201     gerrit_merge_triggers:
202       - change-merged-event
203       - comment-added-contains-event:
204           comment-contains-value: remerge$
205
206     #####################
207     # Job Configuration #
208     #####################
209
210     builders:
211       - lf-maven-install:
212           mvn-version: '{mvn-version}'
213       - lf-provide-maven-settings:
214           global-settings-file: '{mvn-global-settings}'
215           settings-file: '{mvn-settings}'
216       - lf-infra-create-netrc:
217           server-id: '{mvn-site-id}'
218       - inject:
219           properties-content: 'DEPLOY_PATH={javadoc-path}'
220       - shell: !include-raw-escape:
221           - ../shell/common-variables.sh
222           - ../shell/maven-javadoc-generate.sh
223           - ../shell/lftools-install.sh
224           - ../shell/maven-javadoc-publish.sh
225       - lf-provide-maven-settings-cleanup
226
227 - job-template:
228     name: '{project-name}-maven-javadoc-publish-{stream}'
229     id: gerrit-maven-javadoc-publish
230     <<: *lf_maven_common
231     # yamllint disable-line rule:key-duplicates
232     <<: *lf_maven_javadoc_publish
233
234     git-url: '$GIT_URL/$GERRIT_PROJECT'
235
236     scm:
237       - lf-infra-gerrit-scm:
238           git-url: '{git-url}'
239           refspec: ''
240           branch: '{branch}'
241           submodule-recursive: '{submodule-recursive}'
242           choosing-strategy: default
243           jenkins-ssh-credential: '{jenkins-ssh-credential}'
244
245     triggers:
246       - gerrit:
247           server-name: '{gerrit-server-name}'
248           trigger-on: '{obj:gerrit_merge_triggers}'
249           projects:
250             - project-compare-type: ANT
251               project-pattern: '{project}'
252               branches:
253                 - branch-compare-type: ANT
254                   branch-pattern: '**/{branch}'
255
256 - job-template:
257     name: '{project-name}-maven-javadoc-publish-{stream}'
258     id: github-maven-javadoc-publish
259     <<: *lf_maven_common
260     # yamllint disable-line rule:key-duplicates
261     <<: *lf_maven_javadoc_publish
262
263     properties:
264       - github:
265           url: '{git-url}/{github-org}/{project}'
266
267     scm:
268       - lf-infra-github-scm:
269           url: '{git-clone-url}{github-org}/{project}'
270           refspec: ''
271           branch: '{branch}'
272           submodule-recursive: '{submodule-recursive}'
273           choosing-strategy: default
274           jenkins-ssh-credential: '{jenkins-ssh-credential}'
275
276     triggers:
277       - github
278       - pollscm:
279           cron: ''
280       - lf-infra-github-pr-trigger:
281           trigger-phrase: '^remerge$'
282           only-trigger-phrase: true
283           status-context: 'JJB Merge'
284           permit-all: false
285           github-hooks: true
286           github-org: '{github-org}'
287           github_pr_whitelist: '{obj:github_pr_whitelist}'
288           github_pr_admin_list: '{obj:github_pr_admin_list}'
289
290 ########################
291 # Maven Javadoc Verify #
292 ########################
293
294 - lf_maven_javadoc_verify: &lf_maven_javadoc_verify
295     name: lf-maven-javadoc-verify
296
297     ######################
298     # Default parameters #
299     ######################
300
301     archive-artifacts: ''
302     branch: master
303     build-days-to-keep: 30  # 30 days in case a release takes long to get approved.
304     build-timeout: 30
305     git-url: '$GIT_URL/$PROJECT'
306     java-version: openjdk8
307     mvn-global-settings: global-settings
308     mvn-opts: ''
309     mvn-params: ''
310     mvn-version: mvn33
311     staging-profile-id: ''  # Unused by the javadoc jobs
312     stream: master
313     submodule-recursive: true
314
315     gerrit_verify_triggers:
316       - patchset-created-event:
317           exclude-drafts: true
318           exclude-trivial-rebase: false
319           exclude-no-code-change: false
320       - draft-published-event
321       - comment-added-contains-event:
322           comment-contains-value: recheck$
323
324     #####################
325     # Job Configuration #
326     #####################
327
328     concurrent: true
329
330     builders:
331       - lf-maven-install:
332           mvn-version: '{mvn-version}'
333       - lf-provide-maven-settings:
334           global-settings-file: '{mvn-global-settings}'
335           settings-file: '{mvn-settings}'
336       - shell: !include-raw-escape:
337           - ../shell/common-variables.sh
338           - ../shell/maven-javadoc-generate.sh
339       - lf-provide-maven-settings-cleanup
340
341 - job-template:
342     name: '{project-name}-maven-javadoc-verify-{stream}'
343     id: gerrit-maven-javadoc-verify
344     <<: *lf_maven_common
345     # yamllint disable-line rule:key-duplicates
346     <<: *lf_maven_javadoc_verify
347
348     scm:
349       - lf-infra-gerrit-scm:
350           jenkins-ssh-credential: '{jenkins-ssh-credential}'
351           git-url: '{git-url}'
352           refspec: '$GERRIT_REFSPEC'
353           branch: '$GERRIT_BRANCH'
354           submodule-recursive: '{submodule-recursive}'
355           choosing-strategy: gerrit
356
357     triggers:
358       - gerrit:
359           server-name: '{gerrit-server-name}'
360           trigger-on: '{obj:gerrit_verify_triggers}'
361           projects:
362             - project-compare-type: ANT
363               project-pattern: '{project}'
364               branches:
365                 - branch-compare-type: ANT
366                   branch-pattern: '**/{branch}'
367
368 - job-template:
369     name: '{project-name}-maven-javadoc-verify-{stream}'
370     id: github-maven-javadoc-verify
371     <<: *lf_maven_common
372     # yamllint disable-line rule:key-duplicates
373     <<: *lf_maven_javadoc_verify
374
375     properties:
376       - github:
377           url: '{git-url}/{github-org}/{project}'
378
379     scm:
380       - lf-infra-github-scm:
381           url: '{git-clone-url}{github-org}/{project}'
382           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
383           branch: '$sha1'
384           submodule-recursive: '{submodule-recursive}'
385           choosing-strategy: default
386           jenkins-ssh-credential: '{jenkins-ssh-credential}'
387
388     triggers:
389       - lf-infra-github-pr-trigger:
390           trigger-phrase: '^recheck$'
391           only-trigger-phrase: true
392           status-context: 'Maven Javadoc'
393           permit-all: true
394           github-hooks: true
395           github-org: ''
396           github_pr_whitelist:
397             - ''
398           github_pr_admin_list:
399             - ''
400
401 ###############
402 # Maven Merge #
403 ###############
404
405 - lf_maven_merge: &lf_maven_merge
406     name: lf-maven-merge
407
408     ######################
409     # Default parameters #
410     ######################
411
412     archive-artifacts: ''
413     branch: master
414     build-days-to-keep: 30  # 30 days in case we need to troubleshoot
415     build-timeout: 30
416     cron: ''
417     git-url: '$GIT_URL/$PROJECT'
418     java-version: openjdk8
419     mvn-global-settings: global-settings
420     mvn-opts: ''
421     mvn-params: '-Dmerge'
422     mvn-version: mvn33
423     nexus-cut-dirs: 6  # Number of dirs in the Nexus path to remove for wget -r.
424     staging-profile-id: ''  # Unused by this job.
425     stream: master
426     submodule-recursive: true
427
428     gerrit_merge_triggers:
429       - change-merged-event
430       - comment-added-contains-event:
431           comment-contains-value: remerge$
432
433     gerrit_trigger_file_paths:
434       - compare-type: ANT
435         pattern: '**'
436
437     post_build_trigger: ''
438
439     #####################
440     # Job Configuration #
441     #####################
442
443     builders:
444       - lf-jacoco-nojava-workaround
445       - lf-maven-install:
446           mvn-version: '{mvn-version}'
447       - lf-provide-maven-settings:
448           global-settings-file: '{mvn-global-settings}'
449           settings-file: '{mvn-settings}'
450       - lf-infra-create-netrc:
451           server-id: '{mvn-snapshot-id}'
452       - inject:
453           properties-content: |
454               NEXUS_CUT_DIRS={nexus-cut-dirs}
455               NEXUS_REPO={nexus-snapshot-repo}
456       - shell: !include-raw-escape:
457           - ../shell/lftools-install.sh
458           - ../shell/common-variables.sh
459           - ../shell/maven-fetch-metadata.sh
460           - ../shell/maven-build.sh
461           - ../shell/maven-deploy.sh
462       - lf-provide-maven-settings-cleanup
463
464     publishers:
465       - findbugs
466       - lf-jacoco-report
467       - lf-infra-publish
468       - trigger-parameterized-builds: '{obj:post_build_trigger}'
469
470 - job-template:
471     name: '{project-name}-maven-merge-{stream}'
472     id: gerrit-maven-merge
473     <<: *lf_maven_common
474     # yamllint disable-line rule:key-duplicates
475     <<: *lf_maven_merge
476
477     scm:
478       - lf-infra-gerrit-scm:
479           jenkins-ssh-credential: '{jenkins-ssh-credential}'
480           git-url: '{git-url}'
481           refspec: '$GERRIT_REFSPEC'
482           branch: '$GERRIT_BRANCH'
483           submodule-recursive: '{submodule-recursive}'
484           choosing-strategy: default
485
486     triggers:
487       - timed: 'H H * * 0'
488       - gerrit:
489           server-name: '{gerrit-server-name}'
490           trigger-on: '{obj:gerrit_merge_triggers}'
491           projects:
492             - project-compare-type: ANT
493               project-pattern: '{project}'
494               branches:
495                 - branch-compare-type: ANT
496                   branch-pattern: '**/{branch}'
497               file-paths: '{obj:gerrit_trigger_file_paths}'
498
499 - job-template:
500     name: '{project-name}-maven-merge-{stream}'
501     id: github-maven-merge
502     <<: *lf_maven_common
503     # yamllint disable-line rule:key-duplicates
504     <<: *lf_maven_merge
505
506     properties:
507       - github:
508           url: '{git-url}/{github-org}/{project}'
509
510     scm:
511       - lf-infra-github-scm:
512           url: '{git-clone-url}{github-org}/{project}'
513           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
514           branch: '{branch}'
515           submodule-recursive: '{submodule-recursive}'
516           choosing-strategy: default
517           jenkins-ssh-credential: '{jenkins-ssh-credential}'
518
519     triggers:
520       - lf-infra-github-pr-trigger:
521           trigger-phrase: '^remerge$'
522           only-trigger-phrase: false
523           status-context: 'Maven Merge'
524           permit-all: true
525           github-hooks: true
526           github-org: ''
527           github_pr_whitelist:
528             - ''
529           github_pr_admin_list:
530             - ''
531
532 #################
533 # Maven Release #
534 #################
535
536 - lf_maven_release: &lf_maven_release
537     name: lf-maven-release
538
539     ######################
540     # Default parameters #
541     ######################
542
543     archive-artifacts: ''
544     branch: master
545     build-days-to-keep: 30  # 30 days in case a release takes long to get approved.
546     build-timeout: 30
547     cron: ''
548     git-url: '$GIT_URL/$PROJECT'
549     java-version: openjdk8
550     mvn-global-settings: global-settings
551     mvn-opts: ''
552     mvn-params: ''
553     mvn-version: mvn33
554     stream: master
555     submodule-recursive: true
556
557     gerrit_release_triggers:
558       - comment-added-contains-event:
559           comment-contains-value: build release$
560
561     #####################
562     # Job Configuration #
563     #####################
564
565     builders:
566       - lf-jacoco-nojava-workaround
567       - lf-maven-install:
568           mvn-version: '{mvn-version}'
569       - lf-provide-maven-settings:
570           global-settings-file: '{mvn-global-settings}'
571           settings-file: '{mvn-settings}'
572       - lf-infra-create-netrc:
573           server-id: '{mvn-staging-id}'
574       - shell: !include-raw-escape:
575           - ../shell/lftools-install.sh
576           - ../shell/common-variables.sh
577           - ../shell/maven-patch-release.sh
578           - ../shell/maven-build.sh
579           - ../shell/maven-stage.sh
580       - lf-provide-maven-settings-cleanup
581
582 - job-template:
583     name: '{project-name}-maven-release-{stream}'
584     id: gerrit-maven-release
585     <<: *lf_maven_common
586     # yamllint disable-line rule:key-duplicates
587     <<: *lf_maven_release
588
589     scm:
590       - lf-infra-gerrit-scm:
591           jenkins-ssh-credential: '{jenkins-ssh-credential}'
592           git-url: '{git-url}'
593           refspec: '$GERRIT_REFSPEC'
594           branch: '$GERRIT_BRANCH'
595           submodule-recursive: '{submodule-recursive}'
596           choosing-strategy: default
597
598     triggers:
599       - timed: '{obj:cron}'
600       - gerrit:
601           server-name: '{gerrit-server-name}'
602           trigger-on: '{obj:gerrit_release_triggers}'
603           projects:
604             - project-compare-type: ANT
605               project-pattern: '{project}'
606               branches:
607                 - branch-compare-type: ANT
608                   branch-pattern: '**/{branch}'
609
610 - job-template:
611     name: '{project-name}-maven-release-{stream}'
612     id: github-maven-release
613     <<: *lf_maven_common
614     # yamllint disable-line rule:key-duplicates
615     <<: *lf_maven_release
616
617     properties:
618       - github:
619           url: '{git-url}/{github-org}/{project}'
620
621     scm:
622       - lf-infra-github-scm:
623           url: '{git-clone-url}{github-org}/{project}'
624           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
625           branch: '{branch}'
626           submodule-recursive: '{submodule-recursive}'
627           choosing-strategy: default
628           jenkins-ssh-credential: '{jenkins-ssh-credential}'
629
630     triggers:
631       - timed: '{obj:cron}'
632       - lf-infra-github-pr-trigger:
633           trigger-phrase: '^build release$'
634           only-trigger-phrase: true
635           status-context: 'Maven Release'
636           permit-all: true
637           github-hooks: true
638           github-org: ''
639           github_pr_whitelist:
640             - ''
641           github_pr_admin_list:
642             - ''
643
644 ###############
645 # Maven Sonar #
646 ###############
647
648 - lf_maven_sonar: &lf_maven_sonar
649     name: lf-maven-sonar
650
651     ######################
652     # Default parameters #
653     ######################
654
655     archive-artifacts: ''
656     branch: master  # Sonar should always be run on master branch
657     build-days-to-keep: 7
658     build-timeout: 30
659     git-url: '$GIT_URL/$PROJECT'
660     java-version: openjdk8
661     mvn-global-settings: global-settings
662     mvn-opts: ''
663     mvn-params: ''
664     mvn-version: mvn33
665     staging-profile-id: ''  # Unused in this job
666     stream: master
667     submodule-recursive: true
668
669     gerrit_sonar_triggers:
670       - comment-added-contains-event:
671           comment-contains-value: run-sonar$
672
673     #####################
674     # Job Configuration #
675     #####################
676
677     triggers:
678       - timed: 'H H * * 6'
679       - gerrit:
680           server-name: '{gerrit-server-name}'
681           trigger-on: '{obj:gerrit_sonar_triggers}'
682           projects:
683             - project-compare-type: 'ANT'
684               project-pattern: '{project}'
685               branches:
686                 - branch-compare-type: 'ANT'
687                   branch-pattern: '**/master'
688           skip-vote:
689             successful: true
690             failed: true
691             unstable: true
692             notbuilt: true
693
694     builders:
695       - lf-infra-maven-sonar:
696           mvn-settings: '{mvn-settings}'
697           mvn-version: '{mvn-version}'
698
699     publishers:
700       - lf-jacoco-report
701       - findbugs
702       - lf-infra-publish
703
704 - builder:
705     name: lf-infra-maven-sonar
706     # Run a Sonar build with Maven
707     builders:
708       - lf-maven-install:
709           mvn-version: '{mvn-version}'
710       - inject:
711           # Switch this to the sonar wrapper when JJB 2.0 is available
712           properties-content: |
713               SONAR_HOST_URL=$SONAR_URL
714               SONAR_MAVEN_GOAL=sonar:sonar
715       - lf-provide-maven-settings:
716           global-settings-file: global-settings
717           settings-file: '{mvn-settings}'
718       - shell: !include-raw-escape:
719           - ../shell/common-variables.sh
720           - ../shell/maven-sonar.sh
721       - lf-provide-maven-settings-cleanup
722
723 - job-template:
724     name: '{project-name}-sonar'
725     id: gerrit-maven-sonar
726     <<: *lf_maven_common
727     # yamllint disable-line rule:key-duplicates
728     <<: *lf_maven_sonar
729
730     scm:
731       - lf-infra-gerrit-scm:
732           jenkins-ssh-credential: '{jenkins-ssh-credential}'
733           git-url: '{git-url}'
734           refspec: $GERRIT_REFSPEC
735           branch: $GERRIT_BRANCH
736           submodule-recursive: '{submodule-recursive}'
737           choosing-strategy: default
738
739 - job-template:
740     name: '{project-name}-sonar'
741     id: github-maven-sonar
742     <<: *lf_maven_common
743     # yamllint disable-line rule:key-duplicates
744     <<: *lf_maven_sonar
745
746     properties:
747       - github:
748           url: '{git-url}/{github-org}/{project}'
749
750     scm:
751       - lf-infra-github-scm:
752           url: '{git-clone-url}{github-org}/{project}'
753           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
754           branch: '$sha1'
755           submodule-recursive: '{submodule-recursive}'
756           choosing-strategy: default
757           jenkins-ssh-credential: '{jenkins-ssh-credential}'
758
759     triggers:
760       - lf-infra-github-pr-trigger:
761           trigger-phrase: '^recheck$'
762           only-trigger-phrase: false
763           status-context: 'Maven Verify'
764           permit-all: true
765           github-hooks: true
766           github-org: ''
767           github_pr_whitelist:
768             - ''
769           github_pr_admin_list:
770             - ''
771
772 ################
773 # Maven Verify #
774 ################
775
776 - lf_maven_verify: &lf_maven_verify
777     name: lf-maven-verify
778
779     ######################
780     # Default parameters #
781     ######################
782
783     archive-artifacts: ''
784     branch: master
785     build-days-to-keep: 7
786     build-timeout: 60
787     git-url: '$GIT_URL/$PROJECT'
788     java-version: openjdk8
789     mvn-global-settings: global-settings
790     mvn-opts: ''
791     mvn-params: '-Dstream=$STREAM'
792     mvn-version: mvn33
793     staging-profile-id: ''  # Unused in this job
794     stream: master
795     submodule-recursive: true
796
797     gerrit_verify_triggers:
798       - patchset-created-event:
799           exclude-drafts: true
800           exclude-trivial-rebase: false
801           exclude-no-code-change: false
802       - draft-published-event
803       - comment-added-contains-event:
804           comment-contains-value: recheck$
805     gerrit_trigger_file_paths:
806       - compare-type: ANT
807         pattern: '**'
808
809     #####################
810     # Job Configuration #
811     #####################
812
813     concurrent: true
814
815     builders:
816       - lf-jacoco-nojava-workaround
817       - lf-maven-install:
818           mvn-version: '{mvn-version}'
819       - lf-provide-maven-settings:
820           global-settings-file: '{mvn-global-settings}'
821           settings-file: '{mvn-settings}'
822       - shell: !include-raw-escape:
823           - ../shell/lftools-install.sh
824           - ../shell/common-variables.sh
825           - ../shell/maven-build.sh
826       - lf-provide-maven-settings-cleanup
827
828     publishers:
829       - findbugs
830       - lf-jacoco-report
831       - lf-infra-publish
832
833 - job-template:
834     name: '{project-name}-maven-verify-{stream}-{mvn-version}-{java-version}'
835     id: gerrit-maven-verify
836     <<: *lf_maven_common
837     # yamllint disable-line rule:key-duplicates
838     <<: *lf_maven_verify
839
840     scm:
841       - lf-infra-gerrit-scm:
842           jenkins-ssh-credential: '{jenkins-ssh-credential}'
843           git-url: '{git-url}'
844           refspec: '$GERRIT_REFSPEC'
845           branch: '$GERRIT_BRANCH'
846           submodule-recursive: '{submodule-recursive}'
847           choosing-strategy: gerrit
848
849     triggers:
850       - gerrit:
851           server-name: '{gerrit-server-name}'
852           trigger-on: '{obj:gerrit_verify_triggers}'
853           projects:
854             - project-compare-type: ANT
855               project-pattern: '{project}'
856               branches:
857                 - branch-compare-type: ANT
858                   branch-pattern: '**/{branch}'
859               file-paths: '{obj:gerrit_trigger_file_paths}'
860
861 - job-template:
862     name: '{project-name}-maven-verify-{stream}-{mvn-version}-{java-version}'
863     id: github-maven-verify
864     <<: *lf_maven_common
865     # yamllint disable-line rule:key-duplicates
866     <<: *lf_maven_verify
867
868     properties:
869       - github:
870           url: '{git-url}/{github-org}/{project}'
871
872     scm:
873       - lf-infra-github-scm:
874           url: '{git-clone-url}{github-org}/{project}'
875           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
876           branch: '$sha1'
877           submodule-recursive: '{submodule-recursive}'
878           choosing-strategy: default
879           jenkins-ssh-credential: '{jenkins-ssh-credential}'
880
881     triggers:
882       - lf-infra-github-pr-trigger:
883           trigger-phrase: '^recheck$'
884           only-trigger-phrase: false
885           status-context: 'Maven Verify'
886           permit-all: true
887           github-hooks: true
888           github-org: ''
889           github_pr_whitelist:
890             - ''
891           github_pr_admin_list:
892             - ''
893
894 #############################
895 # Maven Verify Dependencies #
896 #############################
897
898 - lf_maven_verify_dependencies: &lf_maven_verify_dependencies
899     name: lf-maven-verify-dependencies
900
901     ######################
902     # Default parameters #
903     ######################
904
905     archive-artifacts: ''
906     branch: master
907     build-days-to-keep: 7
908     build-timeout: 60
909     git-url: '$GIT_URL/$PROJECT'
910     java-version: openjdk8
911     mvn-global-settings: global-settings
912     mvn-opts: ''
913     mvn-params: '-Dstream=$STREAM'
914     mvn-version: mvn33
915     staging-profile-id: ''  # Unused by this job
916     stream: master
917     submodule-recursive: true
918
919     gerrit_verify_triggers:
920       - comment-added-contains-event:
921           comment-contains-value: 'recheck: [0-9 ]+'
922     gerrit_trigger_file_paths:
923       - compare-type: ANT
924         pattern: '**'
925
926     #####################
927     # Job Configuration #
928     #####################
929
930     concurrent: true
931
932     builders:
933       - lf-jacoco-nojava-workaround
934       - lf-maven-install:
935           mvn-version: '{mvn-version}'
936       - lf-provide-maven-settings:
937           global-settings-file: '{mvn-global-settings}'
938           settings-file: '{mvn-settings}'
939       - lf-fetch-dependent-patches
940       - shell: !include-raw-escape:
941           - ../shell/common-variables.sh
942           - ../shell/maven-build-deps.sh
943       - shell: !include-raw-escape:
944           - ../shell/common-variables.sh
945           - ../shell/maven-build.sh
946       - lf-provide-maven-settings-cleanup
947
948     publishers:
949       - findbugs
950       - lf-jacoco-report
951       - lf-infra-publish
952
953 - job-template:
954     name: '{project-name}-maven-verify-deps-{stream}-{mvn-version}-{java-version}'
955     id: gerrit-maven-verify-dependencies
956     <<: *lf_maven_common
957     # yamllint disable-line rule:key-duplicates
958     <<: *lf_maven_verify_dependencies
959
960     scm:
961       - lf-infra-gerrit-scm:
962           jenkins-ssh-credential: '{jenkins-ssh-credential}'
963           git-url: '{git-url}'
964           refspec: '$GERRIT_REFSPEC'
965           branch: '$GERRIT_BRANCH'
966           submodule-recursive: '{submodule-recursive}'
967           choosing-strategy: gerrit
968
969     triggers:
970       - gerrit:
971           server-name: '{gerrit-server-name}'
972           trigger-on: '{obj:gerrit_verify_triggers}'
973           projects:
974             - project-compare-type: ANT
975               project-pattern: '{project}'
976               branches:
977                 - branch-compare-type: ANT
978                   branch-pattern: '**/{branch}'
979               file-paths: '{obj:gerrit_trigger_file_paths}'