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