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