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