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