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