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