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