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