Fix APPC GC Maven Merge Job
[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     mvn-opts: ''
580     java-opts: ''
581
582     properties:
583       - infra-properties:
584           build-days-to-keep: '{build-days-to-keep}'
585
586     parameters:
587       - infra-parameters:
588           project: '{project}'
589           branch: '{branch}'
590           refspec: 'refs/heads/{branch}'
591           artifacts: '{archive-artifacts}'
592       - maven-exec:
593           maven-version: '{maven-version}'
594
595     scm:
596       - gerrit-trigger-scm:
597           refspec: ''
598           choosing-strategy: 'default'
599           submodule-recursive: '{submodule-recursive}'
600
601     wrappers:
602       - infra-wrappers:
603           build-timeout: '{build-timeout}'
604
605     triggers:
606       - gerrit-trigger-patch-merged:
607           server: '{server-name}'
608           project: '{project}'
609           branch: '{branch}'
610           files: '{pattern}'
611
612     builders:
613       - lf-infra-pre-build
614       - provide-maven-settings:
615           global-settings-file: 'global-settings'
616           settings-file: '{mvn-settings}'
617       - maven-target:
618           maven-version: '{maven-version}'
619           pom: '{obj:pom}'
620           goals: 'clean deploy -B {mvn-params}
621             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
622           properties:
623             - MAVEN_OPTS='{mvn-opts}'
624           java-opts:
625             - "{java-opts}"
626           settings: '{mvn-settings}'
627           settings-type: cfp
628           global-settings: 'global-settings'
629           global-settings-type: cfp
630           properties: '{obj:mvn_properties}'
631
632     publishers:
633       - infra-shiplogs:
634           maven-version: '{maven-version}'
635
636 - job-template:
637     # Job template for Java merge jobs based on
638     #   '{project-name}-{stream}-merge-java'
639     # The purpose of this job template is to run:
640     # 1. maven clean deploy
641     #
642     # This project supports maven properties.
643     #
644     # Required Variables:
645     #     branch:    git branch (eg. stable/lithium or master)
646     #     maven-properties: properties passed to maven
647
648     <<: *merge_java_defaults
649     name: '{project-name}-{stream}-merge-properties-java'
650
651 - job-template:
652     # Job template for Java merge jobs that takes a maven template
653     #
654     # The purpose of this job template is to run:
655     # 1. maven clean deploy -P {mvn-profile}
656     #
657     # Required Variables:
658     #     branch:    git branch (eg. stable/lithium or master)
659
660     <<: *merge_java_defaults
661     name: '{project-name}-{stream}-merge-profile-java'
662
663     builders:
664       - lf-infra-pre-build
665       - provide-maven-settings:
666           global-settings-file: 'global-settings'
667           settings-file: '{mvn-settings}'
668
669       - docker-login
670
671       - maven-target:
672           maven-version: '{maven-version}'
673           goals: 'clean deploy -P {mvn-profile} -B
674             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
675           settings: '{mvn-settings}'
676           settings-type: cfp
677           global-settings: 'global-settings'
678           global-settings-type: cfp
679           properties:
680             - docker.pull.registry=nexus3.onap.org:10001
681             - docker.push.registry=nexus3.onap.org:10003
682
683 - job-template:
684     # Job template for Java merge jobs with POM not at the root
685     #
686     # The purpose of this job template is to run:
687     # 1. maven clean deploy
688     #
689     # This job supports subprojects.
690     #
691     # Required Variables:
692     #     branch:    git branch (eg. stable/lithium or master)
693     #     pom:       name/location of the pom.xml file relative to the workspace
694     #     pattern:   ant file-path pattern relative to the workspace used to
695     #                trigger the job
696
697     <<: *merge_java_defaults
698     name: '{project-name}-{stream}-{subproject}-merge-java'
699
700 - job-template: &docker_java_defaults
701     # Job template for Docker daily jobs
702     #
703     # The purpose of this job template is to run:
704     # 1. login to the docker registry
705     # 2. docker push
706     #
707     # Required Variables:
708     #     branch:    git branch (eg. stable/lithium or master)
709
710     name: '{project-name}-{stream}-docker-java-daily'
711     id: '{project-name}-{stream}-docker-java-daily'
712     project-type: freestyle
713     node: '{build-node}'
714     disabled: '{disabled}'
715     properties:
716       - infra-properties:
717           build-days-to-keep: '{build-days-to-keep}'
718
719     parameters:
720       - infra-parameters:
721           project: '{project}'
722           branch: '{branch}'
723           refspec: 'refs/heads/{branch}'
724           artifacts: '{archive-artifacts}'
725       - maven-exec:
726           maven-version: '{maven-version}'
727       - maven-params:
728           mvn-params: '{mvn-params}'
729
730     scm:
731       - gerrit-trigger-scm:
732           refspec: ''
733           choosing-strategy: 'default'
734           submodule-recursive: '{submodule-recursive}'
735
736     wrappers:
737       - infra-wrappers:
738           build-timeout: '{build-timeout}'
739
740     triggers:
741       # 12 AM UTC
742       - timed: '@daily'
743       - gerrit-trigger-release-manually:
744           server: '{server-name}'
745           project: '{project}'
746           branch: '{branch}'
747
748     builders:
749       - lf-infra-pre-build
750       - provide-maven-settings:
751           global-settings-file: 'global-settings'
752           settings-file: '{mvn-settings}'
753
754       - docker-login
755
756       - maven-docker-push-daily:
757           maven-version: '{maven-version}'
758           mvn-settings: '{mvn-settings}'
759           pom: '{docker-pom}'
760           # use default as mvn-profile if profile is not needed
761           mvn-profile: '{mvn-profile}'
762           mvn-params: '{mvn-params}'
763
764     publishers:
765       - infra-shiplogs:
766           maven-version: '{maven-version}'
767
768 - job-template:
769     # Job template for Docker daily jobs
770     #
771     # The purpose of this job template is to run:
772     # 1. login to the docker registry
773     # 2. docker push
774     #
775     # Required Variables:
776     #     branch:    git branch (eg. stable/lithium or master)
777
778     <<: *docker_java_defaults
779     name: '{project-name}-{stream}-docker-java-daily'
780     id: docker-java-daily
781     node: '{build-node}'
782     wrappers:
783       - infra-wrappers-docker-build:
784           build-timeout: '{build-timeout}'
785
786 - job-template:
787     # Job template for building & pushing docker images
788     #
789     # The purpose of this job template is to run:
790     #  1. login to the docker registry
791     #  2. maven clean deploy on the specified profile
792     #
793     # This job uses a conditional regex match step to set versions.
794     # This template supports maven properties.
795     #
796     # Required Variables:
797     #     pom:       name/location of the pom.xml file relative to the workspace
798     #     profile:   the docker profile defined in the pom
799     #     maven-properties: properties passed to maven
800
801     name: '{project-name}-{stream}-docker-java-properties-daily'
802     project-type: freestyle
803     node: '{build-node}'
804     disabled: '{disabled}'
805     properties:
806       - infra-properties:
807           build-days-to-keep: '{build-days-to-keep}'
808     parameters:
809       - infra-parameters:
810           project: '{project}'
811           branch: '{branch}'
812           refspec: 'refs/heads/{branch}'
813           artifacts: '{archive-artifacts}'
814       - maven-exec:
815           maven-version: '{maven-version}'
816       - maven-params:
817           mvn-params: '{mvn-params}'
818     scm:
819       - gerrit-trigger-scm:
820           refspec: ''
821           choosing-strategy: 'default'
822           submodule-recursive: '{submodule-recursive}'
823     wrappers:
824       - infra-wrappers:
825           build-timeout: '{build-timeout}'
826     triggers:
827       # 12 AM UTC
828       - timed: '@daily'
829       - gerrit-trigger-release-manually:
830           server: '{server-name}'
831           project: '{project}'
832           branch: '{branch}'
833     builders:
834       - lf-infra-pre-build
835       - provide-maven-settings:
836           global-settings-file: 'global-settings'
837           settings-file: '{mvn-settings}'
838       - conditional-step:
839           condition-kind: regex-match
840           regex: DoSetVersion
841           label: '{setVersion}'
842           steps:
843             - inject:
844                 properties-file: version.properties
845             - maven-set-release-version:
846                 maven-version: '{maven-version}'
847                 mvn-settings: '{mvn-settings}'
848                 pom:
849       - docker-login
850       - maven-docker-push-daily:
851           maven-version: '{maven-version}'
852           mvn-settings: '{mvn-settings}'
853           pom: '{docker-pom}'
854           properties: '{maven-properties}'
855           # use default as mvn-profile if profile is not needed
856           mvn-profile: '{mvn-profile}'
857           mvn-params: '{mvn-params}'
858     publishers:
859       - infra-shiplogs:
860           maven-version: '{maven-version}'
861
862 - job-template:
863     # Job template for building & pushing docker images
864     #
865     # The purpose of this job template is to run:
866     #  1. login to the docker registry
867     #  2. run a specified shell builder
868     #
869     # Required Variables:
870     #     pom:       name/location of the pom.xml file relative to the workspace
871     #     maven-properties: properties passed to maven
872
873     name: '{project-name}-{stream}-docker-java-shell-daily'
874     project-type: freestyle
875     node: '{build-node}'
876     disabled: '{disabled}'
877     properties:
878       - infra-properties:
879           build-days-to-keep: '{build-days-to-keep}'
880
881     parameters:
882       - infra-parameters:
883           project: '{project}'
884           branch: '{branch}'
885           refspec: 'refs/heads/{branch}'
886           artifacts: '{archive-artifacts}'
887       - maven-exec:
888           maven-version: '{maven-version}'
889
890     scm:
891       - gerrit-trigger-scm:
892           refspec: ''
893           choosing-strategy: 'default'
894           submodule-recursive: '{submodule-recursive}'
895
896     wrappers:
897       - infra-wrappers:
898           build-timeout: '{build-timeout}'
899
900     triggers:
901       # 12 AM UTC
902       - timed: '@daily'
903       - gerrit-trigger-release-manually:
904           server: '{server-name}'
905           project: '{project}'
906           branch: '{branch}'
907
908     builders:
909       - lf-infra-pre-build
910       - provide-maven-settings:
911           global-settings-file: 'global-settings'
912           settings-file: '{mvn-settings}'
913
914       - docker-login
915
916       - maven-target:
917           maven-version: '{maven-version}'
918           goals: '{mvn-goals}'
919           settings: '{mvn-settings}'
920           settings-type: cfp
921           global-settings: 'global-settings'
922           global-settings-type: cfp
923
924       - shell: '{script}'
925
926     publishers:
927       - infra-shiplogs:
928           maven-version: '{maven-version}'
929
930 - job-template:
931     # Job template for building & pushing docker images
932     #
933     # The purpose of this job template is to run:
934     #  1. login to the docker registry
935     #  2. run a specified shell builder
936     #
937     # Required Variables:
938     #     pom:       name/location of the pom.xml file relative to the workspace
939     #     maven-properties: properties passed to maven
940
941     name: '{project-name}-{stream}-{subproject}-docker-java-shell-daily'
942     project-type: freestyle
943     node: '{build-node}'
944     disabled: '{disabled}'
945     properties:
946       - infra-properties:
947           build-days-to-keep: '{build-days-to-keep}'
948
949     parameters:
950       - infra-parameters:
951           project: '{project}'
952           branch: '{branch}'
953           refspec: 'refs/heads/{branch}'
954           artifacts: '{archive-artifacts}'
955       - maven-exec:
956           maven-version: '{maven-version}'
957
958     scm:
959       - gerrit-trigger-scm:
960           refspec: ''
961           choosing-strategy: 'default'
962           submodule-recursive: '{submodule-recursive}'
963
964     wrappers:
965       - infra-wrappers:
966           build-timeout: '{build-timeout}'
967
968     triggers:
969       # 12 AM UTC
970       - timed: '@daily'
971       - gerrit-trigger-release-manually:
972           server: '{server-name}'
973           project: '{project}'
974           branch: '{branch}'
975
976     builders:
977       - lf-infra-pre-build
978       - provide-maven-settings:
979           global-settings-file: 'global-settings'
980           settings-file: '{mvn-settings}'
981
982       - docker-login
983
984       - maven-target:
985           maven-version: '{maven-version}'
986           pom: '{pom}'
987           goals: '{mvn-goals}'
988           settings: '{mvn-settings}'
989           settings-type: cfp
990           global-settings: 'global-settings'
991           global-settings-type: cfp
992
993       - shell: '{script}'
994
995     publishers:
996       - infra-shiplogs:
997           maven-version: '{maven-version}'
998
999 - job-template:
1000     # Job template for building & pushing docker images
1001     #
1002     # The purpose of this job template is to run:
1003     #  1. login to the docker registry
1004     #  2. inject a version.properties file and set versions
1005     #  3. run a specified shell builder
1006     #
1007     # Required Variables:
1008     #     pom:       name/location of the pom.xml file relative to the workspace
1009     #     maven-properties: properties passed to maven
1010
1011     name: '{project-name}-{stream}-docker-java-version-shell-daily'
1012     project-type: freestyle
1013     node: '{build-node}'
1014     disabled: '{disabled}'
1015     properties:
1016       - infra-properties:
1017           build-days-to-keep: '{build-days-to-keep}'
1018
1019     parameters:
1020       - infra-parameters:
1021           project: '{project}'
1022           branch: '{branch}'
1023           refspec: 'refs/heads/{branch}'
1024           artifacts: '{archive-artifacts}'
1025       - maven-exec:
1026           maven-version: '{maven-version}'
1027
1028     scm:
1029       - gerrit-trigger-scm:
1030           refspec: ''
1031           choosing-strategy: 'default'
1032           submodule-recursive: '{submodule-recursive}'
1033
1034     wrappers:
1035       - infra-wrappers:
1036           build-timeout: '{build-timeout}'
1037
1038     triggers:
1039       # 12 AM UTC
1040       - timed: '@daily'
1041       - gerrit-trigger-release-manually:
1042           server: '{server-name}'
1043           project: '{project}'
1044           branch: '{branch}'
1045
1046     builders:
1047       - lf-infra-pre-build
1048       - provide-maven-settings:
1049           global-settings-file: 'global-settings'
1050           settings-file: '{mvn-settings}'
1051
1052       - inject:
1053           properties-file: version.properties
1054       - maven-set-release-version:
1055           maven-version: '{maven-version}'
1056           mvn-settings: '{mvn-settings}'
1057           pom:
1058
1059       - docker-login
1060
1061       - maven-target:
1062           maven-version: '{maven-version}'
1063           goals: '{mvn-goals}'
1064           settings: '{mvn-settings}'
1065           settings-type: cfp
1066           global-settings: 'global-settings'
1067           global-settings-type: cfp
1068
1069       - shell: '{script}'
1070
1071     publishers:
1072       - infra-shiplogs:
1073           maven-version: '{maven-version}'
1074
1075 - job-template:
1076     # Job template for building & pushing docker images
1077     #
1078     # The purpose of this job template is to run:
1079     #  1. login to the docker registry
1080     #  2. inject a version.properties file and set versions
1081     #  3. run a specified shell builder
1082     #
1083     # This template supports subprojects.
1084     #
1085     # Required Variables:
1086     #     pom:       name/location of the pom.xml file relative to the workspace
1087     #     maven-properties: properties passed to maven
1088
1089     name: '{project-name}-{stream}-{subproject}-docker-java-version-shell-daily'
1090     project-type: freestyle
1091     node: 'ubuntu1604-docker-8c-8g'
1092     disabled: '{disabled}'
1093     properties:
1094       - infra-properties:
1095           build-days-to-keep: '{build-days-to-keep}'
1096
1097     parameters:
1098       - infra-parameters:
1099           project: '{project}'
1100           branch: '{branch}'
1101           refspec: 'refs/heads/{branch}'
1102           artifacts: '{archive-artifacts}'
1103       - maven-exec:
1104           maven-version: '{maven-version}'
1105
1106     scm:
1107       - gerrit-trigger-scm:
1108           refspec: ''
1109           choosing-strategy: 'default'
1110           submodule-recursive: '{submodule-recursive}'
1111
1112     wrappers:
1113       - infra-wrappers:
1114           build-timeout: '{build-timeout}'
1115
1116     triggers:
1117       # 12 AM UTC
1118       - timed: '@daily'
1119       - gerrit-trigger-release-manually:
1120           server: '{server-name}'
1121           project: '{project}'
1122           branch: '{branch}'
1123
1124     builders:
1125       - lf-infra-pre-build
1126       - provide-maven-settings:
1127           global-settings-file: 'global-settings'
1128           settings-file: '{mvn-settings}'
1129
1130       - inject:
1131           properties-file: version.properties
1132       - maven-set-release-version:
1133           maven-version: '{maven-version}'
1134           mvn-settings: '{mvn-settings}'
1135           pom: '{pom}'
1136
1137       - docker-login
1138
1139       - maven-target:
1140           maven-version: '{maven-version}'
1141           pom: '{pom}'
1142           goals: '{mvn-goals}'
1143           settings: '{mvn-settings}'
1144           settings-type: cfp
1145           global-settings: 'global-settings'
1146           global-settings-type: cfp
1147
1148       - shell: '{script}'
1149
1150     publishers:
1151       - infra-shiplogs:
1152           maven-version: '{maven-version}'
1153
1154 - job-template: &docker_version_java_defaults
1155     # Job template for building & pushing docker images
1156     #
1157     # The purpose of this job template is to run:
1158     #  1. login to the docker registry
1159     #  2. inject a version.properties file and set versions
1160     #  3. run a docker push
1161     #
1162     # Required Variables:
1163     #     pom:       name/location of the pom.xml file relative to the workspace
1164     #     profile:   the docker profile defined in the pom
1165     #     maven-properties: properties passed to maven
1166
1167     name: '{project-name}-{stream}-docker-version-java-daily'
1168     id: '{project-name}-{stream}-docker-version-java-daily'
1169     project-type: freestyle
1170     node: '{build-node}'
1171     disabled: '{disabled}'
1172     properties:
1173       - infra-properties:
1174           build-days-to-keep: '{build-days-to-keep}'
1175
1176     parameters:
1177       - infra-parameters:
1178           project: '{project}'
1179           branch: '{branch}'
1180           refspec: 'refs/heads/{branch}'
1181           artifacts: '{archive-artifacts}'
1182       - maven-exec:
1183           maven-version: '{maven-version}'
1184       - maven-params:
1185           mvn-params: '{mvn-params}'
1186
1187     scm:
1188       - gerrit-trigger-scm:
1189           refspec: ''
1190           choosing-strategy: 'default'
1191           submodule-recursive: '{submodule-recursive}'
1192
1193     wrappers:
1194       - infra-wrappers:
1195           build-timeout: '{build-timeout}'
1196
1197     triggers:
1198       # 12 AM UTC
1199       - timed: '@daily'
1200       - gerrit-trigger-release-manually:
1201           server: '{server-name}'
1202           project: '{project}'
1203           branch: '{branch}'
1204
1205     builders:
1206       - lf-infra-pre-build
1207       - provide-maven-settings:
1208           global-settings-file: 'global-settings'
1209           settings-file: '{mvn-settings}'
1210
1211       - inject:
1212           properties-file: version.properties
1213       - maven-set-release-version:
1214           maven-version: '{maven-version}'
1215           mvn-settings: '{mvn-settings}'
1216           pom:
1217
1218       - docker-login
1219
1220       - maven-docker-push-daily:
1221           maven-version: '{maven-version}'
1222           mvn-settings: '{mvn-settings}'
1223           pom: '{docker-pom}'
1224           # use default as mvn-profile if profile is not needed
1225           mvn-profile: '{mvn-profile}'
1226           mvn-params: '{mvn-params}'
1227
1228     publishers:
1229       - infra-shiplogs:
1230           maven-version: '{maven-version}'
1231
1232 - job-template:
1233     # Job template for building & pushing docker images
1234     #
1235     # The purpose of this job template is to run:
1236     #  1. login to the docker registry
1237     #  2. inject a version.properties file and set versions
1238     #  3. run a docker push
1239     #
1240     # Required Variables:
1241     #     pom:       name/location of the pom.xml file relative to the workspace
1242     #     profile:   the docker profile defined in the pom
1243     #     maven-properties: properties passed to maven
1244
1245     <<: *docker_version_java_defaults
1246     name: '{project-name}-{stream}-docker-version-java-daily'
1247     id: 'docker-version-java-daily'
1248     node: '{build-node}'
1249     wrappers:
1250       - infra-wrappers-docker-build:
1251           build-timeout: '{build-timeout}'
1252
1253 - job-template:
1254     # Job template for building & pushing docker images for AAI specific repos
1255     #
1256     # The purpose of this job template is to run:
1257     #  1. login to the docker registry
1258     #  2. run maven goals
1259     #  3. run include-docker-push.sh
1260     #
1261     # Required Variables:
1262     #     pom:       name/location of the pom.xml file relative to the workspace
1263     #     maven-properties: properties passed to maven
1264
1265     name: '{project-name}-{stream}-aai-docker-java-daily'
1266     project-type: freestyle
1267     node: '{build-node}'
1268     docker-image-name: ''
1269     disabled: '{disabled}'
1270     properties:
1271       - infra-properties:
1272           build-days-to-keep: '{build-days-to-keep}'
1273
1274     parameters:
1275       - infra-parameters:
1276           project: '{project}'
1277           branch: '{branch}'
1278           refspec: 'refs/heads/{branch}'
1279           artifacts: '{archive-artifacts}'
1280       - maven-exec:
1281           maven-version: '{maven-version}'
1282       - docker-image-name:
1283           docker-image-name: '{docker-image-name}'
1284
1285     scm:
1286       - gerrit-trigger-scm:
1287           refspec: ''
1288           choosing-strategy: 'default'
1289           submodule-recursive: '{submodule-recursive}'
1290
1291     wrappers:
1292       - infra-wrappers:
1293           build-timeout: '{build-timeout}'
1294
1295     triggers:
1296       # 12 AM UTC
1297       - timed: '@daily'
1298       - gerrit-trigger-release-manually:
1299           server: '{server-name}'
1300           project: '{project}'
1301           branch: '{branch}'
1302
1303     builders:
1304       - lf-infra-pre-build
1305       - provide-maven-settings:
1306           global-settings-file: 'global-settings'
1307           settings-file: '{mvn-settings}'
1308
1309       - docker-login
1310
1311       - maven-target:
1312           maven-version: '{maven-version}'
1313           pom: 'pom.xml'
1314           goals: 'clean install -DskipTests -B
1315             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
1316           settings: '{mvn-settings}'
1317           settings-type: cfp
1318           global-settings: 'global-settings'
1319           global-settings-type: cfp
1320
1321       - maven-target:
1322           maven-version: '{maven-version}'
1323           pom: '{pom}'
1324           goals: '{mvn-goals}'
1325           settings: '{mvn-settings}'
1326           settings-type: cfp
1327           global-settings: 'global-settings'
1328           global-settings-type: cfp
1329           properties:
1330             - maven.test.skip=true
1331             - docker.pull.registry=nexus3.onap.org:10001
1332             - docker.push.registry=nexus3.onap.org:10003
1333
1334       - shell: !include-raw-escape: include-docker-push.sh
1335
1336     publishers:
1337       - infra-shiplogs:
1338           maven-version: '{maven-version}'
1339
1340 - job-template:
1341     # Job template for Java merge jobs for SDC specific repos
1342     #
1343     # The purpose of this job template is to run:
1344     # 1. maven clean deploy
1345     #
1346     # Required Variables:
1347     #     branch:    git branch (eg. stable/lithium or master)
1348
1349     <<: *merge_java_defaults
1350     name: '{project-name}-{stream}-sdc-merge-java'
1351
1352     node: '{build-node}'
1353     build-timeout: 120
1354
1355     builders:
1356       - lf-infra-pre-build
1357       - provide-maven-settings:
1358           global-settings-file: 'global-settings'
1359           settings-file: '{mvn-settings}'
1360
1361       - docker-login
1362
1363       - maven-docker-push-daily:
1364           maven-version: '{maven-version}'
1365           mvn-settings: '{mvn-settings}'
1366           pom: '{docker-pom}'
1367           # use default as mvn-profile if profile is not needed
1368           mvn-profile: '{mvn-profile}'
1369           mvn-params: ''