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