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