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