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