Merge "Allow vars in verify job"
[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
582     properties:
583       - infra-properties:
584           build-days-to-keep: '{build-days-to-keep}'
585
586     parameters:
587       - infra-parameters:
588           project: '{project}'
589           branch: '{branch}'
590           refspec: 'refs/heads/{branch}'
591           artifacts: '{archive-artifacts}'
592       - maven-exec:
593           maven-version: '{maven-version}'
594
595     scm:
596       - gerrit-trigger-scm:
597           refspec: ''
598           choosing-strategy: 'default'
599           submodule-recursive: '{submodule-recursive}'
600
601     wrappers:
602       - infra-wrappers:
603           build-timeout: '{build-timeout}'
604
605     triggers:
606       - gerrit-trigger-patch-merged:
607           server: '{server-name}'
608           project: '{project}'
609           branch: '{branch}'
610           files: '{pattern}'
611
612     builders:
613       - lf-infra-pre-build
614       - provide-maven-settings:
615           global-settings-file: 'global-settings'
616           settings-file: '{mvn-settings}'
617       - maven-target:
618           maven-version: '{maven-version}'
619           pom: '{obj:pom}'
620           goals: 'clean deploy -B {mvn-params}
621             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
622           settings: '{mvn-settings}'
623           settings-type: cfp
624           global-settings: 'global-settings'
625           global-settings-type: cfp
626           properties: '{obj:mvn_properties}'
627
628     publishers:
629       - infra-shiplogs:
630           maven-version: '{maven-version}'
631
632 - job-template:
633     # Job template for Java merge jobs based on
634     #   '{project-name}-{stream}-merge-java'
635     # The purpose of this job template is to run:
636     # 1. maven clean deploy
637     #
638     # This project supports maven properties.
639     #
640     # Required Variables:
641     #     branch:    git branch (eg. stable/lithium or master)
642     #     maven-properties: properties passed to maven
643
644     <<: *merge_java_defaults
645     name: '{project-name}-{stream}-merge-properties-java'
646
647 - job-template:
648     # Job template for Java merge jobs that takes a maven template
649     #
650     # The purpose of this job template is to run:
651     # 1. maven clean deploy -P {mvn-profile}
652     #
653     # Required Variables:
654     #     branch:    git branch (eg. stable/lithium or master)
655
656     <<: *merge_java_defaults
657     name: '{project-name}-{stream}-merge-profile-java'
658
659     builders:
660       - lf-infra-pre-build
661       - provide-maven-settings:
662           global-settings-file: 'global-settings'
663           settings-file: '{mvn-settings}'
664
665       - docker-login
666
667       - maven-target:
668           maven-version: '{maven-version}'
669           goals: 'clean deploy -P {mvn-profile} -B
670             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
671           settings: '{mvn-settings}'
672           settings-type: cfp
673           global-settings: 'global-settings'
674           global-settings-type: cfp
675           properties:
676             - docker.pull.registry=nexus3.onap.org:10001
677             - docker.push.registry=nexus3.onap.org:10003
678
679 - job-template:
680     # Job template for Java merge jobs with POM not at the root
681     #
682     # The purpose of this job template is to run:
683     # 1. maven clean deploy
684     #
685     # This job supports subprojects.
686     #
687     # Required Variables:
688     #     branch:    git branch (eg. stable/lithium or master)
689     #     pom:       name/location of the pom.xml file relative to the workspace
690     #     pattern:   ant file-path pattern relative to the workspace used to
691     #                trigger the job
692
693     <<: *merge_java_defaults
694     name: '{project-name}-{stream}-{subproject}-merge-java'
695
696 - job-template: &docker_java_defaults
697     # Job template for Docker daily jobs
698     #
699     # The purpose of this job template is to run:
700     # 1. login to the docker registry
701     # 2. docker push
702     #
703     # Required Variables:
704     #     branch:    git branch (eg. stable/lithium or master)
705
706     name: '{project-name}-{stream}-docker-java-daily'
707     id: '{project-name}-{stream}-docker-java-daily'
708     project-type: freestyle
709     node: '{build-node}'
710     disabled: '{disabled}'
711     properties:
712       - infra-properties:
713           build-days-to-keep: '{build-days-to-keep}'
714
715     parameters:
716       - infra-parameters:
717           project: '{project}'
718           branch: '{branch}'
719           refspec: 'refs/heads/{branch}'
720           artifacts: '{archive-artifacts}'
721       - maven-exec:
722           maven-version: '{maven-version}'
723       - maven-params:
724           mvn-params: '{mvn-params}'
725
726     scm:
727       - gerrit-trigger-scm:
728           refspec: ''
729           choosing-strategy: 'default'
730           submodule-recursive: '{submodule-recursive}'
731
732     wrappers:
733       - infra-wrappers:
734           build-timeout: '{build-timeout}'
735
736     triggers:
737       # 12 AM UTC
738       - timed: '@daily'
739       - gerrit-trigger-release-manually:
740           server: '{server-name}'
741           project: '{project}'
742           branch: '{branch}'
743
744     builders:
745       - lf-infra-pre-build
746       - provide-maven-settings:
747           global-settings-file: 'global-settings'
748           settings-file: '{mvn-settings}'
749
750       - docker-login
751
752       - maven-docker-push-daily:
753           maven-version: '{maven-version}'
754           mvn-settings: '{mvn-settings}'
755           pom: '{docker-pom}'
756           # use default as mvn-profile if profile is not needed
757           mvn-profile: '{mvn-profile}'
758           mvn-params: '{mvn-params}'
759
760     publishers:
761       - infra-shiplogs:
762           maven-version: '{maven-version}'
763
764 - job-template:
765     # Job template for Docker daily jobs
766     #
767     # The purpose of this job template is to run:
768     # 1. login to the docker registry
769     # 2. docker push
770     #
771     # Required Variables:
772     #     branch:    git branch (eg. stable/lithium or master)
773
774     <<: *docker_java_defaults
775     name: '{project-name}-{stream}-docker-java-daily'
776     id: docker-java-daily
777     node: '{build-node}'
778     wrappers:
779       - infra-wrappers-docker-build:
780           build-timeout: '{build-timeout}'
781
782 - job-template:
783     # Job template for building & pushing docker images
784     #
785     # The purpose of this job template is to run:
786     #  1. login to the docker registry
787     #  2. maven clean deploy on the specified profile
788     #
789     # This job uses a conditional regex match step to set versions.
790     # This template supports maven properties.
791     #
792     # Required Variables:
793     #     pom:       name/location of the pom.xml file relative to the workspace
794     #     profile:   the docker profile defined in the pom
795     #     maven-properties: properties passed to maven
796
797     name: '{project-name}-{stream}-docker-java-properties-daily'
798     project-type: freestyle
799     node: '{build-node}'
800     disabled: '{disabled}'
801     properties:
802       - infra-properties:
803           build-days-to-keep: '{build-days-to-keep}'
804     parameters:
805       - infra-parameters:
806           project: '{project}'
807           branch: '{branch}'
808           refspec: 'refs/heads/{branch}'
809           artifacts: '{archive-artifacts}'
810       - maven-exec:
811           maven-version: '{maven-version}'
812       - maven-params:
813           mvn-params: '{mvn-params}'
814     scm:
815       - gerrit-trigger-scm:
816           refspec: ''
817           choosing-strategy: 'default'
818           submodule-recursive: '{submodule-recursive}'
819     wrappers:
820       - infra-wrappers:
821           build-timeout: '{build-timeout}'
822     triggers:
823       # 12 AM UTC
824       - timed: '@daily'
825       - gerrit-trigger-release-manually:
826           server: '{server-name}'
827           project: '{project}'
828           branch: '{branch}'
829     builders:
830       - lf-infra-pre-build
831       - provide-maven-settings:
832           global-settings-file: 'global-settings'
833           settings-file: '{mvn-settings}'
834       - conditional-step:
835           condition-kind: regex-match
836           regex: DoSetVersion
837           label: '{setVersion}'
838           steps:
839             - inject:
840                 properties-file: version.properties
841             - maven-set-release-version:
842                 maven-version: '{maven-version}'
843                 mvn-settings: '{mvn-settings}'
844                 pom:
845       - docker-login
846       - maven-docker-push-daily:
847           maven-version: '{maven-version}'
848           mvn-settings: '{mvn-settings}'
849           pom: '{docker-pom}'
850           properties: '{maven-properties}'
851           # use default as mvn-profile if profile is not needed
852           mvn-profile: '{mvn-profile}'
853           mvn-params: '{mvn-params}'
854     publishers:
855       - infra-shiplogs:
856           maven-version: '{maven-version}'
857
858 - job-template:
859     # Job template for building & pushing docker images
860     #
861     # The purpose of this job template is to run:
862     #  1. login to the docker registry
863     #  2. run a specified shell builder
864     #
865     # Required Variables:
866     #     pom:       name/location of the pom.xml file relative to the workspace
867     #     maven-properties: properties passed to maven
868
869     name: '{project-name}-{stream}-docker-java-shell-daily'
870     project-type: freestyle
871     node: '{build-node}'
872     disabled: '{disabled}'
873     properties:
874       - infra-properties:
875           build-days-to-keep: '{build-days-to-keep}'
876
877     parameters:
878       - infra-parameters:
879           project: '{project}'
880           branch: '{branch}'
881           refspec: 'refs/heads/{branch}'
882           artifacts: '{archive-artifacts}'
883       - maven-exec:
884           maven-version: '{maven-version}'
885
886     scm:
887       - gerrit-trigger-scm:
888           refspec: ''
889           choosing-strategy: 'default'
890           submodule-recursive: '{submodule-recursive}'
891
892     wrappers:
893       - infra-wrappers:
894           build-timeout: '{build-timeout}'
895
896     triggers:
897       # 12 AM UTC
898       - timed: '@daily'
899       - gerrit-trigger-release-manually:
900           server: '{server-name}'
901           project: '{project}'
902           branch: '{branch}'
903
904     builders:
905       - lf-infra-pre-build
906       - provide-maven-settings:
907           global-settings-file: 'global-settings'
908           settings-file: '{mvn-settings}'
909
910       - docker-login
911
912       - maven-target:
913           maven-version: '{maven-version}'
914           goals: '{mvn-goals}'
915           settings: '{mvn-settings}'
916           settings-type: cfp
917           global-settings: 'global-settings'
918           global-settings-type: cfp
919
920       - shell: '{script}'
921
922     publishers:
923       - infra-shiplogs:
924           maven-version: '{maven-version}'
925
926 - job-template:
927     # Job template for building & pushing docker images
928     #
929     # The purpose of this job template is to run:
930     #  1. login to the docker registry
931     #  2. run a specified shell builder
932     #
933     # Required Variables:
934     #     pom:       name/location of the pom.xml file relative to the workspace
935     #     maven-properties: properties passed to maven
936
937     name: '{project-name}-{stream}-{subproject}-docker-java-shell-daily'
938     project-type: freestyle
939     node: '{build-node}'
940     disabled: '{disabled}'
941     properties:
942       - infra-properties:
943           build-days-to-keep: '{build-days-to-keep}'
944
945     parameters:
946       - infra-parameters:
947           project: '{project}'
948           branch: '{branch}'
949           refspec: 'refs/heads/{branch}'
950           artifacts: '{archive-artifacts}'
951       - maven-exec:
952           maven-version: '{maven-version}'
953
954     scm:
955       - gerrit-trigger-scm:
956           refspec: ''
957           choosing-strategy: 'default'
958           submodule-recursive: '{submodule-recursive}'
959
960     wrappers:
961       - infra-wrappers:
962           build-timeout: '{build-timeout}'
963
964     triggers:
965       # 12 AM UTC
966       - timed: '@daily'
967       - gerrit-trigger-release-manually:
968           server: '{server-name}'
969           project: '{project}'
970           branch: '{branch}'
971
972     builders:
973       - lf-infra-pre-build
974       - provide-maven-settings:
975           global-settings-file: 'global-settings'
976           settings-file: '{mvn-settings}'
977
978       - docker-login
979
980       - maven-target:
981           maven-version: '{maven-version}'
982           pom: '{pom}'
983           goals: '{mvn-goals}'
984           settings: '{mvn-settings}'
985           settings-type: cfp
986           global-settings: 'global-settings'
987           global-settings-type: cfp
988
989       - shell: '{script}'
990
991     publishers:
992       - infra-shiplogs:
993           maven-version: '{maven-version}'
994
995 - job-template:
996     # Job template for building & pushing docker images
997     #
998     # The purpose of this job template is to run:
999     #  1. login to the docker registry
1000     #  2. inject a version.properties file and set versions
1001     #  3. run a specified shell builder
1002     #
1003     # Required Variables:
1004     #     pom:       name/location of the pom.xml file relative to the workspace
1005     #     maven-properties: properties passed to maven
1006
1007     name: '{project-name}-{stream}-docker-java-version-shell-daily'
1008     project-type: freestyle
1009     node: '{build-node}'
1010     disabled: '{disabled}'
1011     properties:
1012       - infra-properties:
1013           build-days-to-keep: '{build-days-to-keep}'
1014
1015     parameters:
1016       - infra-parameters:
1017           project: '{project}'
1018           branch: '{branch}'
1019           refspec: 'refs/heads/{branch}'
1020           artifacts: '{archive-artifacts}'
1021       - maven-exec:
1022           maven-version: '{maven-version}'
1023
1024     scm:
1025       - gerrit-trigger-scm:
1026           refspec: ''
1027           choosing-strategy: 'default'
1028           submodule-recursive: '{submodule-recursive}'
1029
1030     wrappers:
1031       - infra-wrappers:
1032           build-timeout: '{build-timeout}'
1033
1034     triggers:
1035       # 12 AM UTC
1036       - timed: '@daily'
1037       - gerrit-trigger-release-manually:
1038           server: '{server-name}'
1039           project: '{project}'
1040           branch: '{branch}'
1041
1042     builders:
1043       - lf-infra-pre-build
1044       - provide-maven-settings:
1045           global-settings-file: 'global-settings'
1046           settings-file: '{mvn-settings}'
1047
1048       - inject:
1049           properties-file: version.properties
1050       - maven-set-release-version:
1051           maven-version: '{maven-version}'
1052           mvn-settings: '{mvn-settings}'
1053           pom:
1054
1055       - docker-login
1056
1057       - maven-target:
1058           maven-version: '{maven-version}'
1059           goals: '{mvn-goals}'
1060           settings: '{mvn-settings}'
1061           settings-type: cfp
1062           global-settings: 'global-settings'
1063           global-settings-type: cfp
1064
1065       - shell: '{script}'
1066
1067     publishers:
1068       - infra-shiplogs:
1069           maven-version: '{maven-version}'
1070
1071 - job-template:
1072     # Job template for building & pushing docker images
1073     #
1074     # The purpose of this job template is to run:
1075     #  1. login to the docker registry
1076     #  2. inject a version.properties file and set versions
1077     #  3. run a specified shell builder
1078     #
1079     # This template supports subprojects.
1080     #
1081     # Required Variables:
1082     #     pom:       name/location of the pom.xml file relative to the workspace
1083     #     maven-properties: properties passed to maven
1084
1085     name: '{project-name}-{stream}-{subproject}-docker-java-version-shell-daily'
1086     project-type: freestyle
1087     node: 'ubuntu1604-docker-8c-8g'
1088     disabled: '{disabled}'
1089     properties:
1090       - infra-properties:
1091           build-days-to-keep: '{build-days-to-keep}'
1092
1093     parameters:
1094       - infra-parameters:
1095           project: '{project}'
1096           branch: '{branch}'
1097           refspec: 'refs/heads/{branch}'
1098           artifacts: '{archive-artifacts}'
1099       - maven-exec:
1100           maven-version: '{maven-version}'
1101
1102     scm:
1103       - gerrit-trigger-scm:
1104           refspec: ''
1105           choosing-strategy: 'default'
1106           submodule-recursive: '{submodule-recursive}'
1107
1108     wrappers:
1109       - infra-wrappers:
1110           build-timeout: '{build-timeout}'
1111
1112     triggers:
1113       # 12 AM UTC
1114       - timed: '@daily'
1115       - gerrit-trigger-release-manually:
1116           server: '{server-name}'
1117           project: '{project}'
1118           branch: '{branch}'
1119
1120     builders:
1121       - lf-infra-pre-build
1122       - provide-maven-settings:
1123           global-settings-file: 'global-settings'
1124           settings-file: '{mvn-settings}'
1125
1126       - inject:
1127           properties-file: version.properties
1128       - maven-set-release-version:
1129           maven-version: '{maven-version}'
1130           mvn-settings: '{mvn-settings}'
1131           pom: '{pom}'
1132
1133       - docker-login
1134
1135       - maven-target:
1136           maven-version: '{maven-version}'
1137           pom: '{pom}'
1138           goals: '{mvn-goals}'
1139           settings: '{mvn-settings}'
1140           settings-type: cfp
1141           global-settings: 'global-settings'
1142           global-settings-type: cfp
1143
1144       - shell: '{script}'
1145
1146     publishers:
1147       - infra-shiplogs:
1148           maven-version: '{maven-version}'
1149
1150 - job-template: &docker_version_java_defaults
1151     # Job template for building & pushing docker images
1152     #
1153     # The purpose of this job template is to run:
1154     #  1. login to the docker registry
1155     #  2. inject a version.properties file and set versions
1156     #  3. run a docker push
1157     #
1158     # Required Variables:
1159     #     pom:       name/location of the pom.xml file relative to the workspace
1160     #     profile:   the docker profile defined in the pom
1161     #     maven-properties: properties passed to maven
1162
1163     name: '{project-name}-{stream}-docker-version-java-daily'
1164     id: '{project-name}-{stream}-docker-version-java-daily'
1165     project-type: freestyle
1166     node: '{build-node}'
1167     disabled: '{disabled}'
1168     properties:
1169       - infra-properties:
1170           build-days-to-keep: '{build-days-to-keep}'
1171
1172     parameters:
1173       - infra-parameters:
1174           project: '{project}'
1175           branch: '{branch}'
1176           refspec: 'refs/heads/{branch}'
1177           artifacts: '{archive-artifacts}'
1178       - maven-exec:
1179           maven-version: '{maven-version}'
1180       - maven-params:
1181           mvn-params: '{mvn-params}'
1182
1183     scm:
1184       - gerrit-trigger-scm:
1185           refspec: ''
1186           choosing-strategy: 'default'
1187           submodule-recursive: '{submodule-recursive}'
1188
1189     wrappers:
1190       - infra-wrappers:
1191           build-timeout: '{build-timeout}'
1192
1193     triggers:
1194       # 12 AM UTC
1195       - timed: '@daily'
1196       - gerrit-trigger-release-manually:
1197           server: '{server-name}'
1198           project: '{project}'
1199           branch: '{branch}'
1200
1201     builders:
1202       - lf-infra-pre-build
1203       - provide-maven-settings:
1204           global-settings-file: 'global-settings'
1205           settings-file: '{mvn-settings}'
1206
1207       - inject:
1208           properties-file: version.properties
1209       - maven-set-release-version:
1210           maven-version: '{maven-version}'
1211           mvn-settings: '{mvn-settings}'
1212           pom:
1213
1214       - docker-login
1215
1216       - maven-docker-push-daily:
1217           maven-version: '{maven-version}'
1218           mvn-settings: '{mvn-settings}'
1219           pom: '{docker-pom}'
1220           # use default as mvn-profile if profile is not needed
1221           mvn-profile: '{mvn-profile}'
1222           mvn-params: '{mvn-params}'
1223
1224     publishers:
1225       - infra-shiplogs:
1226           maven-version: '{maven-version}'
1227
1228 - job-template:
1229     # Job template for building & pushing docker images
1230     #
1231     # The purpose of this job template is to run:
1232     #  1. login to the docker registry
1233     #  2. inject a version.properties file and set versions
1234     #  3. run a docker push
1235     #
1236     # Required Variables:
1237     #     pom:       name/location of the pom.xml file relative to the workspace
1238     #     profile:   the docker profile defined in the pom
1239     #     maven-properties: properties passed to maven
1240
1241     <<: *docker_version_java_defaults
1242     name: '{project-name}-{stream}-docker-version-java-daily'
1243     id: 'docker-version-java-daily'
1244     node: '{build-node}'
1245     wrappers:
1246       - infra-wrappers-docker-build:
1247           build-timeout: '{build-timeout}'
1248
1249 - job-template:
1250     # Job template for building & pushing docker images for AAI specific repos
1251     #
1252     # The purpose of this job template is to run:
1253     #  1. login to the docker registry
1254     #  2. run maven goals
1255     #  3. run include-docker-push.sh
1256     #
1257     # Required Variables:
1258     #     pom:       name/location of the pom.xml file relative to the workspace
1259     #     maven-properties: properties passed to maven
1260
1261     name: '{project-name}-{stream}-aai-docker-java-daily'
1262     project-type: freestyle
1263     node: '{build-node}'
1264     docker-image-name: ''
1265     disabled: '{disabled}'
1266     properties:
1267       - infra-properties:
1268           build-days-to-keep: '{build-days-to-keep}'
1269
1270     parameters:
1271       - infra-parameters:
1272           project: '{project}'
1273           branch: '{branch}'
1274           refspec: 'refs/heads/{branch}'
1275           artifacts: '{archive-artifacts}'
1276       - maven-exec:
1277           maven-version: '{maven-version}'
1278       - docker-image-name:
1279           docker-image-name: '{docker-image-name}'
1280
1281     scm:
1282       - gerrit-trigger-scm:
1283           refspec: ''
1284           choosing-strategy: 'default'
1285           submodule-recursive: '{submodule-recursive}'
1286
1287     wrappers:
1288       - infra-wrappers:
1289           build-timeout: '{build-timeout}'
1290
1291     triggers:
1292       # 12 AM UTC
1293       - timed: '@daily'
1294       - gerrit-trigger-release-manually:
1295           server: '{server-name}'
1296           project: '{project}'
1297           branch: '{branch}'
1298
1299     builders:
1300       - lf-infra-pre-build
1301       - provide-maven-settings:
1302           global-settings-file: 'global-settings'
1303           settings-file: '{mvn-settings}'
1304
1305       - docker-login
1306
1307       - maven-target:
1308           maven-version: '{maven-version}'
1309           pom: 'pom.xml'
1310           goals: 'clean install -DskipTests -B
1311             -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
1312           settings: '{mvn-settings}'
1313           settings-type: cfp
1314           global-settings: 'global-settings'
1315           global-settings-type: cfp
1316
1317       - maven-target:
1318           maven-version: '{maven-version}'
1319           pom: '{pom}'
1320           goals: '{mvn-goals}'
1321           settings: '{mvn-settings}'
1322           settings-type: cfp
1323           global-settings: 'global-settings'
1324           global-settings-type: cfp
1325           properties:
1326             - maven.test.skip=true
1327             - docker.pull.registry=nexus3.onap.org:10001
1328             - docker.push.registry=nexus3.onap.org:10003
1329
1330       - shell: !include-raw-escape: include-docker-push.sh
1331
1332     publishers:
1333       - infra-shiplogs:
1334           maven-version: '{maven-version}'
1335
1336 - job-template:
1337     # Job template for Java merge jobs for SDC specific repos
1338     #
1339     # The purpose of this job template is to run:
1340     # 1. maven clean deploy
1341     #
1342     # Required Variables:
1343     #     branch:    git branch (eg. stable/lithium or master)
1344
1345     <<: *merge_java_defaults
1346     name: '{project-name}-{stream}-sdc-merge-java'
1347
1348     node: '{build-node}'
1349     build-timeout: 120
1350
1351     builders:
1352       - lf-infra-pre-build
1353       - provide-maven-settings:
1354           global-settings-file: 'global-settings'
1355           settings-file: '{mvn-settings}'
1356
1357       - docker-login
1358
1359       - maven-docker-push-daily:
1360           maven-version: '{maven-version}'
1361           mvn-settings: '{mvn-settings}'
1362           pom: '{docker-pom}'
1363           # use default as mvn-profile if profile is not needed
1364           mvn-profile: '{mvn-profile}'
1365           mvn-params: ''