Merge "Add Docker Build"
[ci-management.git] / jjb / global-templates-java.yaml
1 ---
2 - job-template:
3     # Job template for Java verify jobs
4     #
5     # The purpose of this job template is to run "maven clean install" for
6     # projects using this template.
7     #
8     # Required Variables:
9     #     branch:    git branch (eg. stable/lithium or master)
10
11     name: '{project-name}-{stream}-verify-java-skip-tests'
12
13     project-type: freestyle
14     concurrent: true
15     node: '{build-node}'
16
17     properties:
18       - ecomp-infra-properties:
19           build-days-to-keep: '{build-days-to-keep}'
20
21     parameters:
22       - ecomp-infra-parameters:
23           project: '{project}'
24           branch: '{branch}'
25           refspec: 'refs/heads/{branch}'
26           artifacts: '{archive-artifacts}'
27
28     scm:
29       - gerrit-trigger-scm:
30           refspec: '$GERRIT_REFSPEC'
31           choosing-strategy: 'gerrit'
32
33     wrappers:
34       - ecomp-infra-wrappers:
35           build-timeout: '{build-timeout}'
36
37     triggers:
38       - gerrit-trigger-patch-submitted:
39           server: '{server-name}'
40           project: '{project}'
41           branch: '{branch}'
42           files: '**'
43
44     builders:
45       - provide-maven-settings:
46           global-settings-file: 'global-settings'
47           settings-file: '{mvn-settings}'
48       - maven-target:
49           maven-version: 'mvn33'
50           goals: 'clean install'
51           settings: '{mvn-settings}'
52           settings-type: cfp
53           global-settings: 'global-settings'
54           global-settings-type: cfp
55           maven-opts:
56             - maven.test.skip=true
57
58 #     publishers:
59 #       - ecomp-infra-shiplogs:
60 #           maven-version: 'mvn33'
61
62
63 - job-template:
64     # Job template for Java verify jobs
65     #
66     # The purpose of this job template is to run "maven clean install" for
67     # projects using this template.
68     #
69     # Required Variables:
70     #     branch:    git branch (eg. stable/lithium or master)
71
72     name: '{project-name}-{stream}-verify-java'
73
74     project-type: freestyle
75     concurrent: true
76     node: '{build-node}'
77
78     properties:
79       - ecomp-infra-properties:
80           build-days-to-keep: '{build-days-to-keep}'
81
82     parameters:
83       - ecomp-infra-parameters:
84           project: '{project}'
85           branch: '{branch}'
86           refspec: 'refs/heads/{branch}'
87           artifacts: '{archive-artifacts}'
88
89     scm:
90       - gerrit-trigger-scm:
91           refspec: '$GERRIT_REFSPEC'
92           choosing-strategy: 'gerrit'
93
94     wrappers:
95       - ecomp-infra-wrappers:
96           build-timeout: '{build-timeout}'
97
98     triggers:
99       - gerrit-trigger-patch-submitted:
100           server: '{server-name}'
101           project: '{project}'
102           branch: '{branch}'
103           files: '**'
104
105     builders:
106       - provide-maven-settings:
107           global-settings-file: 'global-settings'
108           settings-file: '{mvn-settings}'
109       - maven-target:
110           maven-version: 'mvn33'
111           goals: 'clean install'
112           settings: '{mvn-settings}'
113           settings-type: cfp
114           global-settings: 'global-settings'
115           global-settings-type: cfp
116
117 #     publishers:
118 #       - ecomp-infra-shiplogs:
119 #           maven-version: 'mvn33'
120
121 - job-template:
122     # Job template for Java verify jobs with POM not at the root
123     #
124     # The purpose of this job template is to run "maven clean install" for
125     # projects using this template.
126     #
127     # Required Variables:
128     #     branch:    git branch (eg. stable/lithium or master)
129     #     pom:       name/location of the pom.xml file relative to the workspace
130     #     pattern:   ant file-path pattern relative to the workspace used to
131     #                trigger the job
132
133     name: '{project-name}-{stream}-{subproject}-verify-java'
134
135     project-type: freestyle
136     concurrent: true
137     node: '{build-node}'
138
139     properties:
140       - ecomp-infra-properties:
141           build-days-to-keep: '{build-days-to-keep}'
142
143     parameters:
144       - ecomp-infra-parameters:
145           project: '{project}'
146           branch: '{branch}'
147           refspec: 'refs/heads/{branch}'
148           artifacts: '{archive-artifacts}'
149
150     scm:
151       - gerrit-trigger-scm:
152           refspec: '$GERRIT_REFSPEC'
153           choosing-strategy: 'gerrit'
154
155     wrappers:
156       - ecomp-infra-wrappers:
157           build-timeout: '{build-timeout}'
158
159     triggers:
160       - gerrit-trigger-patch-submitted:
161           server: '{server-name}'
162           project: '{project}'
163           branch: '{branch}'
164           files: '{pattern}'
165
166     builders:
167       - provide-maven-settings:
168           global-settings-file: 'global-settings'
169           settings-file: '{mvn-settings}'
170       - maven-target:
171           maven-version: 'mvn33'
172           pom: '{pom}'
173           goals: 'clean install'
174           settings: '{mvn-settings}'
175           settings-type: cfp
176           global-settings: 'global-settings'
177           global-settings-type: cfp
178
179 #     publishers:
180 #       - ecomp-infra-shiplogs:
181 #           maven-version: 'mvn33'
182
183 - job-template:
184     # Job template for Java daily release jobs
185     #
186     # The purpose of this job template is to run "maven version && maven clean
187     # deploy" for projects using this template.
188     #
189     # Required Variables:
190     #     branch:    git branch (eg. stable/lithium or master)
191     name: '{project-name}-{stream}-release-java-daily'
192
193     project-type: freestyle
194     node: '{build-node}'
195     maven-deploy-properties:
196     properties:
197       - ecomp-infra-properties:
198           build-days-to-keep: '{build-days-to-keep}'
199
200     parameters:
201       - ecomp-infra-parameters:
202           project: '{project}'
203           branch: '{branch}'
204           refspec: 'refs/heads/{branch}'
205           artifacts: '{archive-artifacts}'
206
207     scm:
208       - gerrit-trigger-scm:
209           refspec: ''
210           choosing-strategy: 'default'
211
212     wrappers:
213       - ecomp-infra-wrappers:
214           build-timeout: '{build-timeout}'
215
216     triggers:
217       # 11 AM UTC
218       - timed: 'H 11 * * *'
219       - gerrit-trigger-release-manually:
220           server: '{server-name}'
221           project: '{project}'
222           branch: '{branch}'
223
224     builders:
225       - provide-maven-settings:
226           global-settings-file: 'global-settings'
227           settings-file: '{mvn-settings}'
228
229       - maven-target:
230           maven-version: 'mvn33'
231           goals: 'clean deploy sonar:sonar -Dsonar.host.url=https://sonar.openecomp.org'
232           properties:
233             - '{maven-deploy-properties}'
234           settings: '{mvn-settings}'
235           settings-type: cfp
236           global-settings: 'global-settings'
237           global-settings-type: cfp
238
239 - job-template:
240     # Job template for Java daily release jobs
241     #
242     # The purpose of this job template is to run "maven version && maven clean
243     # deploy" for projects using this template.
244     #
245     # Required Variables:
246     #     branch:    git branch (eg. stable/lithium or master)
247     name: '{project-name}-{stream}-release-version-java-daily'
248
249     project-type: freestyle
250     node: '{build-node}'
251     maven-deploy-properties:
252     properties:
253       - ecomp-infra-properties:
254           build-days-to-keep: '{build-days-to-keep}'
255
256     parameters:
257       - ecomp-infra-parameters:
258           project: '{project}'
259           branch: '{branch}'
260           refspec: 'refs/heads/{branch}'
261           artifacts: '{archive-artifacts}'
262
263     scm:
264       - gerrit-trigger-scm:
265           refspec: ''
266           choosing-strategy: 'default'
267
268     wrappers:
269       - ecomp-infra-wrappers:
270           build-timeout: '{build-timeout}'
271
272     triggers:
273       # 11 AM UTC
274       - timed: 'H 11 * * *'
275       - gerrit-trigger-release-manually:
276           server: '{server-name}'
277           project: '{project}'
278           branch: '{branch}'
279
280     builders:
281       - provide-maven-settings:
282           global-settings-file: 'global-settings'
283           settings-file: '{mvn-settings}'
284
285       - inject:
286           properties-file: version.properties
287       - maven-target:
288           maven-version: 'mvn33'
289           goals: 'versions:set versions:update-child-modules versions:commit'
290           properties:
291             - 'newVersion=${{release_version}}'
292           settings: '{mvn-settings}'
293           settings-type: cfp
294           global-settings: 'global-settings'
295           global-settings-type: cfp
296
297       - maven-target:
298           maven-version: 'mvn33'
299           goals: 'clean deploy sonar:sonar -Dsonar.host.url=https://sonar.openecomp.org'
300           properties:
301             - '{maven-deploy-properties}'
302           settings: '{mvn-settings}'
303           settings-type: cfp
304           global-settings: 'global-settings'
305           global-settings-type: cfp
306
307 - job-template:
308     # Job template for Java daily release jobs with POM not at the root
309     #
310     # The purpose of this job template is to run "maven version && maven clean
311     # deploy" for projects using this template.
312     #
313     # Required Variables:
314     #     branch:    git branch (eg. stable/lithium or master)
315     #     pom:       name/location of the pom.xml file relative to the workspace
316
317
318     name: '{project-name}-{stream}-{subproject}-release-java-daily'
319
320     project-type: freestyle
321     node: '{build-node}'
322     maven-deploy-properties:
323     properties:
324       - ecomp-infra-properties:
325           build-days-to-keep: '{build-days-to-keep}'
326
327     parameters:
328       - ecomp-infra-parameters:
329           project: '{project}'
330           branch: '{branch}'
331           refspec: 'refs/heads/{branch}'
332           artifacts: '{archive-artifacts}'
333
334     scm:
335       - gerrit-trigger-scm:
336           refspec: ''
337           choosing-strategy: 'default'
338
339     wrappers:
340       - ecomp-infra-wrappers:
341           build-timeout: '{build-timeout}'
342
343     triggers:
344       # 11 AM UTC
345       - timed: 'H 11 * * *'
346       - gerrit-trigger-release-manually:
347           server: '{server-name}'
348           project: '{project}'
349           branch: '{branch}'
350
351     builders:
352       - provide-maven-settings:
353           global-settings-file: 'global-settings'
354           settings-file: '{mvn-settings}'
355
356       - maven-target:
357           maven-version: 'mvn33'
358           goals: 'clean deploy sonar:sonar -Dsonar.host.url=https://sonar.openecomp.org'
359           properties:
360             - '{maven-deploy-properties}'
361           settings: '{mvn-settings}'
362           settings-type: cfp
363           global-settings: 'global-settings'
364           global-settings-type: cfp
365
366 - job-template:
367     # Job template for Java merge jobs
368     #
369     # The purpose of this job template is to run "maven clean deploy" for
370     # projects using this template.
371     #
372     # Required Variables:
373     #     branch:    git branch (eg. stable/lithium or master)
374     name: '{project-name}-{stream}-merge-java'
375
376     project-type: freestyle
377     node: '{build-node}'
378
379     properties:
380       - ecomp-infra-properties:
381           build-days-to-keep: '{build-days-to-keep}'
382
383     parameters:
384       - ecomp-infra-parameters:
385           project: '{project}'
386           branch: '{branch}'
387           refspec: 'refs/heads/{branch}'
388           artifacts: '{archive-artifacts}'
389
390     scm:
391       - gerrit-trigger-scm:
392           refspec: ''
393           choosing-strategy: 'default'
394
395     wrappers:
396       - ecomp-infra-wrappers:
397           build-timeout: '{build-timeout}'
398
399     triggers:
400       - gerrit-trigger-patch-merged:
401           server: '{server-name}'
402           project: '{project}'
403           branch: '{branch}'
404           files: '**'
405
406     builders:
407       - provide-maven-settings:
408           global-settings-file: 'global-settings'
409           settings-file: '{mvn-settings}'
410       - maven-target:
411           maven-version: 'mvn33'
412           # yamllint disable rule:line-length
413           goals: 'clean deploy'
414           # yamllint enable
415           settings: '{mvn-settings}'
416           settings-type: cfp
417           global-settings: 'global-settings'
418           global-settings-type: cfp
419
420 #     publishers:
421 #       - ecomp-infra-shiplogs:
422 #           maven-version: 'mvn33'
423
424 - job-template:
425     # Job template for Java merge jobs that should also be triggered by upstream
426     # merges
427     #
428     # Required Variables:
429     #   stream:         release stream
430     #   branch:         git branch
431     #   dependencies:   fully qualified upstream job name to trigger on
432     #                   this may be ''
433     name: '{project-name}-{stream}-downstream-merge-java'
434
435     project-type: freestyle
436     node: '{build-node}'
437
438     properties:
439       - ecomp-infra-properties:
440           build-days-to-keep: '{build-days-to-keep}'
441
442     parameters:
443       - ecomp-infra-parameters:
444           project: '{project}'
445           branch: '{branch}'
446           refspec: 'refs/heads/{branch}'
447           artifacts: '{archive-artifacts}'
448
449     scm:
450       - gerrit-trigger-scm:
451           refspec: ''
452           choosing-strategy: 'default'
453
454     wrappers:
455       - ecomp-infra-wrappers:
456           build-timeout: '{build-timeout}'
457
458     triggers:
459       - reverse:
460           jobs: '{dependencies}'
461           result: 'success'
462       - gerrit-trigger-patch-merged:
463           server: '{server-name}'
464           project: '{project}'
465           branch: '{branch}'
466           files: '**'
467
468     builders:
469       - provide-maven-settings:
470           global-settings-file: 'global-settings'
471           settings-file: '{mvn-settings}'
472       - maven-target:
473           maven-version: 'mvn33'
474           # yamllint disable rule:line-length
475           goals: 'clean deploy'
476           # yamllint enable
477           settings: '{mvn-settings}'
478           settings-type: cfp
479           global-settings: 'global-settings'
480           global-settings-type: cfp
481
482 #     publishers:
483 #       - ecomp-infra-shiplogs:
484 #           maven-version: 'mvn33'
485
486 - job-template:
487     # Job template for Java merge jobs with POM not at the root
488     #
489     # The purpose of this job template is to run "maven clean deploy" for
490     # projects using this template.
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     #     pattern:   ant file-path pattern relative to the workspace used to
496     #                trigger the job
497
498     name: '{project-name}-{stream}-{subproject}-merge-java'
499
500     project-type: freestyle
501     node: '{build-node}'
502
503     properties:
504       - ecomp-infra-properties:
505           build-days-to-keep: '{build-days-to-keep}'
506
507     parameters:
508       - ecomp-infra-parameters:
509           project: '{project}'
510           branch: '{branch}'
511           refspec: 'refs/heads/{branch}'
512           artifacts: '{archive-artifacts}'
513
514     scm:
515       - gerrit-trigger-scm:
516           refspec: ''
517           choosing-strategy: 'default'
518
519     wrappers:
520       - ecomp-infra-wrappers:
521           build-timeout: '{build-timeout}'
522
523     triggers:
524       - gerrit-trigger-patch-merged:
525           server: '{server-name}'
526           project: '{project}'
527           branch: '{branch}'
528           files: '{pattern}'
529
530     builders:
531       - provide-maven-settings:
532           global-settings-file: 'global-settings'
533           settings-file: '{mvn-settings}'
534       - maven-target:
535           maven-version: 'mvn33'
536           pom: '{pom}'
537           # yamllint disable rule:line-length
538           goals: 'clean deploy'
539           # yamllint enable
540           settings: '{mvn-settings}'
541           settings-type: cfp
542           global-settings: 'global-settings'
543           global-settings-type: cfp
544
545 #     publishers:
546 #       - ecomp-infra-shiplogs:
547 #           maven-version: 'mvn33'
548
549 - job-template:
550     name: '{project-name}-{stream}-docker-java-daily'
551     project-type: freestyle
552     node: 'ubuntu1604-docker-8c-8g'
553
554     properties:
555       - ecomp-infra-properties:
556           build-days-to-keep: '{build-days-to-keep}'
557
558     parameters:
559       - ecomp-infra-parameters:
560           project: '{project}'
561           branch: '{branch}'
562           refspec: 'refs/heads/{branch}'
563           artifacts: '{archive-artifacts}'
564
565     scm:
566       - gerrit-trigger-scm:
567           refspec: ''
568           choosing-strategy: 'default'
569
570     wrappers:
571       - ecomp-infra-wrappers:
572           build-timeout: '{build-timeout}'
573
574     triggers:
575       # 12 AM UTC
576       - timed: 'H 12 * * *'
577       - gerrit-trigger-release-manually:
578           server: '{server-name}'
579           project: '{project}'
580           branch: '{branch}'
581
582     builders:
583
584       - provide-maven-settings:
585           global-settings-file: 'global-settings'
586           settings-file: '{mvn-settings}'
587
588       - docker-login
589
590       - maven-docker-push-daily:
591           mvn-settings: '{mvn-settings}'
592           pom: '{docker-pom}'
593           # use default as mvn-profile if profile is not needed
594           mvn-profile: '{mvn-profile}'
595
596 - job-template:
597     name: '{project-name}-{stream}-docker-java-shell-daily'
598     project-type: freestyle
599     node: 'ubuntu1604-docker-8c-8g'
600
601     properties:
602       - ecomp-infra-properties:
603           build-days-to-keep: '{build-days-to-keep}'
604
605     parameters:
606       - ecomp-infra-parameters:
607           project: '{project}'
608           branch: '{branch}'
609           refspec: 'refs/heads/{branch}'
610           artifacts: '{archive-artifacts}'
611
612     scm:
613       - gerrit-trigger-scm:
614           refspec: ''
615           choosing-strategy: 'default'
616
617     wrappers:
618       - ecomp-infra-wrappers:
619           build-timeout: '{build-timeout}'
620
621     triggers:
622       # 12 AM UTC
623       - timed: 'H 12 * * *'
624       - gerrit-trigger-release-manually:
625           server: '{server-name}'
626           project: '{project}'
627           branch: '{branch}'
628
629     builders:
630
631       - provide-maven-settings:
632           global-settings-file: 'global-settings'
633           settings-file: '{mvn-settings}'
634
635       - docker-login
636
637       - maven-docker-push-daily:
638           mvn-settings: '{mvn-settings}'
639           pom: '{docker-pom}'
640           # use default as mvn-profile if profile is not needed
641           mvn-profile: '{mvn-profile}'
642
643       - shell: '{script}'