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