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