Update automated project templates
[releng/builder.git] / jjb / next / next.yaml
1 # REMOVE THIS LINE IF YOU WANT TO CUSTOMIZE ANYTHING BELOW
2 # Otherwise this file will be automatically overwritten by the template
3 # autobuilder.
4
5 # ODL Releng build templates
6 - project:
7     name: next
8     jobs:
9         - 'next-verify-{stream}'
10         - 'next-merge-{stream}'
11         - 'next-daily-{stream}'
12         - 'next-distribution-{stream}'
13         - 'next-integration-{stream}'
14         - 'next-sonar'
15         - 'next-clm-{stream}'
16
17
18     # stream:    release stream (eg. stable-lithium or beryllium)
19     # branch:    git branch (eg. stable/lithium or master)
20     stream:
21         - beryllium:
22             branch: 'master'
23             jdk: openjdk7
24             jdks:
25                 - openjdk7
26
27     project: 'next'
28
29 # For the Job templates below replace instances of:
30 # PROJECT_SHORTNAME with your project name (eg. circuitsw)
31 # PROJECT_PATH with your project name (eg. ofextensions/circuitsw)
32 # MAVEN_GOALS with your maven goals to build
33 # MAVEN_OPTS with your maven options to build
34
35 - job-template:
36     name: 'next-verify-{stream}'
37
38     # Job template for ODL verify jobs
39     #
40     # The purpose of this job template is to setup a ODL verify job
41     #
42     # Required Variables:
43     #     stream:    release stream (eg. stable-lithium or beryllium)
44     #     branch:    git branch (eg. stable/lithium or master)
45
46     project-type: matrix
47     node: matrix_master
48     concurrent: true
49
50     axes:
51         - axis:
52             type: slave
53             name: nodes
54             values:
55                 - dynamic_verify
56         - axis:
57             type: jdk
58             values: '{obj:jdks}'
59
60     logrotate:
61         daysToKeep: '{build-days-to-keep}'
62         numToKeep: '{build-num-to-keep}'
63         artifactDaysToKeep: '{build-artifact-days-to-keep}'
64         artifactNumToKeep: '{build-artifact-num-to-keep}'
65
66     parameters:
67         - project-parameter:
68             project: '{project}'
69         - gerrit-parameter:
70             branch: '{branch}'
71
72     scm:
73         - gerrit-trigger-scm:
74             credentials-id: '{ssh-credentials}'
75             refspec: '$GERRIT_REFSPEC'
76             choosing-strategy: 'gerrit'
77
78     wrappers:
79         - build-timeout
80         - ssh-agent-credentials:
81             users:
82                 - '{ssh-credentials}'
83
84     triggers:
85         - gerrit-trigger-patch-submitted:
86             name: 'next'
87             branch: '{branch}'
88
89     builders:
90         - wipe-org-opendaylight-repo
91         - jacoco-nojava-workaround
92         - provide-maven-settings:
93             global-settings-file: '{odl-global-settings}'
94             settings-file: '{next-settings}'
95         - maven-target:
96             maven-version: '{mvn33}'
97             pom: 'pom.xml'
98             goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Dstream={stream}'
99             java-opts:
100                 - '-Xmx1024m -XX:MaxPermSize=256m'
101             settings: '{next-settings}'
102             global-settings: '{odl-global-settings}'
103
104     publishers:
105         - findbugs
106         - email-notification:
107             email-prefix: '[next]'
108         - jacoco-report
109
110 - job-template:
111     name: 'next-merge-{stream}'
112
113     # Job template for ODL merge jobs
114     #
115     # The purpose of this job template is to setup a ODL merge job
116     # and deploy artifacts to Nexus.
117     #
118     # Required Variables:
119     #     stream:    release stream (eg. stable-lithium or beryllium)
120     #     branch:    git branch (eg. stable/lithium or master)
121
122     project-type: maven
123     node: dynamic_merge
124     jdk: '{jdk}'
125
126     logrotate:
127         daysToKeep: '{build-days-to-keep}'
128         numToKeep: '{build-num-to-keep}'
129         artifactDaysToKeep: '{build-artifact-days-to-keep}'
130         artifactNumToKeep: '{build-artifact-num-to-keep}'
131
132     parameters:
133         - project-parameter:
134             project: '{project}'
135
136     scm:
137         - gerrit-trigger-scm:
138             credentials-id: '{ssh-credentials}'
139             refspec: ''
140             choosing-strategy: 'default'
141
142     wrappers:
143         - build-timeout
144         - ssh-agent-credentials:
145             users:
146                 - '{ssh-credentials}'
147
148     triggers:
149         - gerrit-trigger-patch-merged:
150             name: 'next'
151             branch: '{branch}'
152
153     prebuilders:
154         - wipe-org-opendaylight-repo
155         - jacoco-nojava-workaround
156         - provide-maven-settings:
157             global-settings-file: '{odl-global-settings}'
158             settings-file: '{next-settings}'
159
160     maven:
161         maven-name: '{mvn33}'
162         root-pom: 'pom.xml'
163         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Dmerge -Dstream={stream}'
164         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
165         settings: '{next-settings}'
166         global-settings: '{odl-global-settings}'
167         post-step-run-condition: UNSTABLE
168
169     postbuilders:
170         - conditional-step:
171             condition-kind: file-exists
172             condition-filename: deploy-site.xml
173             condition-basedir: workspace
174
175             # The strategy here is intentional to run Maven site:deploy twice
176             # once using regular pom.xml to produce a staged-site which is
177             # then used by deploy-site.xml to push to Nexus. This is a
178             # workaround to Maven Site's default linking code which creates
179             # incorrect URLs for sites due to auto-detection assuming your
180             # project is configured in a certain way which ODL is not.
181             steps:
182             - maven-target:
183                 maven-version: '{mvn33}'
184                 pom: pom.xml
185                 goals: 'site:deploy -Dstream={stream}'
186                 java-opts:
187                     - '-Xmx2g'
188                 settings: '{next-settings}'
189                 global-settings: '{odl-global-settings}'
190             - maven-target:
191                 maven-version: '{mvn33}'
192                 pom: deploy-site.xml
193                 goals: 'site:deploy -Dstream={stream}'
194                 java-opts:
195                     - '-Xmx2g'
196                 settings: '{next-settings}'
197                 global-settings: '{odl-global-settings}'
198
199     reporters:
200         - findbugs
201
202     publishers:
203         - email-notification:
204             email-prefix: '[next]'
205         - maven-deploy:
206             id: ''
207             unique-version: true
208             deploy-unstable: false
209         - jacoco-report
210
211 - job-template:
212     name: 'next-daily-{stream}'
213
214     # Job template for daily builders
215     #
216     # The purpose of this job template is to setup a daily/nightly
217     # builder and pushes to Sonar analysis.
218     #
219     # Required Variables:
220     #     stream:    release stream (eg. stable-lithium or beryllium)
221     #     branch:    git branch (eg. stable/lithium or master)
222
223     project-type: maven
224     node: dynamic_verify
225     jdk: '{jdk}'
226
227     logrotate:
228         daysToKeep: '{build-days-to-keep}'
229         numToKeep: '{build-num-to-keep}'
230         artifactDaysToKeep: '{build-artifact-days-to-keep}'
231         artifactNumToKeep: '{build-artifact-num-to-keep}'
232
233     parameters:
234         - project-parameter:
235             project: '{project}'
236
237     scm:
238         - git-scm:
239             credentials-id: '{ssh-credentials}'
240             refspec: ''
241             branch: '{branch}'
242
243     wrappers:
244         - build-timeout
245         - ssh-agent-credentials:
246             users:
247                 - '{ssh-credentials}'
248
249     triggers:
250         - timed: 'H H * * *'
251
252     prebuilders:
253         - wipe-org-opendaylight-repo
254         - jacoco-nojava-workaround
255         - provide-maven-settings:
256             global-settings-file: '{odl-global-settings}'
257             settings-file: '{next-settings}'
258
259     maven:
260         maven-name: '{mvn33}'
261         root-pom: 'pom.xml'
262         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
263         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
264         settings: '{next-settings}'
265         global-settings: '{odl-global-settings}'
266
267     reporters:
268         - findbugs
269
270     publishers:
271         - email-notification:
272             email-prefix: '[next]'
273         - jacoco-report
274
275 - job-template:
276     name: 'next-distribution-{stream}'
277
278     # Required variables:
279     #     stream:    release stream (eg. stable-lithium or beryllium)
280     #     branch:    git branch (eg. stable/lithium or master)
281
282     project-type: maven
283     node: dynamic_merge
284     jdk: '{jdk}'
285
286     logrotate:
287         daysToKeep: '{build-days-to-keep}'
288         numToKeep: '{build-num-to-keep}'
289         artifactDaysToKeep: '{build-artifact-days-to-keep}'
290         artifactNumToKeep: '{build-artifact-num-to-keep}'
291
292     parameters:
293         - project-parameter:
294             project: 'integration'
295
296     scm:
297         - git-scm:
298             credentials-id: '{ssh-credentials}'
299             refspec: ''
300             branch: '{branch}'
301
302     wrappers:
303         - build-timeout
304         - ssh-agent-credentials:
305             users:
306                 - '{ssh-credentials}'
307
308     triggers:
309         - reverse:
310             jobs: '{project}-merge-{stream}'
311             result: 'success'
312
313     prebuilders:
314         - wipe-org-opendaylight-repo
315         - provide-maven-settings:
316             global-settings-file: '{odl-global-settings}'
317             settings-file: '{next-settings}'
318
319     maven:
320         maven-name: '{mvn33}'
321         root-pom: 'pom.xml'
322         goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean install'
323         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
324         settings: '{integration-settings}'
325         global-settings: '{odl-global-settings}'
326
327     publishers:
328         - email-notification:
329             email-prefix: '[{project}]'
330         - maven-deploy:
331             id: ''
332             unique-version: true
333             deploy-unstable: false
334
335 - job-template:
336     name: 'next-integration-{stream}'
337     disabled: false
338
339     # Job template for ODL integration verify jobs
340     #
341     # This is similar to a normal verify job, but it runs
342     # when a project that's a dependency of your project
343     # is successfully built.
344     #
345     # Required Variables:
346     #     stream:    release stream (eg. stable-lithium or beryllium)
347     #     branch:    git branch (eg. stable/lithium or master)
348
349     project-type: maven
350     node: dynamic_merge
351     jdk: '{jdk}'
352
353     logrotate:
354         daysToKeep: '{build-days-to-keep}'
355         numToKeep: '{build-num-to-keep}'
356         artifactDaysToKeep: '{build-artifact-days-to-keep}'
357         artifactNumToKeep: '{build-artifact-num-to-keep}'
358
359     parameters:
360         - project-parameter:
361             project: '{project}'
362
363     scm:
364         - git-scm:
365             credentials-id: '{ssh-credentials}'
366             refspec: ''
367             branch: '{branch}'
368
369     wrappers:
370         - build-timeout
371         - ssh-agent-credentials:
372             users:
373                 - '{ssh-credentials}'
374
375     triggers:
376         - reverse:
377             jobs: 'odlparent-merge-{stream},controller-merge-{stream},yangtools-merge-{stream}'
378             result: 'success'
379
380     prebuilders:
381         - wipe-org-opendaylight-repo
382         - jacoco-nojava-workaround
383         - provide-maven-settings:
384             global-settings-file: '{odl-global-settings}'
385             settings-file: '{next-settings}'
386
387     maven:
388         maven-name: '{mvn33}'
389         root-pom: 'pom.xml'
390         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
391         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
392         settings: '{next-settings}'
393         global-settings: '{odl-global-settings}'
394
395     reporters:
396         - findbugs
397
398     publishers:
399         - email-notification:
400             email-prefix: '[next] [odlparent] [controller] [yangtools]'
401         - jacoco-report
402
403 - job-template:
404     name: 'next-sonar'
405
406     project-type: maven
407     node: dynamic_verify
408     jdk: 'openjdk7'
409
410     logrotate:
411         daysToKeep: '7'
412         numToKeep: '10'
413         artifactDaysToKeep: '1'
414         artifactNumToKeep: '1'
415
416     parameters:
417         - project-parameter:
418             project: '{project}'
419
420     scm:
421         - git-scm:
422             credentials-id: '{ssh-credentials}'
423             refspec: ''
424             branch: 'master'
425
426     wrappers:
427         - build-timeout
428         - ssh-agent-credentials:
429             users:
430                 - '{ssh-credentials}'
431
432     triggers:
433         - timed: 'H H * * *'
434         - gerrit-trigger-patch-sonar:
435             name: 'next'
436
437     prebuilders:
438         - wipe-org-opendaylight-repo
439         - jacoco-nojava-workaround
440         - provide-maven-settings:
441             global-settings-file: '{odl-global-settings}'
442             settings-file: '{next-settings}'
443
444     maven:
445         maven-name: '{mvn33}'
446         root-pom: 'pom.xml'
447         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Dsonar'
448         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
449         settings: '{next-settings}'
450         global-settings: '{odl-global-settings}'
451
452     reporters:
453         - findbugs
454
455     publishers:
456         - sonar:
457             language: 'java'
458             maven-opts: '-Xmx6144m -XX:MaxPermSize=1024m'
459         - email-notification:
460             email-prefix: '[next]'
461         - jacoco-report
462
463 - job-template:
464     name: 'next-clm-{stream}'
465
466     project-type: maven
467     node: dynamic_verify
468     jdk: '{jdk}'
469
470     logrotate:
471         daysToKeep: '{build-days-to-keep}'
472         numToKeep: '{build-num-to-keep}'
473         artifactDaysToKeep: '{build-artifact-days-to-keep}'
474         artifactNumToKeep: '{build-artifact-num-to-keep}'
475
476     parameters:
477         - project-parameter:
478             project: '{project}'
479
480     scm:
481         - git-scm:
482             credentials-id: '{ssh-credentials}'
483             refspec: ''
484             branch: '{branch}'
485
486     wrappers:
487         - build-timeout
488         - ssh-agent-credentials:
489             users:
490                 - '{ssh-credentials}'
491
492     triggers:
493         - timed: '@weekly'
494
495     prebuilders:
496         - wipe-org-opendaylight-repo
497         - provide-maven-settings:
498             global-settings-file: '{odl-global-settings}'
499             settings-file: '{next-settings}'
500
501     maven:
502         maven-name: '{mvn33}'
503         root-pom: 'pom.xml'
504         goals: 'com.sonatype.clm:clm-maven-plugin:index -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
505         maven-opts: '-Xmx4096m -XX:MaxPermSize=512m'
506         settings: '{next-settings}'
507         global-settings: '{odl-global-settings}'
508
509     postbuilders:
510         - check-clm:
511             application-name: next
512
513     publishers:
514         - email-notification:
515             email-prefix: '[next]'
516