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-distribution-check-{stream}'
14         - 'ovsdb-integration-{stream}'
15         - 'ovsdb-clm-{stream}'
16         - 'ovsdb-validate-autorelease-{stream}'
17
18
19     # stream:    release stream (eg. stable-lithium or beryllium)
20     # branch:    git branch (eg. stable/lithium or master)
21     stream:
22         - boron:
23             branch: 'master'
24             jdk: openjdk8
25             jdks:
26                 - openjdk8
27             disable_autorelease: False
28             disable_distribution_check: False
29         - beryllium:
30             branch: 'stable/beryllium'
31             jdk: openjdk7
32             jdks:
33                 - openjdk7
34                 - openjdk8
35             disable_autorelease: False
36             disable_distribution_check: False
37         - stable-lithium:
38             branch: 'stable/lithium'
39             jdk: openjdk7
40             jdks:
41                 - openjdk7
42             disable_autorelease: True
43             disable_distribution_check: True
44
45     project: 'ovsdb'
46
47 # For the Job templates below replace instances of:
48 # PROJECT_SHORTNAME with your project name (eg. circuitsw)
49 # PROJECT_PATH with your project name (eg. ofextensions/circuitsw)
50 # MAVEN_GOALS with your maven goals to build
51 # MAVEN_OPTS with your maven options to build
52
53 - job-template:
54     name: 'ovsdb-verify-{stream}'
55
56     # Job template for ODL verify jobs
57     #
58     # The purpose of this job template is to setup a ODL verify job
59     #
60     # Required Variables:
61     #     stream:    release stream (eg. stable-lithium or beryllium)
62     #     branch:    git branch (eg. stable/lithium or master)
63
64     project-type: matrix
65     node: matrix_master
66     concurrent: true
67
68     axes:
69         - axis:
70             type: slave
71             name: nodes
72             values:
73                 - dynamic_verify
74         - axis:
75             type: jdk
76             values: '{obj:jdks}'
77
78     logrotate:
79         daysToKeep: '14'
80
81     parameters:
82         - project-parameter:
83             project: '{project}'
84         - gerrit-parameters:
85             project: '{project}'
86             branch: '{branch}'
87             refspec: 'refs/heads/{branch}'
88
89     scm:
90         - gerrit-trigger-scm:
91             credentials-id: '{ssh-credentials}'
92             refspec: '$GERRIT_REFSPEC'
93             choosing-strategy: 'gerrit'
94
95     wrappers:
96         - build-timeout
97         - ssh-agent-credentials:
98             users:
99                 - '{ssh-credentials}'
100
101     triggers:
102         - gerrit-trigger-patch-submitted:
103             name: 'ovsdb'
104             branch: '{branch}'
105
106     builders:
107         - jacoco-nojava-workaround
108         - provide-maven-settings:
109             global-settings-file: 'odl-global-settings'
110             settings-file: 'ovsdb-settings'
111         - maven-target:
112             maven-version: '{mvn33}'
113             pom: 'pom.xml'
114             goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -V -B -Djenkins -Dstream={stream}'
115             java-opts:
116                 - '-Xmx1024m -XX:MaxPermSize=256m'
117             settings: 'ovsdb-settings'
118             settings-type: cfp
119             global-settings: 'odl-global-settings'
120             global-settings-type: cfp
121
122     publishers:
123         - archive-artifacts:
124             artifacts: '**/target/surefire-reports/*-output.txt, '
125         - findbugs
126         - email-notification:
127             email-prefix: '[ovsdb]'
128         - jacoco-report
129         - archive-build:
130             maven-version: '{mvn33}'
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: '14'
150         numToKeep: '10'
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-parameters:
158             project: '{project}'
159             branch: '{branch}'
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         - openstack:
174             single-use: true
175
176     triggers:
177         - timed: 'H H * * 0'
178         - gerrit-trigger-patch-merged:
179             name: 'ovsdb'
180             branch: '{branch}'
181
182     prebuilders:
183         - jacoco-nojava-workaround
184         - provide-maven-settings:
185             global-settings-file: 'odl-global-settings'
186             settings-file: 'ovsdb-settings'
187
188     maven:
189         maven-name: '{mvn33}'
190         root-pom: 'pom.xml'
191         goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -V -B -Djenkins -Dmerge -Dstream={stream}'
192         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
193         settings: 'ovsdb-settings'
194         settings-type: cfp
195         global-settings: 'odl-global-settings'
196         global-settings-type: cfp
197         post-step-run-condition: UNSTABLE
198
199     postbuilders:
200         - conditional-step:
201             condition-kind: file-exists
202             condition-filename: deploy-site.xml
203             condition-basedir: workspace
204
205             # The strategy here is intentional to run Maven site:deploy twice
206             # once using regular pom.xml to produce a staged-site which is
207             # then used by deploy-site.xml to push to Nexus. This is a
208             # workaround to Maven Site's default linking code which creates
209             # incorrect URLs for sites due to auto-detection assuming your
210             # project is configured in a certain way which ODL is not.
211             steps:
212             - maven-target:
213                 maven-version: '{mvn33}'
214                 pom: pom.xml
215                 goals: 'site:deploy -V -B -Dstream={stream}'
216                 java-opts:
217                     - '-Xmx2g'
218                 settings: 'ovsdb-settings'
219                 settings-type: cfp
220                 global-settings: 'odl-global-settings'
221                 global-settings-type: cfp
222             - maven-target:
223                 maven-version: '{mvn33}'
224                 pom: deploy-site.xml
225                 goals: 'site:deploy -V -B -Dstream={stream}'
226                 java-opts:
227                     - '-Xmx2g'
228                 settings: 'ovsdb-settings'
229                 settings-type: cfp
230                 global-settings: 'odl-global-settings'
231                 global-settings-type: cfp
232
233     reporters:
234         - findbugs
235
236     publishers:
237         - archive-artifacts:
238             artifacts: '**/target/surefire-reports/*-output.txt, '
239         - email-notification:
240             email-prefix: '[ovsdb]'
241         - maven-deploy:
242             id: ''
243             unique-version: true
244             deploy-unstable: false
245         - jacoco-report
246         - archive-build:
247             maven-version: '{mvn33}'
248
249 - job-template:
250     name: 'ovsdb-periodic-{stream}'
251     disabled: false
252
253     # Job template for periodic builders
254     #
255     # The purpose of this job template is to setup a periodic
256     # builder.
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: '14'
268         numToKeep: '10'
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         - openstack:
288             single-use: true
289
290     triggers:
291         - timed: '@daily'
292
293     prebuilders:
294         - jacoco-nojava-workaround
295         - provide-maven-settings:
296             global-settings-file: 'odl-global-settings'
297             settings-file: 'ovsdb-settings'
298
299     maven:
300         maven-name: '{mvn33}'
301         root-pom: 'pom.xml'
302         goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -V -B -Djenkins'
303         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
304         settings: 'ovsdb-settings'
305         settings-type: cfp
306         global-settings: 'odl-global-settings'
307         global-settings-type: cfp
308
309     reporters:
310         - findbugs
311
312     publishers:
313         - email-notification:
314             email-prefix: '[ovsdb]'
315         - jacoco-report
316         - archive-build:
317             maven-version: '{mvn33}'
318
319 - job-template:
320     name: 'ovsdb-distribution-{stream}'
321
322     # Required variables:
323     #     stream:    release stream (eg. stable-lithium or beryllium)
324     #     branch:    git branch (eg. stable/lithium or master)
325
326     project-type: maven
327     node: dynamic_merge
328     jdk: '{jdk}'
329
330     logrotate:
331         daysToKeep: '{build-days-to-keep}'
332         numToKeep: '{build-num-to-keep}'
333         artifactDaysToKeep: '{build-artifact-days-to-keep}'
334         artifactNumToKeep: '{build-artifact-num-to-keep}'
335
336     parameters:
337         - project-parameter:
338             project: 'integration/distribution'
339
340     scm:
341         - git-scm:
342             credentials-id: '{ssh-credentials}'
343             refspec: ''
344             branch: '{branch}'
345
346     wrappers:
347         - build-timeout
348         - ssh-agent-credentials:
349             users:
350                 - '{ssh-credentials}'
351         - openstack:
352             single-use: true
353
354     triggers:
355         - reverse:
356             jobs: '{project}-merge-{stream}'
357             result: 'success'
358
359     prebuilders:
360         - provide-maven-settings:
361             global-settings-file: 'odl-global-settings'
362             settings-file: 'ovsdb-settings'
363
364     maven:
365         maven-name: '{mvn33}'
366         root-pom: 'pom.xml'
367         goals: 'clean install -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
368         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
369         settings: 'integration-distribution-settings'
370         settings-type: cfp
371         global-settings: 'odl-global-settings'
372         global-settings-type: cfp
373
374     publishers:
375         - email-notification:
376             email-prefix: '[{project}]'
377         - maven-deploy:
378             id: ''
379             unique-version: true
380             deploy-unstable: false
381         - archive-build:
382             maven-version: '{mvn33}'
383
384 # Template: integration-patch-distribution-{stream}
385 # Goal: Build a patch and make sure the distribution can deploy with this change
386 # Operation: This job template builds a patch, creates a distribution containing
387 #            the patch, and triggers the distribution deploy test
388
389 - job-template:
390     name: 'ovsdb-distribution-check-{stream}'
391     disabled: '{obj:disable_distribution_check}'
392
393     project-type: maven
394     node: dynamic_verify
395     concurrent: true
396     jdk: '{jdk}'
397
398     logrotate:
399         daysToKeep: '{build-days-to-keep}'
400         numToKeep: '{build-num-to-keep}'
401         artifactDaysToKeep: '{build-artifact-days-to-keep}'
402         artifactNumToKeep: '{build-artifact-num-to-keep}'
403
404     parameters:
405         - gerrit-parameters:
406             project: '{project}'
407             branch: '{branch}'
408             refspec: 'refs/heads/{branch}'
409         - project-parameter:
410             project: '{project}'
411         - integration-distribution-git-url
412
413     scm:
414         - integration-gerrit-scm:
415             credentials-id: '{ssh-credentials}'
416             basedir: '$GERRIT_PROJECT'
417             refspec: '$GERRIT_REFSPEC'
418             branch: '{branch}'
419         - integration-distribution-scm:
420             credentials-id: '{ssh-credentials}'
421             branch: '{branch}'
422
423     wrappers:
424         - build-timeout
425         - ssh-agent-credentials:
426             users:
427                 - '{ssh-credentials}'
428         - openstack:
429             single-use: true
430
431     triggers:
432         - gerrit:
433             server-name: 'OpenDaylight'
434             trigger-on:
435                 - patchset-created-event:
436                     exclude-drafts: 'true'
437                     exclude-trivial-rebase: 'false'
438                     exclude-no-code-change: 'true'
439                 - draft-published-event
440                 - comment-added-contains-event:
441                     comment-contains-value: 'test-distribution'
442                 - comment-added-contains-event:
443                     comment-contains-value: 'reverify'
444                 - comment-added-contains-event:
445                     comment-contains-value: 'recheck'
446             projects:
447               - project-compare-type: 'ANT'
448                 project-pattern: '{name}'
449                 branches:
450                   - branch-compare-type: 'ANT'
451                     branch-pattern: '**/{branch}'
452             skip-vote:
453                 successful: false
454                 failed: false
455                 unstable: false
456                 notbuilt: false
457
458     prebuilders:
459         - maven-target:
460             maven-version: '{mvn33}'
461             pom: '$GERRIT_PROJECT/pom.xml'
462             goals: 'clean install -V -B -Djenkins -DskipTests -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true -Dmaven.site.skip=true -DgenerateReports=false -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -Dstream={stream}'
463             java-opts:
464                 - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
465             settings: 'ovsdb-settings'
466             settings-type: cfp
467             global-settings: 'odl-global-settings'
468             global-settings-type: cfp
469
470     maven:
471         maven-name: '{mvn33}'
472         root-pom: 'distribution/pom.xml'
473         goals: 'clean install -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
474         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
475         settings: 'ovsdb-settings'
476         settings-type: cfp
477         global-settings: 'odl-global-settings'
478         global-settings-type: cfp
479         ignore-upstream-changes: true
480         post-step-run-condition: 'SUCCESS'
481
482     postbuilders:
483         - integration-distribution-check
484
485     publishers:
486         - archive:
487             artifacts: 'karaf.log'
488         - archive:
489             artifacts: 'karaf_console.log'
490         - email-notification:
491             email-prefix: '[ovsdb]'
492         - archive-build:
493             maven-version: '{mvn33}'
494
495 - job-template:
496     name: 'ovsdb-integration-{stream}'
497     disabled: false
498
499     # Job template for ODL integration verify jobs
500     #
501     # This is similar to a normal verify job, but it runs
502     # when a project that's a dependency of your project
503     # is successfully built.
504     #
505     # Required Variables:
506     #     stream:    release stream (eg. stable-lithium or beryllium)
507     #     branch:    git branch (eg. stable/lithium or master)
508
509     project-type: maven
510     node: dynamic_merge
511     jdk: '{jdk}'
512
513     logrotate:
514         daysToKeep: '{build-days-to-keep}'
515         numToKeep: '{build-num-to-keep}'
516         artifactDaysToKeep: '{build-artifact-days-to-keep}'
517         artifactNumToKeep: '{build-artifact-num-to-keep}'
518
519     parameters:
520         - project-parameter:
521             project: '{project}'
522
523     scm:
524         - git-scm:
525             credentials-id: '{ssh-credentials}'
526             refspec: ''
527             branch: '{branch}'
528
529     wrappers:
530         - build-timeout
531         - ssh-agent-credentials:
532             users:
533                 - '{ssh-credentials}'
534         - openstack:
535             single-use: true
536
537     triggers:
538         - reverse:
539             jobs: 'odlparent-merge-{stream},controller-merge-{stream},yangtools-merge-{stream}'
540             result: 'success'
541
542     prebuilders:
543         - jacoco-nojava-workaround
544         - provide-maven-settings:
545             global-settings-file: 'odl-global-settings'
546             settings-file: 'ovsdb-settings'
547
548     maven:
549         maven-name: '{mvn33}'
550         root-pom: 'pom.xml'
551         goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -V -B -Djenkins'
552         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
553         settings: 'ovsdb-settings'
554         settings-type: cfp
555         global-settings: 'odl-global-settings'
556         global-settings-type: cfp
557
558     reporters:
559         - findbugs
560
561     publishers:
562         - email-notification:
563             email-prefix: '[ovsdb] [odlparent] [controller] [yangtools]'
564         - jacoco-report
565         - archive-build:
566             maven-version: '{mvn33}'
567
568 - job-template:
569     name: 'ovsdb-clm-{stream}'
570     disabled: false
571
572     project-type: maven
573     node: dynamic_verify
574     jdk: '{jdk}'
575
576     logrotate:
577         daysToKeep: '{build-days-to-keep}'
578         numToKeep: '{build-num-to-keep}'
579         artifactDaysToKeep: '{build-artifact-days-to-keep}'
580         artifactNumToKeep: '{build-artifact-num-to-keep}'
581
582     parameters:
583         - project-parameter:
584             project: '{project}'
585
586     scm:
587         - git-scm:
588             credentials-id: '{ssh-credentials}'
589             refspec: ''
590             branch: '{branch}'
591
592     wrappers:
593         - build-timeout
594         - ssh-agent-credentials:
595             users:
596                 - '{ssh-credentials}'
597         - openstack:
598             single-use: true
599
600     triggers:
601         - timed: 'H H * * 6'
602
603     prebuilders:
604         - provide-maven-settings:
605             global-settings-file: 'odl-global-settings'
606             settings-file: 'ovsdb-settings'
607
608     maven:
609         maven-name: '{mvn33}'
610         root-pom: 'pom.xml'
611         goals: 'clean install com.sonatype.clm:clm-maven-plugin:index -V -B -Djenkins -DskipTests=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
612         maven-opts: '-Xmx4096m -XX:MaxPermSize=512m'
613         settings: 'ovsdb-settings'
614         settings-type: cfp
615         global-settings: 'odl-global-settings'
616         global-settings-type: cfp
617
618     postbuilders:
619         - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
620         - check-clm:
621             application-name: ovsdb
622
623     publishers:
624         - email-notification:
625             email-prefix: '[ovsdb]'
626         - archive-build:
627             maven-version: '{mvn33}'
628
629 - job-template:
630     name: 'ovsdb-validate-autorelease-{stream}'
631     disabled: '{obj:disable_autorelease}'
632
633     project-type: maven
634     node: dynamic_verify
635     concurrent: true
636     jdk: '{jdk}'
637
638     logrotate:
639         daysToKeep: '{build-days-to-keep}'
640         numToKeep: '{build-num-to-keep}'
641         artifactDaysToKeep: '{build-artifact-days-to-keep}'
642         artifactNumToKeep: '{build-artifact-num-to-keep}'
643
644     parameters:
645         - project-parameter:
646             project: '{project}'
647         - gerrit-parameters:
648             project: '{project}'
649             branch: '{branch}'
650             refspec: 'refs/heads/{branch}'
651         - autorelease-release-tag:
652             release-tag: 'validate'
653         - autorelease-release-branch:
654             release-branch: '{branch}'
655         - string:
656             name: CLONE_URL
657             default: 'ssh://jenkins-$SILO@git.opendaylight.org:29418/releng/autorelease'
658             description: "Autorelease clone URL"
659
660     scm:
661         - git:
662             url: '$CLONE_URL'
663             credentials-id: '{ssh-credentials}'
664             refspec: ''
665             branches:
666                 - 'origin/{branch}'
667             skip-tag: true
668             submodule:
669                 recursive: true
670                 timeout: 60
671
672     wrappers:
673         - autorelease-build-timeout
674         - ssh-agent-credentials:
675             users:
676                 - '{ssh-credentials}'
677         - openstack:
678             single-use: true
679
680     triggers:
681         - gerrit:
682             server-name: 'OpenDaylight'
683             trigger-on:
684                 - patchset-created-event:
685                     exclude-drafts: 'true'
686                     exclude-trivial-rebase: 'false'
687                     exclude-no-code-change: 'true'
688                 - draft-published-event
689                 - comment-added-contains-event:
690                     comment-contains-value: 'recheck'
691                 - comment-added-contains-event:
692                     comment-contains-value: 'reverify'
693                 - comment-added-contains-event:
694                     comment-contains-value: 'revalidate'
695             projects:
696               - project-compare-type: 'ANT'
697                 project-pattern: 'ovsdb'
698                 branches:
699                   - branch-compare-type: 'ANT'
700                     branch-pattern: '**/{branch}'
701                 file-paths:
702                     - compare-type: ANT
703                       pattern: '**/*.xml'
704
705     prebuilders:
706         - jacoco-nojava-workaround
707         - autorelease-checkout-gerrit-patch
708         - autorelease-generate-release-patches
709         - maven-target:
710             maven-version: '{mvn33}'
711             pom: validate-pom.xml
712             goals: 'clean install -V -B -T1.5C -Djenkins -DskipTests -Dcheckstyle.skip=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
713             java-opts:
714             - '-Xmx8g'
715             settings: 'autorelease-settings'
716             settings-type: cfp
717             global-settings: 'odl-global-settings'
718             global-settings-type: cfp
719
720     maven:
721         maven-name: '{mvn33}'
722         root-pom: 'pom.xml'
723         goals: 'clean validate -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
724         maven-opts: '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
725         settings: 'autorelease-settings'
726         settings-type: cfp
727         global-settings: 'odl-global-settings'
728         global-settings-type: cfp
729         automatic-archiving: false
730         post-step-run-condition: UNSTABLE
731
732     postbuilders:
733         - autorelease-sys-stats
734
735     publishers:
736         - email-notification:
737             email-prefix: '[autorelease] [ovsdb]'
738         - archive-build:
739             maven-version: '{mvn33}'
740