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