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