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