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