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