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