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