Merge "Remove VID Casablanca Jenkins jobs"
[ci-management.git] / jjb / global-templates-java.yaml
1 ---
2 - job-template: &verify_java_defaults
3     # Job template for Java verify jobs
4     #
5     # The purpose of this job template is to run:
6     # 1. maven clean install
7     #
8     # Required Variables:
9     #     branch:    git branch (eg. stable/lithium or master)
10
11     name: '{project-name}-{stream}-verify-java'
12
13     project-type: freestyle
14     concurrent: true
15     node: '{build-node}'
16     pattern: '**'
17     pom:
18
19     properties:
20       - infra-properties:
21           build-days-to-keep: '{build-days-to-keep}'
22
23     parameters:
24       - infra-parameters:
25           project: '{project}'
26           branch: '{branch}'
27           refspec: 'refs/heads/{branch}'
28           artifacts: '{archive-artifacts}'
29       - maven-exec:
30           maven-version: '{maven-version}'
31       - maven-params:
32           mvn-params: '{mvn-params}'
33
34     scm:
35       - gerrit-trigger-scm:
36           refspec: '$GERRIT_REFSPEC'
37           choosing-strategy: 'gerrit'
38           submodule-recursive: '{submodule-recursive}'
39
40     wrappers:
41       - infra-wrappers:
42           build-timeout: '{build-timeout}'
43
44     triggers:
45       - gerrit-trigger-patch-submitted:
46           server: '{server-name}'
47           project: '{project}'
48           branch: '{branch}'
49           files: '{obj:pattern}'
50
51     builders:
52       - lf-infra-pre-build
53       - provide-maven-settings:
54           global-settings-file: 'global-settings'
55           settings-file: '{mvn-settings}'
56       - maven-target:
57           maven-version: '{maven-version}'
58           pom: '{obj:pom}'
59           goals: 'clean install -B
60             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn {mvn-params}'
61           settings: '{mvn-settings}'
62           settings-type: cfp
63           global-settings: 'global-settings'
64           global-settings-type: cfp
65
66     publishers:
67       - infra-shiplogs:
68           maven-version: '{maven-version}'
69
70 - job-template:
71     # Job template for Java verify jobs running checkstyle at the end
72     # When checkstyle will be fully incorporated, it is meant to replace
73     #  '{project-name}-{stream}-verify-java-checkstyle'
74     #
75     # The purpose of this job template is to run:
76     # 1. maven clean install
77     #
78     # This job publishes checkstyle results.
79     #
80     # Required Variables:
81     #     branch:    git branch (eg. stable/lithium or master)
82
83     <<: *verify_java_defaults
84     name: '{project-name}-{stream}-verify-java-checkstyle'
85     publishers:
86       - infra-shiplogs:
87           maven-version: '{maven-version}'
88       - checkstyle-result
89
90 - job-template:
91     # Job template for Java verify jobs with POM not at the root
92     #
93     # The purpose of this job template is to run:
94     # 1. maven clean install
95     #
96     # This job supports subprojects.
97     #
98     # Required Variables:
99     #     branch:    git branch (eg. stable/lithium or master)
100     #     pom:       name/location of the pom.xml file relative to the workspace
101     #     pattern:   ant file-path pattern relative to the workspace used to
102     #                trigger the job
103
104     <<: *verify_java_defaults
105     name: '{project-name}-{stream}-{subproject}-verify-java'
106
107 - job-template:
108     # Job template for Java daily release jobs
109     #
110     # The purpose of this job template is to run:
111     # 1. maven clean deploy with Sonar scans
112     #
113     # Required Variables:
114     #     branch:    git branch (eg. stable/lithium or master)
115
116     name: '{project-name}-{stream}-release-java-daily'
117
118     project-type: freestyle
119     node: '{build-node}'
120     disabled: '{disabled}'
121     maven-deploy-properties:
122     properties:
123       - infra-properties:
124           build-days-to-keep: '{build-days-to-keep}'
125
126     parameters:
127       - infra-parameters:
128           project: '{project}'
129           branch: '{branch}'
130           refspec: 'refs/heads/{branch}'
131           artifacts: '{archive-artifacts}'
132       - maven-exec:
133           maven-version: '{maven-version}'
134
135     scm:
136       - gerrit-trigger-scm:
137           refspec: ''
138           choosing-strategy: 'default'
139           submodule-recursive: '{submodule-recursive}'
140
141     wrappers:
142       - infra-wrappers:
143           build-timeout: '{build-timeout}'
144
145     triggers:
146       # 11 AM UTC
147       - timed: '@daily'
148       - gerrit-trigger-release-manually:
149           server: '{server-name}'
150           project: '{project}'
151           branch: '{branch}'
152
153     builders:
154       - lf-infra-pre-build
155       - provide-maven-settings:
156           global-settings-file: 'global-settings'
157           settings-file: '{mvn-settings}'
158
159       - maven-target:
160           maven-version: '{maven-version}'
161           goals: 'clean deploy -B
162             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
163           properties:
164             - '{maven-deploy-properties}'
165           java-opts:
166             - '-Xmx4096m -XX:MaxPermSize=512m'
167           settings: '{mvn-settings}'
168           settings-type: cfp
169           global-settings: 'global-settings'
170           global-settings-type: cfp
171
172     publishers:
173       - infra-shiplogs:
174           maven-version: '{maven-version}'
175
176 - job-template:
177     # Job template for Java daily release jobs running checkstyle at the end
178     # When checkstyle will be fully incorporated, it is meant to replace
179     #  '{project-name}-{stream}-release-java-daily'
180     #
181     # The purpose of this job template is to run:
182     # 1. maven clean deploy with Sonar scans
183     #
184     # This job publishes checkstyle results.
185     # This job uses a conditional regex match step to set versions.
186     #
187     # Required Variables:
188     #     branch:    git branch (eg. stable/lithium or master)
189
190     name: '{project-name}-{stream}-release-java-daily-checkstyle'
191     project-type: freestyle
192     node: '{build-node}'
193     disabled: '{disabled}'
194     maven-deploy-properties:
195     properties:
196       - infra-properties:
197           build-days-to-keep: '{build-days-to-keep}'
198     parameters:
199       - infra-parameters:
200           project: '{project}'
201           branch: '{branch}'
202           refspec: 'refs/heads/{branch}'
203           artifacts: '{archive-artifacts}'
204       - maven-exec:
205           maven-version: '{maven-version}'
206     scm:
207       - gerrit-trigger-scm:
208           refspec: ''
209           choosing-strategy: 'default'
210           submodule-recursive: '{submodule-recursive}'
211     wrappers:
212       - infra-wrappers:
213           build-timeout: '{build-timeout}'
214     triggers:
215       # 11 AM UTC
216       - timed: '@daily'
217       - gerrit-trigger-release-manually:
218           server: '{server-name}'
219           project: '{project}'
220           branch: '{branch}'
221     builders:
222       - lf-infra-pre-build
223       - provide-maven-settings:
224           global-settings-file: 'global-settings'
225           settings-file: '{mvn-settings}'
226       - conditional-step:
227           condition-kind: regex-match
228           regex: DoSetVersion
229           label: '{setVersion}'
230           steps:
231             - inject:
232                 properties-file: version.properties
233             - maven-set-release-version:
234                 maven-version: '{maven-version}'
235                 mvn-settings: '{mvn-settings}'
236                 pom:
237       - maven-target:
238           maven-version: '{maven-version}'
239           goals: 'clean deploy -B
240             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
241           properties: '{obj:mvn_properties}'
242           settings: '{mvn-settings}'
243           settings-type: cfp
244           global-settings: 'global-settings'
245           global-settings-type: cfp
246     publishers:
247       - infra-shiplogs:
248           maven-version: '{maven-version}'
249       - checkstyle-result-daily
250
251 - job-template:
252     # Job template for Java daily release jobs
253     #
254     # The purpose of this job template is to run:
255     # 1. maven set versions
256     # 2. maven clean deploy with Sonar scans
257     #
258     # Required Variables:
259     #     branch:    git branch (eg. stable/lithium or master)
260
261     name: '{project-name}-{stream}-release-version-java-daily'
262
263     project-type: freestyle
264     disabled: '{disabled}'
265     node: '{build-node}'
266     maven-deploy-properties:
267     properties:
268       - infra-properties:
269           build-days-to-keep: '{build-days-to-keep}'
270
271     parameters:
272       - infra-parameters:
273           project: '{project}'
274           branch: '{branch}'
275           refspec: 'refs/heads/{branch}'
276           artifacts: '{archive-artifacts}'
277       - maven-exec:
278           maven-version: '{maven-version}'
279
280     scm:
281       - gerrit-trigger-scm:
282           refspec: ''
283           choosing-strategy: 'default'
284           submodule-recursive: '{submodule-recursive}'
285
286     wrappers:
287       - infra-wrappers:
288           build-timeout: '{build-timeout}'
289
290     triggers:
291       # 11 AM UTC
292       - timed: '@daily'
293       - gerrit-trigger-release-manually:
294           server: '{server-name}'
295           project: '{project}'
296           branch: '{branch}'
297
298     builders:
299       - lf-infra-pre-build
300       - provide-maven-settings:
301           global-settings-file: 'global-settings'
302           settings-file: '{mvn-settings}'
303
304       - inject:
305           properties-file: version.properties
306       - maven-set-release-version:
307           maven-version: '{maven-version}'
308           mvn-settings: '{mvn-settings}'
309           pom:
310
311       - maven-target:
312           maven-version: '{maven-version}'
313           goals: 'clean deploy -B
314             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
315           properties:
316             - '{maven-deploy-properties}'
317           settings: '{mvn-settings}'
318           settings-type: cfp
319           global-settings: 'global-settings'
320           global-settings-type: cfp
321
322     publishers:
323       - infra-shiplogs:
324           maven-version: '{maven-version}'
325
326 - job-template:
327     # Job template for Java daily release jobs
328     #
329     # The purpose of this job template is to run:
330     # 1. maven set versions
331     # 2. maven clean deploy -P {mvn-profile} with Sonar scans
332     #
333     # Required Variables:
334     #     branch:    git branch (eg. stable/lithium or master)
335
336     name: '{project-name}-{stream}-release-version-profile-java-daily'
337
338     project-type: freestyle
339     node: '{build-node}'
340     disabled: '{disabled}'
341     maven-deploy-properties:
342     properties:
343       - infra-properties:
344           build-days-to-keep: '{build-days-to-keep}'
345
346     parameters:
347       - infra-parameters:
348           project: '{project}'
349           branch: '{branch}'
350           refspec: 'refs/heads/{branch}'
351           artifacts: '{archive-artifacts}'
352       - maven-exec:
353           maven-version: '{maven-version}'
354
355     scm:
356       - gerrit-trigger-scm:
357           refspec: ''
358           choosing-strategy: 'default'
359           submodule-recursive: '{submodule-recursive}'
360
361     wrappers:
362       - infra-wrappers:
363           build-timeout: '{build-timeout}'
364
365     triggers:
366       # 11 AM UTC
367       - timed: '@daily'
368       - gerrit-trigger-release-manually:
369           server: '{server-name}'
370           project: '{project}'
371           branch: '{branch}'
372
373     builders:
374       - lf-infra-pre-build
375       - provide-maven-settings:
376           global-settings-file: 'global-settings'
377           settings-file: '{mvn-settings}'
378
379       - inject:
380           properties-file: version.properties
381       - maven-set-release-version:
382           maven-version: '{maven-version}'
383           mvn-settings: '{mvn-settings}'
384           pom:
385
386       - maven-target:
387           maven-version: '{maven-version}'
388           goals: 'clean deploy -P {mvn-profile} -B
389             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
390           properties:
391             - '{maven-deploy-properties}'
392           settings: '{mvn-settings}'
393           settings-type: cfp
394           global-settings: 'global-settings'
395           global-settings-type: cfp
396
397     publishers:
398       - infra-shiplogs:
399           maven-version: '{maven-version}'
400
401
402 - job-template:
403     # Job template for Java daily release jobs with POM not at the root
404     #
405     # The purpose of this job template is to run:
406     # 1. maven clean deploy with Sonar scans
407     #
408     # This job supports subprojects.
409     #
410     # Required Variables:
411     #     branch:    git branch (eg. stable/lithium or master)
412     #     pom:       name/location of the pom.xml file relative to the workspace
413
414     name: '{project-name}-{stream}-{subproject}-release-java-daily'
415
416     project-type: freestyle
417     node: '{build-node}'
418     disabled: '{disabled}'
419     maven-deploy-properties:
420     properties:
421       - infra-properties:
422           build-days-to-keep: '{build-days-to-keep}'
423
424     parameters:
425       - infra-parameters:
426           project: '{project}'
427           branch: '{branch}'
428           refspec: 'refs/heads/{branch}'
429           artifacts: '{archive-artifacts}'
430       - maven-exec:
431           maven-version: '{maven-version}'
432
433     scm:
434       - gerrit-trigger-scm:
435           refspec: ''
436           choosing-strategy: 'default'
437           submodule-recursive: '{submodule-recursive}'
438
439     wrappers:
440       - infra-wrappers:
441           build-timeout: '{build-timeout}'
442
443     triggers:
444       # 11 AM UTC
445       - timed: '@daily'
446       - gerrit-trigger-release-manually:
447           server: '{server-name}'
448           project: '{project}'
449           branch: '{branch}'
450
451     builders:
452       - lf-infra-pre-build
453       - provide-maven-settings:
454           global-settings-file: 'global-settings'
455           settings-file: '{mvn-settings}'
456
457       - maven-target:
458           maven-version: '{maven-version}'
459           pom: '{pom}'
460           goals: 'clean deploy -B
461             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
462           properties:
463             - '{maven-deploy-properties}'
464           java-opts:
465             - '-Xmx4096m -XX:MaxPermSize=512m'
466           settings: '{mvn-settings}'
467           settings-type: cfp
468           global-settings: 'global-settings'
469           global-settings-type: cfp
470
471     publishers:
472       - infra-shiplogs:
473           maven-version: '{maven-version}'
474
475 - job-template:
476     # Job template for Java daily release jobs with POM not at the root
477     #
478     # The purpose of this job template is to run:
479     # 1. maven set versions
480     # 2. maven clean deploy with Sonar scans
481     #
482     # This job supports subprojects.
483     #
484     # Required Variables:
485     #     branch:    git branch (eg. stable/lithium or master)
486     #     pom:       name/location of the pom.xml file relative to the workspace
487
488     name: '{project-name}-{stream}-{subproject}-release-version-java-daily'
489
490     project-type: freestyle
491     node: '{build-node}'
492     disabled: '{disabled}'
493     version-properties: 'version.properties'
494     maven-deploy-properties:
495     properties:
496       - infra-properties:
497           build-days-to-keep: '{build-days-to-keep}'
498
499     parameters:
500       - infra-parameters:
501           project: '{project}'
502           branch: '{branch}'
503           refspec: 'refs/heads/{branch}'
504           artifacts: '{archive-artifacts}'
505       - maven-exec:
506           maven-version: '{maven-version}'
507
508     scm:
509       - gerrit-trigger-scm:
510           refspec: ''
511           choosing-strategy: 'default'
512           submodule-recursive: '{submodule-recursive}'
513
514     wrappers:
515       - infra-wrappers:
516           build-timeout: '{build-timeout}'
517
518     triggers:
519       # 11 AM UTC
520       - timed: '@daily'
521       - gerrit-trigger-release-manually:
522           server: '{server-name}'
523           project: '{project}'
524           branch: '{branch}'
525
526     builders:
527       - lf-infra-pre-build
528       - provide-maven-settings:
529           global-settings-file: 'global-settings'
530           settings-file: '{mvn-settings}'
531
532       - inject:
533           properties-file: '{version-properties}'
534       - maven-set-release-version:
535           maven-version: '{maven-version}'
536           mvn-settings: '{mvn-settings}'
537           pom: '{pom}'
538
539       - maven-target:
540           maven-version: '{maven-version}'
541           pom: '{pom}'
542           goals: 'clean deploy -B
543             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
544           properties:
545             - '{maven-deploy-properties}'
546           settings: '{mvn-settings}'
547           settings-type: cfp
548           global-settings: 'global-settings'
549           global-settings-type: cfp
550
551     publishers:
552       - infra-shiplogs:
553           maven-version: '{maven-version}'
554
555
556 - job-template: &merge_java_defaults
557     # Job template for Java merge jobs
558     #
559     # The purpose of this job template is to run:
560     # 1. maven clean deploy
561     #
562     # Required Variables:
563     #     branch:    git branch (eg. stable/lithium or master)
564
565     name: '{project-name}-{stream}-merge-java'
566
567     project-type: freestyle
568     node: '{build-node}'
569     pattern: '**'
570     pom:
571     mvn_properties: []
572     mvn-params: ''
573
574     properties:
575       - infra-properties:
576           build-days-to-keep: '{build-days-to-keep}'
577
578     parameters:
579       - infra-parameters:
580           project: '{project}'
581           branch: '{branch}'
582           refspec: 'refs/heads/{branch}'
583           artifacts: '{archive-artifacts}'
584       - maven-exec:
585           maven-version: '{maven-version}'
586
587     scm:
588       - gerrit-trigger-scm:
589           refspec: ''
590           choosing-strategy: 'default'
591           submodule-recursive: '{submodule-recursive}'
592
593     wrappers:
594       - infra-wrappers:
595           build-timeout: '{build-timeout}'
596
597     triggers:
598       - gerrit-trigger-patch-merged:
599           server: '{server-name}'
600           project: '{project}'
601           branch: '{branch}'
602           files: '{pattern}'
603
604     builders:
605       - lf-infra-pre-build
606       - provide-maven-settings:
607           global-settings-file: 'global-settings'
608           settings-file: '{mvn-settings}'
609       - maven-target:
610           maven-version: '{maven-version}'
611           pom: '{obj:pom}'
612           goals: 'clean deploy -B {mvn-params}
613             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
614           settings: '{mvn-settings}'
615           settings-type: cfp
616           global-settings: 'global-settings'
617           global-settings-type: cfp
618           properties: '{obj:mvn_properties}'
619
620     publishers:
621       - infra-shiplogs:
622           maven-version: '{maven-version}'
623
624 - job-template:
625     # Job template for Java merge jobs based on
626     #   '{project-name}-{stream}-merge-java'
627     # The purpose of this job template is to run:
628     # 1. maven clean deploy
629     #
630     # This project supports maven properties.
631     #
632     # Required Variables:
633     #     branch:    git branch (eg. stable/lithium or master)
634     #     maven-properties: properties passed to maven
635
636     <<: *merge_java_defaults
637     name: '{project-name}-{stream}-merge-properties-java'
638
639 - job-template:
640     # Job template for Java merge jobs that takes a maven template
641     #
642     # The purpose of this job template is to run:
643     # 1. maven clean deploy -P {mvn-profile}
644     #
645     # Required Variables:
646     #     branch:    git branch (eg. stable/lithium or master)
647
648     <<: *merge_java_defaults
649     name: '{project-name}-{stream}-merge-profile-java'
650
651     builders:
652       - lf-infra-pre-build
653       - provide-maven-settings:
654           global-settings-file: 'global-settings'
655           settings-file: '{mvn-settings}'
656
657       - docker-login
658
659       - maven-target:
660           maven-version: '{maven-version}'
661           goals: 'clean deploy -P {mvn-profile} -B
662             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
663           settings: '{mvn-settings}'
664           settings-type: cfp
665           global-settings: 'global-settings'
666           global-settings-type: cfp
667           properties:
668             - docker.pull.registry=nexus3.onap.org:10001
669             - docker.push.registry=nexus3.onap.org:10003
670
671 - job-template:
672     # Job template for Java merge jobs with POM not at the root
673     #
674     # The purpose of this job template is to run:
675     # 1. maven clean deploy
676     #
677     # This job supports subprojects.
678     #
679     # Required Variables:
680     #     branch:    git branch (eg. stable/lithium or master)
681     #     pom:       name/location of the pom.xml file relative to the workspace
682     #     pattern:   ant file-path pattern relative to the workspace used to
683     #                trigger the job
684
685     <<: *merge_java_defaults
686     name: '{project-name}-{stream}-{subproject}-merge-java'
687
688 - job-template: &docker_java_defaults
689     # Job template for Docker daily jobs
690     #
691     # The purpose of this job template is to run:
692     # 1. login to the docker registry
693     # 2. docker push
694     #
695     # Required Variables:
696     #     branch:    git branch (eg. stable/lithium or master)
697
698     name: '{project-name}-{stream}-docker-java-daily'
699     id: '{project-name}-{stream}-docker-java-daily'
700     project-type: freestyle
701     node: '{build-node}'
702     disabled: '{disabled}'
703     properties:
704       - infra-properties:
705           build-days-to-keep: '{build-days-to-keep}'
706
707     parameters:
708       - infra-parameters:
709           project: '{project}'
710           branch: '{branch}'
711           refspec: 'refs/heads/{branch}'
712           artifacts: '{archive-artifacts}'
713       - maven-exec:
714           maven-version: '{maven-version}'
715       - maven-params:
716           mvn-params: '{mvn-params}'
717
718     scm:
719       - gerrit-trigger-scm:
720           refspec: ''
721           choosing-strategy: 'default'
722           submodule-recursive: '{submodule-recursive}'
723
724     wrappers:
725       - infra-wrappers:
726           build-timeout: '{build-timeout}'
727
728     triggers:
729       # 12 AM UTC
730       - timed: '@daily'
731       - gerrit-trigger-release-manually:
732           server: '{server-name}'
733           project: '{project}'
734           branch: '{branch}'
735
736     builders:
737       - lf-infra-pre-build
738       - provide-maven-settings:
739           global-settings-file: 'global-settings'
740           settings-file: '{mvn-settings}'
741
742       - docker-login
743
744       - maven-docker-push-daily:
745           maven-version: '{maven-version}'
746           mvn-settings: '{mvn-settings}'
747           pom: '{docker-pom}'
748           # use default as mvn-profile if profile is not needed
749           mvn-profile: '{mvn-profile}'
750           mvn-params: '{mvn-params}'
751
752     publishers:
753       - infra-shiplogs:
754           maven-version: '{maven-version}'
755
756 - job-template:
757     # Job template for Docker daily jobs
758     #
759     # The purpose of this job template is to run:
760     # 1. login to the docker registry
761     # 2. docker push
762     #
763     # Required Variables:
764     #     branch:    git branch (eg. stable/lithium or master)
765
766     <<: *docker_java_defaults
767     name: '{project-name}-{stream}-docker-java-daily'
768     id: docker-java-daily
769     node: '{build-node}'
770     wrappers:
771       - infra-wrappers-docker-build:
772           build-timeout: '{build-timeout}'
773
774 - job-template:
775     # Job template for building & pushing docker images
776     #
777     # The purpose of this job template is to run:
778     #  1. login to the docker registry
779     #  2. maven clean deploy on the specified profile
780     #
781     # This job uses a conditional regex match step to set versions.
782     # This template supports maven properties.
783     #
784     # Required Variables:
785     #     pom:       name/location of the pom.xml file relative to the workspace
786     #     profile:   the docker profile defined in the pom
787     #     maven-properties: properties passed to maven
788
789     name: '{project-name}-{stream}-docker-java-properties-daily'
790     project-type: freestyle
791     node: '{build-node}'
792     disabled: '{disabled}'
793     properties:
794       - infra-properties:
795           build-days-to-keep: '{build-days-to-keep}'
796     parameters:
797       - infra-parameters:
798           project: '{project}'
799           branch: '{branch}'
800           refspec: 'refs/heads/{branch}'
801           artifacts: '{archive-artifacts}'
802       - maven-exec:
803           maven-version: '{maven-version}'
804       - maven-params:
805           mvn-params: '{mvn-params}'
806     scm:
807       - gerrit-trigger-scm:
808           refspec: ''
809           choosing-strategy: 'default'
810           submodule-recursive: '{submodule-recursive}'
811     wrappers:
812       - infra-wrappers:
813           build-timeout: '{build-timeout}'
814     triggers:
815       # 12 AM UTC
816       - timed: '@daily'
817       - gerrit-trigger-release-manually:
818           server: '{server-name}'
819           project: '{project}'
820           branch: '{branch}'
821     builders:
822       - lf-infra-pre-build
823       - provide-maven-settings:
824           global-settings-file: 'global-settings'
825           settings-file: '{mvn-settings}'
826       - conditional-step:
827           condition-kind: regex-match
828           regex: DoSetVersion
829           label: '{setVersion}'
830           steps:
831             - inject:
832                 properties-file: version.properties
833             - maven-set-release-version:
834                 maven-version: '{maven-version}'
835                 mvn-settings: '{mvn-settings}'
836                 pom:
837       - docker-login
838       - maven-docker-push-daily:
839           maven-version: '{maven-version}'
840           mvn-settings: '{mvn-settings}'
841           pom: '{docker-pom}'
842           properties: '{maven-properties}'
843           # use default as mvn-profile if profile is not needed
844           mvn-profile: '{mvn-profile}'
845           mvn-params: '{mvn-params}'
846     publishers:
847       - infra-shiplogs:
848           maven-version: '{maven-version}'
849
850 - job-template:
851     # Job template for building & pushing docker images
852     #
853     # The purpose of this job template is to run:
854     #  1. login to the docker registry
855     #  2. run a specified shell builder
856     #
857     # Required Variables:
858     #     pom:       name/location of the pom.xml file relative to the workspace
859     #     maven-properties: properties passed to maven
860
861     name: '{project-name}-{stream}-docker-java-shell-daily'
862     project-type: freestyle
863     node: '{build-node}'
864     disabled: '{disabled}'
865     properties:
866       - infra-properties:
867           build-days-to-keep: '{build-days-to-keep}'
868
869     parameters:
870       - infra-parameters:
871           project: '{project}'
872           branch: '{branch}'
873           refspec: 'refs/heads/{branch}'
874           artifacts: '{archive-artifacts}'
875       - maven-exec:
876           maven-version: '{maven-version}'
877
878     scm:
879       - gerrit-trigger-scm:
880           refspec: ''
881           choosing-strategy: 'default'
882           submodule-recursive: '{submodule-recursive}'
883
884     wrappers:
885       - infra-wrappers:
886           build-timeout: '{build-timeout}'
887
888     triggers:
889       # 12 AM UTC
890       - timed: '@daily'
891       - gerrit-trigger-release-manually:
892           server: '{server-name}'
893           project: '{project}'
894           branch: '{branch}'
895
896     builders:
897       - lf-infra-pre-build
898       - provide-maven-settings:
899           global-settings-file: 'global-settings'
900           settings-file: '{mvn-settings}'
901
902       - docker-login
903
904       - maven-target:
905           maven-version: '{maven-version}'
906           goals: '{mvn-goals}'
907           settings: '{mvn-settings}'
908           settings-type: cfp
909           global-settings: 'global-settings'
910           global-settings-type: cfp
911
912       - shell: '{script}'
913
914     publishers:
915       - infra-shiplogs:
916           maven-version: '{maven-version}'
917
918 - job-template:
919     # Job template for building & pushing docker images
920     #
921     # The purpose of this job template is to run:
922     #  1. login to the docker registry
923     #  2. run a specified shell builder
924     #
925     # Required Variables:
926     #     pom:       name/location of the pom.xml file relative to the workspace
927     #     maven-properties: properties passed to maven
928
929     name: '{project-name}-{stream}-{subproject}-docker-java-shell-daily'
930     project-type: freestyle
931     node: '{build-node}'
932     disabled: '{disabled}'
933     properties:
934       - infra-properties:
935           build-days-to-keep: '{build-days-to-keep}'
936
937     parameters:
938       - infra-parameters:
939           project: '{project}'
940           branch: '{branch}'
941           refspec: 'refs/heads/{branch}'
942           artifacts: '{archive-artifacts}'
943       - maven-exec:
944           maven-version: '{maven-version}'
945
946     scm:
947       - gerrit-trigger-scm:
948           refspec: ''
949           choosing-strategy: 'default'
950           submodule-recursive: '{submodule-recursive}'
951
952     wrappers:
953       - infra-wrappers:
954           build-timeout: '{build-timeout}'
955
956     triggers:
957       # 12 AM UTC
958       - timed: '@daily'
959       - gerrit-trigger-release-manually:
960           server: '{server-name}'
961           project: '{project}'
962           branch: '{branch}'
963
964     builders:
965       - lf-infra-pre-build
966       - provide-maven-settings:
967           global-settings-file: 'global-settings'
968           settings-file: '{mvn-settings}'
969
970       - docker-login
971
972       - maven-target:
973           maven-version: '{maven-version}'
974           pom: '{pom}'
975           goals: '{mvn-goals}'
976           settings: '{mvn-settings}'
977           settings-type: cfp
978           global-settings: 'global-settings'
979           global-settings-type: cfp
980
981       - shell: '{script}'
982
983     publishers:
984       - infra-shiplogs:
985           maven-version: '{maven-version}'
986
987 - job-template:
988     # Job template for building & pushing docker images
989     #
990     # The purpose of this job template is to run:
991     #  1. login to the docker registry
992     #  2. inject a version.properties file and set versions
993     #  3. run a specified shell builder
994     #
995     # Required Variables:
996     #     pom:       name/location of the pom.xml file relative to the workspace
997     #     maven-properties: properties passed to maven
998
999     name: '{project-name}-{stream}-docker-java-version-shell-daily'
1000     project-type: freestyle
1001     node: '{build-node}'
1002     disabled: '{disabled}'
1003     properties:
1004       - infra-properties:
1005           build-days-to-keep: '{build-days-to-keep}'
1006
1007     parameters:
1008       - infra-parameters:
1009           project: '{project}'
1010           branch: '{branch}'
1011           refspec: 'refs/heads/{branch}'
1012           artifacts: '{archive-artifacts}'
1013       - maven-exec:
1014           maven-version: '{maven-version}'
1015
1016     scm:
1017       - gerrit-trigger-scm:
1018           refspec: ''
1019           choosing-strategy: 'default'
1020           submodule-recursive: '{submodule-recursive}'
1021
1022     wrappers:
1023       - infra-wrappers:
1024           build-timeout: '{build-timeout}'
1025
1026     triggers:
1027       # 12 AM UTC
1028       - timed: '@daily'
1029       - gerrit-trigger-release-manually:
1030           server: '{server-name}'
1031           project: '{project}'
1032           branch: '{branch}'
1033
1034     builders:
1035       - lf-infra-pre-build
1036       - provide-maven-settings:
1037           global-settings-file: 'global-settings'
1038           settings-file: '{mvn-settings}'
1039
1040       - inject:
1041           properties-file: version.properties
1042       - maven-set-release-version:
1043           maven-version: '{maven-version}'
1044           mvn-settings: '{mvn-settings}'
1045           pom:
1046
1047       - docker-login
1048
1049       - maven-target:
1050           maven-version: '{maven-version}'
1051           goals: '{mvn-goals}'
1052           settings: '{mvn-settings}'
1053           settings-type: cfp
1054           global-settings: 'global-settings'
1055           global-settings-type: cfp
1056
1057       - shell: '{script}'
1058
1059     publishers:
1060       - infra-shiplogs:
1061           maven-version: '{maven-version}'
1062
1063 - job-template:
1064     # Job template for building & pushing docker images
1065     #
1066     # The purpose of this job template is to run:
1067     #  1. login to the docker registry
1068     #  2. inject a version.properties file and set versions
1069     #  3. run a specified shell builder
1070     #
1071     # This template supports subprojects.
1072     #
1073     # Required Variables:
1074     #     pom:       name/location of the pom.xml file relative to the workspace
1075     #     maven-properties: properties passed to maven
1076
1077     name: '{project-name}-{stream}-{subproject}-docker-java-version-shell-daily'
1078     project-type: freestyle
1079     node: 'ubuntu1604-docker-8c-8g'
1080     disabled: '{disabled}'
1081     properties:
1082       - infra-properties:
1083           build-days-to-keep: '{build-days-to-keep}'
1084
1085     parameters:
1086       - infra-parameters:
1087           project: '{project}'
1088           branch: '{branch}'
1089           refspec: 'refs/heads/{branch}'
1090           artifacts: '{archive-artifacts}'
1091       - maven-exec:
1092           maven-version: '{maven-version}'
1093
1094     scm:
1095       - gerrit-trigger-scm:
1096           refspec: ''
1097           choosing-strategy: 'default'
1098           submodule-recursive: '{submodule-recursive}'
1099
1100     wrappers:
1101       - infra-wrappers:
1102           build-timeout: '{build-timeout}'
1103
1104     triggers:
1105       # 12 AM UTC
1106       - timed: '@daily'
1107       - gerrit-trigger-release-manually:
1108           server: '{server-name}'
1109           project: '{project}'
1110           branch: '{branch}'
1111
1112     builders:
1113       - lf-infra-pre-build
1114       - provide-maven-settings:
1115           global-settings-file: 'global-settings'
1116           settings-file: '{mvn-settings}'
1117
1118       - inject:
1119           properties-file: version.properties
1120       - maven-set-release-version:
1121           maven-version: '{maven-version}'
1122           mvn-settings: '{mvn-settings}'
1123           pom: '{pom}'
1124
1125       - docker-login
1126
1127       - maven-target:
1128           maven-version: '{maven-version}'
1129           pom: '{pom}'
1130           goals: '{mvn-goals}'
1131           settings: '{mvn-settings}'
1132           settings-type: cfp
1133           global-settings: 'global-settings'
1134           global-settings-type: cfp
1135
1136       - shell: '{script}'
1137
1138     publishers:
1139       - infra-shiplogs:
1140           maven-version: '{maven-version}'
1141
1142 - job-template: &docker_version_java_defaults
1143     # Job template for building & pushing docker images
1144     #
1145     # The purpose of this job template is to run:
1146     #  1. login to the docker registry
1147     #  2. inject a version.properties file and set versions
1148     #  3. run a docker push
1149     #
1150     # Required Variables:
1151     #     pom:       name/location of the pom.xml file relative to the workspace
1152     #     profile:   the docker profile defined in the pom
1153     #     maven-properties: properties passed to maven
1154
1155     name: '{project-name}-{stream}-docker-version-java-daily'
1156     id: '{project-name}-{stream}-docker-version-java-daily'
1157     project-type: freestyle
1158     node: '{build-node}'
1159     disabled: '{disabled}'
1160     properties:
1161       - infra-properties:
1162           build-days-to-keep: '{build-days-to-keep}'
1163
1164     parameters:
1165       - infra-parameters:
1166           project: '{project}'
1167           branch: '{branch}'
1168           refspec: 'refs/heads/{branch}'
1169           artifacts: '{archive-artifacts}'
1170       - maven-exec:
1171           maven-version: '{maven-version}'
1172       - maven-params:
1173           mvn-params: '{mvn-params}'
1174
1175     scm:
1176       - gerrit-trigger-scm:
1177           refspec: ''
1178           choosing-strategy: 'default'
1179           submodule-recursive: '{submodule-recursive}'
1180
1181     wrappers:
1182       - infra-wrappers:
1183           build-timeout: '{build-timeout}'
1184
1185     triggers:
1186       # 12 AM UTC
1187       - timed: '@daily'
1188       - gerrit-trigger-release-manually:
1189           server: '{server-name}'
1190           project: '{project}'
1191           branch: '{branch}'
1192
1193     builders:
1194       - lf-infra-pre-build
1195       - provide-maven-settings:
1196           global-settings-file: 'global-settings'
1197           settings-file: '{mvn-settings}'
1198
1199       - inject:
1200           properties-file: version.properties
1201       - maven-set-release-version:
1202           maven-version: '{maven-version}'
1203           mvn-settings: '{mvn-settings}'
1204           pom:
1205
1206       - docker-login
1207
1208       - maven-docker-push-daily:
1209           maven-version: '{maven-version}'
1210           mvn-settings: '{mvn-settings}'
1211           pom: '{docker-pom}'
1212           # use default as mvn-profile if profile is not needed
1213           mvn-profile: '{mvn-profile}'
1214           mvn-params: '{mvn-params}'
1215
1216     publishers:
1217       - infra-shiplogs:
1218           maven-version: '{maven-version}'
1219
1220 - job-template:
1221     # Job template for building & pushing docker images
1222     #
1223     # The purpose of this job template is to run:
1224     #  1. login to the docker registry
1225     #  2. inject a version.properties file and set versions
1226     #  3. run a docker push
1227     #
1228     # Required Variables:
1229     #     pom:       name/location of the pom.xml file relative to the workspace
1230     #     profile:   the docker profile defined in the pom
1231     #     maven-properties: properties passed to maven
1232
1233     <<: *docker_version_java_defaults
1234     name: '{project-name}-{stream}-docker-version-java-daily'
1235     id: 'docker-version-java-daily'
1236     node: '{build-node}'
1237     wrappers:
1238       - infra-wrappers-docker-build:
1239           build-timeout: '{build-timeout}'
1240
1241 - job-template:
1242     # Job template for building & pushing docker images for AAI specific repos
1243     #
1244     # The purpose of this job template is to run:
1245     #  1. login to the docker registry
1246     #  2. run maven goals
1247     #  3. run include-docker-push.sh
1248     #
1249     # Required Variables:
1250     #     pom:       name/location of the pom.xml file relative to the workspace
1251     #     maven-properties: properties passed to maven
1252
1253     name: '{project-name}-{stream}-aai-docker-java-daily'
1254     project-type: freestyle
1255     node: '{build-node}'
1256     docker-image-name: ''
1257     disabled: '{disabled}'
1258     properties:
1259       - infra-properties:
1260           build-days-to-keep: '{build-days-to-keep}'
1261
1262     parameters:
1263       - infra-parameters:
1264           project: '{project}'
1265           branch: '{branch}'
1266           refspec: 'refs/heads/{branch}'
1267           artifacts: '{archive-artifacts}'
1268       - maven-exec:
1269           maven-version: '{maven-version}'
1270       - docker-image-name:
1271           docker-image-name: '{docker-image-name}'
1272
1273     scm:
1274       - gerrit-trigger-scm:
1275           refspec: ''
1276           choosing-strategy: 'default'
1277           submodule-recursive: '{submodule-recursive}'
1278
1279     wrappers:
1280       - infra-wrappers:
1281           build-timeout: '{build-timeout}'
1282
1283     triggers:
1284       # 12 AM UTC
1285       - timed: '@daily'
1286       - gerrit-trigger-release-manually:
1287           server: '{server-name}'
1288           project: '{project}'
1289           branch: '{branch}'
1290
1291     builders:
1292       - lf-infra-pre-build
1293       - provide-maven-settings:
1294           global-settings-file: 'global-settings'
1295           settings-file: '{mvn-settings}'
1296
1297       - docker-login
1298
1299       - maven-target:
1300           maven-version: '{maven-version}'
1301           pom: 'pom.xml'
1302           goals: 'clean install -DskipTests -B
1303             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
1304           settings: '{mvn-settings}'
1305           settings-type: cfp
1306           global-settings: 'global-settings'
1307           global-settings-type: cfp
1308
1309       - maven-target:
1310           maven-version: '{maven-version}'
1311           pom: '{pom}'
1312           goals: '{mvn-goals}'
1313           settings: '{mvn-settings}'
1314           settings-type: cfp
1315           global-settings: 'global-settings'
1316           global-settings-type: cfp
1317           properties:
1318             - maven.test.skip=true
1319             - docker.pull.registry=nexus3.onap.org:10001
1320             - docker.push.registry=nexus3.onap.org:10003
1321
1322       - shell: !include-raw-escape: include-docker-push.sh
1323
1324     publishers:
1325       - infra-shiplogs:
1326           maven-version: '{maven-version}'
1327
1328 - job-template:
1329     # Job template for Java merge jobs for SDC specific repos
1330     #
1331     # The purpose of this job template is to run:
1332     # 1. maven clean deploy
1333     #
1334     # Required Variables:
1335     #     branch:    git branch (eg. stable/lithium or master)
1336
1337     <<: *merge_java_defaults
1338     name: '{project-name}-{stream}-sdc-merge-java'
1339
1340     node: '{build-node}'
1341     build-timeout: 120
1342
1343     builders:
1344       - lf-infra-pre-build
1345       - provide-maven-settings:
1346           global-settings-file: 'global-settings'
1347           settings-file: '{mvn-settings}'
1348
1349       - docker-login
1350
1351       - maven-docker-push-daily:
1352           maven-version: '{maven-version}'
1353           mvn-settings: '{mvn-settings}'
1354           pom: '{docker-pom}'
1355           # use default as mvn-profile if profile is not needed
1356           mvn-profile: '{mvn-profile}'
1357           mvn-params: ''