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