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