Remove unused templates [1]
[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: &merge_java_defaults
335     # Job template for Java merge jobs
336     #
337     # The purpose of this job template is to run:
338     # 1. maven clean deploy
339     #
340     # Required Variables:
341     #     branch:    git branch (eg. stable/lithium or master)
342
343     name: '{project-name}-{stream}-merge-java'
344
345     project-type: freestyle
346     node: '{build-node}'
347     pattern: '**'
348     pom:
349     mvn_properties: []
350     mvn-params: ''
351     mvn-opts: ''
352     java-opts: ''
353
354     properties:
355       - infra-properties:
356           build-days-to-keep: '{build-days-to-keep}'
357
358     parameters:
359       - infra-parameters:
360           project: '{project}'
361           branch: '{branch}'
362           refspec: 'refs/heads/{branch}'
363           artifacts: '{archive-artifacts}'
364       - maven-exec:
365           maven-version: '{maven-version}'
366
367     scm:
368       - gerrit-trigger-scm:
369           refspec: ''
370           choosing-strategy: 'default'
371           submodule-recursive: '{submodule-recursive}'
372
373     wrappers:
374       - infra-wrappers:
375           build-timeout: '{build-timeout}'
376
377     triggers:
378       - gerrit-trigger-patch-merged:
379           server: '{server-name}'
380           project: '{project}'
381           branch: '{branch}'
382           files: '{pattern}'
383
384     builders:
385       - lf-infra-pre-build
386       - provide-maven-settings:
387           global-settings-file: 'global-settings'
388           settings-file: '{mvn-settings}'
389       - conditional-step:
390           condition-kind: regex-match
391           regex: .*(amd64|arm64).*
392           label: '{project-name}'
393           steps:
394             - shell: !include-raw-escape: global-jjb/shell/docker-login.sh
395       - maven-target:
396           maven-version: '{maven-version}'
397           pom: '{obj:pom}'
398           goals: 'clean deploy -B {mvn-params}
399             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
400           properties:
401             - MAVEN_OPTS='{mvn-opts}'
402           java-opts:
403             - "{java-opts}"
404           settings: '{mvn-settings}'
405           settings-type: cfp
406           global-settings: 'global-settings'
407           global-settings-type: cfp
408           properties: '{obj:mvn_properties}'
409
410     publishers:
411       - infra-shiplogs:
412           maven-version: '{maven-version}'
413
414 - job-template:
415     # Job template for Java merge jobs based on
416     #   '{project-name}-{stream}-merge-java'
417     # The purpose of this job template is to run:
418     # 1. maven clean deploy
419     #
420     # This project supports maven properties.
421     #
422     # Required Variables:
423     #     branch:    git branch (eg. stable/lithium or master)
424     #     maven-properties: properties passed to maven
425
426     <<: *merge_java_defaults
427     name: '{project-name}-{stream}-merge-properties-java'
428
429 - job-template:
430     # Job template for Java merge jobs that takes a maven template
431     #
432     # The purpose of this job template is to run:
433     # 1. maven clean deploy -P {mvn-profile}
434     #
435     # Required Variables:
436     #     branch:    git branch (eg. stable/lithium or master)
437
438     <<: *merge_java_defaults
439     name: '{project-name}-{stream}-merge-profile-java'
440
441     builders:
442       - lf-infra-pre-build
443       - provide-maven-settings:
444           global-settings-file: 'global-settings'
445           settings-file: '{mvn-settings}'
446
447       - docker-login
448
449       - maven-target:
450           maven-version: '{maven-version}'
451           goals: 'clean deploy -P {mvn-profile} -B
452             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
453           settings: '{mvn-settings}'
454           settings-type: cfp
455           global-settings: 'global-settings'
456           global-settings-type: cfp
457           properties:
458             - docker.pull.registry=nexus3.onap.org:10001
459             - docker.push.registry=nexus3.onap.org:10003
460
461 - job-template:
462     # Job template for Java merge jobs with POM not at the root
463     #
464     # The purpose of this job template is to run:
465     # 1. maven clean deploy
466     #
467     # This job supports subprojects.
468     #
469     # Required Variables:
470     #     branch:    git branch (eg. stable/lithium or master)
471     #     pom:       name/location of the pom.xml file relative to the workspace
472     #     pattern:   ant file-path pattern relative to the workspace used to
473     #                trigger the job
474
475     <<: *merge_java_defaults
476     name: '{project-name}-{stream}-{subproject}-merge-java'
477
478 - job-template: &docker_java_defaults
479     # Job template for Docker daily jobs
480     #
481     # The purpose of this job template is to run:
482     # 1. login to the docker registry
483     # 2. docker push
484     #
485     # Required Variables:
486     #     branch:    git branch (eg. stable/lithium or master)
487
488     name: '{project-name}-{stream}-docker-java-daily'
489     id: '{project-name}-{stream}-docker-java-daily'
490     project-type: freestyle
491     node: '{build-node}'
492     disabled: '{disabled}'
493     properties:
494       - infra-properties:
495           build-days-to-keep: '{build-days-to-keep}'
496
497     parameters:
498       - infra-parameters:
499           project: '{project}'
500           branch: '{branch}'
501           refspec: 'refs/heads/{branch}'
502           artifacts: '{archive-artifacts}'
503       - maven-exec:
504           maven-version: '{maven-version}'
505       - maven-params:
506           mvn-params: '{mvn-params}'
507
508     scm:
509       - gerrit-trigger-scm:
510           refspec: ''
511           choosing-strategy: 'default'
512           submodule-recursive: '{submodule-recursive}'
513
514     wrappers:
515       - infra-wrappers:
516           build-timeout: '{build-timeout}'
517
518     triggers:
519       # 12 AM UTC
520       - timed: '@daily'
521       - gerrit-trigger-release-manually:
522           server: '{server-name}'
523           project: '{project}'
524           branch: '{branch}'
525
526     builders:
527       - lf-infra-pre-build
528       - provide-maven-settings:
529           global-settings-file: 'global-settings'
530           settings-file: '{mvn-settings}'
531
532       - docker-login
533
534       - maven-docker-push-daily:
535           maven-version: '{maven-version}'
536           mvn-settings: '{mvn-settings}'
537           pom: '{docker-pom}'
538           # use default as mvn-profile if profile is not needed
539           mvn-profile: '{mvn-profile}'
540           mvn-params: '{mvn-params}'
541
542     publishers:
543       - infra-shiplogs:
544           maven-version: '{maven-version}'
545
546 - job-template:
547     # Job template for Docker daily jobs
548     #
549     # The purpose of this job template is to run:
550     # 1. login to the docker registry
551     # 2. docker push
552     #
553     # Required Variables:
554     #     branch:    git branch (eg. stable/lithium or master)
555
556     <<: *docker_java_defaults
557     name: '{project-name}-{stream}-docker-java-daily'
558     id: docker-java-daily
559     node: '{build-node}'
560     wrappers:
561       - infra-wrappers-docker-build:
562           build-timeout: '{build-timeout}'
563
564 - job-template:
565     # Job template for building & pushing docker images
566     #
567     # The purpose of this job template is to run:
568     #  1. login to the docker registry
569     #  2. run a specified shell builder
570     #
571     # Required Variables:
572     #     pom:       name/location of the pom.xml file relative to the workspace
573     #     maven-properties: properties passed to maven
574
575     name: '{project-name}-{stream}-docker-java-shell-daily'
576     project-type: freestyle
577     node: '{build-node}'
578     disabled: '{disabled}'
579     properties:
580       - infra-properties:
581           build-days-to-keep: '{build-days-to-keep}'
582
583     parameters:
584       - infra-parameters:
585           project: '{project}'
586           branch: '{branch}'
587           refspec: 'refs/heads/{branch}'
588           artifacts: '{archive-artifacts}'
589       - maven-exec:
590           maven-version: '{maven-version}'
591
592     scm:
593       - gerrit-trigger-scm:
594           refspec: ''
595           choosing-strategy: 'default'
596           submodule-recursive: '{submodule-recursive}'
597
598     wrappers:
599       - infra-wrappers:
600           build-timeout: '{build-timeout}'
601
602     triggers:
603       # 12 AM UTC
604       - timed: '@daily'
605       - gerrit-trigger-release-manually:
606           server: '{server-name}'
607           project: '{project}'
608           branch: '{branch}'
609
610     builders:
611       - lf-infra-pre-build
612       - provide-maven-settings:
613           global-settings-file: 'global-settings'
614           settings-file: '{mvn-settings}'
615
616       - docker-login
617
618       - maven-target:
619           maven-version: '{maven-version}'
620           goals: '{mvn-goals}'
621           settings: '{mvn-settings}'
622           settings-type: cfp
623           global-settings: 'global-settings'
624           global-settings-type: cfp
625
626       - shell: '{script}'
627
628     publishers:
629       - infra-shiplogs:
630           maven-version: '{maven-version}'
631
632 - job-template:
633     # Job template for building & pushing docker images
634     #
635     # The purpose of this job template is to run:
636     #  1. login to the docker registry
637     #  2. run a specified shell builder
638     #
639     # Required Variables:
640     #     pom:       name/location of the pom.xml file relative to the workspace
641     #     maven-properties: properties passed to maven
642
643     name: '{project-name}-{stream}-{subproject}-docker-java-shell-daily'
644     project-type: freestyle
645     node: '{build-node}'
646     disabled: '{disabled}'
647     properties:
648       - infra-properties:
649           build-days-to-keep: '{build-days-to-keep}'
650
651     parameters:
652       - infra-parameters:
653           project: '{project}'
654           branch: '{branch}'
655           refspec: 'refs/heads/{branch}'
656           artifacts: '{archive-artifacts}'
657       - maven-exec:
658           maven-version: '{maven-version}'
659
660     scm:
661       - gerrit-trigger-scm:
662           refspec: ''
663           choosing-strategy: 'default'
664           submodule-recursive: '{submodule-recursive}'
665
666     wrappers:
667       - infra-wrappers:
668           build-timeout: '{build-timeout}'
669
670     triggers:
671       # 12 AM UTC
672       - timed: '@daily'
673       - gerrit-trigger-release-manually:
674           server: '{server-name}'
675           project: '{project}'
676           branch: '{branch}'
677
678     builders:
679       - lf-infra-pre-build
680       - provide-maven-settings:
681           global-settings-file: 'global-settings'
682           settings-file: '{mvn-settings}'
683
684       - docker-login
685
686       - maven-target:
687           maven-version: '{maven-version}'
688           pom: '{pom}'
689           goals: '{mvn-goals}'
690           settings: '{mvn-settings}'
691           settings-type: cfp
692           global-settings: 'global-settings'
693           global-settings-type: cfp
694
695       - shell: '{script}'
696
697     publishers:
698       - infra-shiplogs:
699           maven-version: '{maven-version}'
700
701 - job-template:
702     # Job template for building & pushing docker images
703     #
704     # The purpose of this job template is to run:
705     #  1. login to the docker registry
706     #  2. inject a version.properties file and set versions
707     #  3. run a specified shell builder
708     #
709     # Required Variables:
710     #     pom:       name/location of the pom.xml file relative to the workspace
711     #     maven-properties: properties passed to maven
712
713     name: '{project-name}-{stream}-docker-java-version-shell-daily'
714     project-type: freestyle
715     node: '{build-node}'
716     disabled: '{disabled}'
717     properties:
718       - infra-properties:
719           build-days-to-keep: '{build-days-to-keep}'
720
721     parameters:
722       - infra-parameters:
723           project: '{project}'
724           branch: '{branch}'
725           refspec: 'refs/heads/{branch}'
726           artifacts: '{archive-artifacts}'
727       - maven-exec:
728           maven-version: '{maven-version}'
729
730     scm:
731       - gerrit-trigger-scm:
732           refspec: ''
733           choosing-strategy: 'default'
734           submodule-recursive: '{submodule-recursive}'
735
736     wrappers:
737       - infra-wrappers:
738           build-timeout: '{build-timeout}'
739
740     triggers:
741       # 12 AM UTC
742       - timed: '@daily'
743       - gerrit-trigger-release-manually:
744           server: '{server-name}'
745           project: '{project}'
746           branch: '{branch}'
747
748     builders:
749       - lf-infra-pre-build
750       - provide-maven-settings:
751           global-settings-file: 'global-settings'
752           settings-file: '{mvn-settings}'
753
754       - inject:
755           properties-file: version.properties
756       - maven-set-release-version:
757           maven-version: '{maven-version}'
758           mvn-settings: '{mvn-settings}'
759           pom:
760
761       - docker-login
762
763       - maven-target:
764           maven-version: '{maven-version}'
765           goals: '{mvn-goals}'
766           settings: '{mvn-settings}'
767           settings-type: cfp
768           global-settings: 'global-settings'
769           global-settings-type: cfp
770
771       - shell: '{script}'
772
773     publishers:
774       - infra-shiplogs:
775           maven-version: '{maven-version}'
776
777 - job-template:
778     # Job template for building & pushing docker images
779     #
780     # The purpose of this job template is to run:
781     #  1. login to the docker registry
782     #  2. inject a version.properties file and set versions
783     #  3. run a specified shell builder
784     #
785     # This template supports subprojects.
786     #
787     # Required Variables:
788     #     pom:       name/location of the pom.xml file relative to the workspace
789     #     maven-properties: properties passed to maven
790
791     name: '{project-name}-{stream}-{subproject}-docker-java-version-shell-daily'
792     project-type: freestyle
793     node: 'ubuntu1604-docker-8c-8g'
794     disabled: '{disabled}'
795     properties:
796       - infra-properties:
797           build-days-to-keep: '{build-days-to-keep}'
798
799     parameters:
800       - infra-parameters:
801           project: '{project}'
802           branch: '{branch}'
803           refspec: 'refs/heads/{branch}'
804           artifacts: '{archive-artifacts}'
805       - maven-exec:
806           maven-version: '{maven-version}'
807
808     scm:
809       - gerrit-trigger-scm:
810           refspec: ''
811           choosing-strategy: 'default'
812           submodule-recursive: '{submodule-recursive}'
813
814     wrappers:
815       - infra-wrappers:
816           build-timeout: '{build-timeout}'
817
818     triggers:
819       # 12 AM UTC
820       - timed: '@daily'
821       - gerrit-trigger-release-manually:
822           server: '{server-name}'
823           project: '{project}'
824           branch: '{branch}'
825
826     builders:
827       - lf-infra-pre-build
828       - provide-maven-settings:
829           global-settings-file: 'global-settings'
830           settings-file: '{mvn-settings}'
831
832       - inject:
833           properties-file: version.properties
834       - maven-set-release-version:
835           maven-version: '{maven-version}'
836           mvn-settings: '{mvn-settings}'
837           pom: '{pom}'
838
839       - docker-login
840
841       - maven-target:
842           maven-version: '{maven-version}'
843           pom: '{pom}'
844           goals: '{mvn-goals}'
845           settings: '{mvn-settings}'
846           settings-type: cfp
847           global-settings: 'global-settings'
848           global-settings-type: cfp
849
850       - shell: '{script}'
851
852     publishers:
853       - infra-shiplogs:
854           maven-version: '{maven-version}'
855
856 - job-template: &docker_version_java_defaults
857     # Job template for building & pushing docker images
858     #
859     # The purpose of this job template is to run:
860     #  1. login to the docker registry
861     #  2. inject a version.properties file and set versions
862     #  3. run a docker push
863     #
864     # Required Variables:
865     #     pom:       name/location of the pom.xml file relative to the workspace
866     #     profile:   the docker profile defined in the pom
867     #     maven-properties: properties passed to maven
868
869     name: '{project-name}-{stream}-docker-version-java-daily'
870     id: '{project-name}-{stream}-docker-version-java-daily'
871     project-type: freestyle
872     node: '{build-node}'
873     disabled: '{disabled}'
874     properties:
875       - infra-properties:
876           build-days-to-keep: '{build-days-to-keep}'
877
878     parameters:
879       - infra-parameters:
880           project: '{project}'
881           branch: '{branch}'
882           refspec: 'refs/heads/{branch}'
883           artifacts: '{archive-artifacts}'
884       - maven-exec:
885           maven-version: '{maven-version}'
886       - maven-params:
887           mvn-params: '{mvn-params}'
888
889     scm:
890       - gerrit-trigger-scm:
891           refspec: ''
892           choosing-strategy: 'default'
893           submodule-recursive: '{submodule-recursive}'
894
895     wrappers:
896       - infra-wrappers:
897           build-timeout: '{build-timeout}'
898
899     triggers:
900       # 12 AM UTC
901       - timed: '@daily'
902       - gerrit-trigger-release-manually:
903           server: '{server-name}'
904           project: '{project}'
905           branch: '{branch}'
906
907     builders:
908       - lf-infra-pre-build
909       - provide-maven-settings:
910           global-settings-file: 'global-settings'
911           settings-file: '{mvn-settings}'
912
913       - inject:
914           properties-file: version.properties
915       - maven-set-release-version:
916           maven-version: '{maven-version}'
917           mvn-settings: '{mvn-settings}'
918           pom:
919
920       - docker-login
921
922       - maven-docker-push-daily:
923           maven-version: '{maven-version}'
924           mvn-settings: '{mvn-settings}'
925           pom: '{docker-pom}'
926           # use default as mvn-profile if profile is not needed
927           mvn-profile: '{mvn-profile}'
928           mvn-params: '{mvn-params}'
929
930     publishers:
931       - infra-shiplogs:
932           maven-version: '{maven-version}'
933
934 - job-template:
935     # Job template for building & pushing docker images
936     #
937     # The purpose of this job template is to run:
938     #  1. login to the docker registry
939     #  2. inject a version.properties file and set versions
940     #  3. run a docker push
941     #
942     # Required Variables:
943     #     pom:       name/location of the pom.xml file relative to the workspace
944     #     profile:   the docker profile defined in the pom
945     #     maven-properties: properties passed to maven
946
947     <<: *docker_version_java_defaults
948     name: '{project-name}-{stream}-docker-version-java-daily'
949     id: 'docker-version-java-daily'
950     node: '{build-node}'
951     wrappers:
952       - infra-wrappers-docker-build:
953           build-timeout: '{build-timeout}'
954
955 - job-template:
956     # Job template for building & pushing docker images for AAI specific repos
957     #
958     # The purpose of this job template is to run:
959     #  1. login to the docker registry
960     #  2. run maven goals
961     #  3. run include-docker-push.sh
962     #
963     # Required Variables:
964     #     pom:       name/location of the pom.xml file relative to the workspace
965     #     maven-properties: properties passed to maven
966
967     name: '{project-name}-{stream}-aai-docker-java-daily'
968     project-type: freestyle
969     node: '{build-node}'
970     docker-image-name: ''
971     disabled: '{disabled}'
972     properties:
973       - infra-properties:
974           build-days-to-keep: '{build-days-to-keep}'
975
976     parameters:
977       - infra-parameters:
978           project: '{project}'
979           branch: '{branch}'
980           refspec: 'refs/heads/{branch}'
981           artifacts: '{archive-artifacts}'
982       - maven-exec:
983           maven-version: '{maven-version}'
984       - docker-image-name:
985           docker-image-name: '{docker-image-name}'
986
987     scm:
988       - gerrit-trigger-scm:
989           refspec: ''
990           choosing-strategy: 'default'
991           submodule-recursive: '{submodule-recursive}'
992
993     wrappers:
994       - infra-wrappers:
995           build-timeout: '{build-timeout}'
996
997     triggers:
998       # 12 AM UTC
999       - timed: '@daily'
1000       - gerrit-trigger-release-manually:
1001           server: '{server-name}'
1002           project: '{project}'
1003           branch: '{branch}'
1004
1005     builders:
1006       - lf-infra-pre-build
1007       - provide-maven-settings:
1008           global-settings-file: 'global-settings'
1009           settings-file: '{mvn-settings}'
1010
1011       - docker-login
1012
1013       - maven-target:
1014           maven-version: '{maven-version}'
1015           pom: 'pom.xml'
1016           goals: 'clean install -DskipTests -B
1017             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
1018           settings: '{mvn-settings}'
1019           settings-type: cfp
1020           global-settings: 'global-settings'
1021           global-settings-type: cfp
1022
1023       - maven-target:
1024           maven-version: '{maven-version}'
1025           pom: '{pom}'
1026           goals: '{mvn-goals}'
1027           settings: '{mvn-settings}'
1028           settings-type: cfp
1029           global-settings: 'global-settings'
1030           global-settings-type: cfp
1031           properties:
1032             - maven.test.skip=true
1033             - docker.pull.registry=nexus3.onap.org:10001
1034             - docker.push.registry=nexus3.onap.org:10003
1035
1036       - shell: !include-raw-escape: include-docker-push.sh
1037
1038     publishers:
1039       - infra-shiplogs:
1040           maven-version: '{maven-version}'
1041
1042 - job-template:
1043     # Job template for Java merge jobs for SDC specific repos
1044     #
1045     # The purpose of this job template is to run:
1046     # 1. maven clean deploy
1047     #
1048     # Required Variables:
1049     #     branch:    git branch (eg. stable/lithium or master)
1050
1051     <<: *merge_java_defaults
1052     name: '{project-name}-{stream}-sdc-merge-java'
1053
1054     node: '{build-node}'
1055     build-timeout: 120
1056
1057     builders:
1058       - lf-infra-pre-build
1059       - provide-maven-settings:
1060           global-settings-file: 'global-settings'
1061           settings-file: '{mvn-settings}'
1062
1063       - docker-login
1064
1065       - maven-docker-push-daily:
1066           maven-version: '{maven-version}'
1067           mvn-settings: '{mvn-settings}'
1068           pom: '{docker-pom}'
1069           # use default as mvn-profile if profile is not needed
1070           mvn-profile: '{mvn-profile}'
1071           mvn-params: ''
1072
1073 - job-template:
1074     # Job template for Java merge jobs on multiple architectures
1075     #
1076     # The purpose of this job template is to:
1077     # 1. Run parallel {project-name}-{stream}-verify-java jobs for each supported architecture
1078     # 2. Build and push a docker manifest list for the images created by
1079     #    the previous jobs
1080
1081     name: '{project-name}-multiarch-{stream}-merge-java'
1082     node: '{build-node}'
1083     project-type: multijob
1084     disabled: '{obj:disabled}'
1085     pattern: '**'
1086
1087     parameters:
1088       - lf-infra-parameters:
1089           project: '{project}'
1090           stream: '{stream}'
1091           branch: '{branch}'
1092       - string:
1093           name: DOCKER_REGISTRY
1094           default: 'none'
1095       - string:
1096           name: DOCKERHUB_REGISTRY
1097           default: 'registry-1.docker.io'
1098
1099     properties:
1100       - throttle:
1101           max-per-node: 1
1102           option: 'project'
1103       - build-blocker:
1104           use-build-blocker: true
1105           blocking-jobs:
1106             - '{project-name}-.*-merge-.*'
1107           blocking-level: 'NODE'
1108
1109     scm:
1110       - gerrit-trigger-scm:
1111           refspec: ''
1112           choosing-strategy: 'default'
1113           submodule-recursive: '{submodule-recursive}'
1114
1115     wrappers:
1116       - infra-wrappers:
1117           build-timeout: '{build-timeout}'
1118
1119     triggers:
1120       - gerrit-trigger-patch-merged:
1121           server: '{server-name}'
1122           project: '{project}'
1123           branch: '{branch}'
1124           files: '{pattern}'
1125
1126     builders:
1127       - multijob:
1128           name: 'build docker images'
1129           condition: ALWAYS
1130           execution-type: PARALLEL
1131           projects:
1132             - name: '{project-name}-amd64-{stream}-merge-java'
1133               kill-phase-on: FAILURE
1134               current-parameters: true
1135             - name: '{project-name}-arm64-{stream}-merge-java'
1136               kill-phase-on: NEVER
1137               current-parameters: true
1138       - multijob:
1139           name: 'publish docker manifest'
1140           condition: SUCCESSFUL
1141           execution-type: PARALLEL
1142           projects:
1143             - name: '{project-name}-docker-manifest-{stream}'
1144               current-parameters: true
1145               predefined-parameters: |
1146                 PARENT_JOB_NAME=$JOB_NAME
1147                 DOCKERHUB_REGISTRY=docker.io