Merge "Rename extension back to md"
[releng/builder.git] / jjb / discovery / discovery.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: discovery
8     jobs:
9         - 'discovery-verify-{stream}'
10         - 'discovery-merge-{stream}'
11         - 'discovery-periodic-{stream}'
12         - 'discovery-distribution-{stream}'
13         - 'discovery-integration-{stream}'
14         - 'discovery-sonar'
15         - 'discovery-clm-{stream}'
16         - 'discovery-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         - beryllium:
23             branch: 'master'
24             jdk: openjdk7
25             jdks:
26                 - openjdk7
27             disable_autorelease: True
28
29     project: 'discovery'
30
31 # For the Job templates below replace instances of:
32 # PROJECT_SHORTNAME with your project name (eg. circuitsw)
33 # PROJECT_PATH with your project name (eg. ofextensions/circuitsw)
34 # MAVEN_GOALS with your maven goals to build
35 # MAVEN_OPTS with your maven options to build
36
37 - job-template:
38     name: 'discovery-verify-{stream}'
39
40     # Job template for ODL verify jobs
41     #
42     # The purpose of this job template is to setup a ODL verify job
43     #
44     # Required Variables:
45     #     stream:    release stream (eg. stable-lithium or beryllium)
46     #     branch:    git branch (eg. stable/lithium or master)
47
48     project-type: matrix
49     node: matrix_master
50     concurrent: true
51
52     axes:
53         - axis:
54             type: slave
55             name: nodes
56             values:
57                 - dynamic_verify
58         - axis:
59             type: jdk
60             values: '{obj:jdks}'
61
62     logrotate:
63         daysToKeep: '{build-days-to-keep}'
64         numToKeep: '{build-num-to-keep}'
65         artifactDaysToKeep: '{build-artifact-days-to-keep}'
66         artifactNumToKeep: '{build-artifact-num-to-keep}'
67
68     parameters:
69         - project-parameter:
70             project: '{project}'
71         - gerrit-parameter:
72             branch: '{branch}'
73         - gerrit-refspec-parameter:
74             refspec: 'refs/heads/{branch}'
75
76     scm:
77         - gerrit-trigger-scm:
78             credentials-id: '{ssh-credentials}'
79             refspec: '$GERRIT_REFSPEC'
80             choosing-strategy: 'gerrit'
81
82     wrappers:
83         - build-timeout
84         - ssh-agent-credentials:
85             users:
86                 - '{ssh-credentials}'
87
88     triggers:
89         - gerrit-trigger-patch-submitted:
90             name: 'discovery'
91             branch: '{branch}'
92
93     builders:
94         - wipe-org-opendaylight-repo
95         - jacoco-nojava-workaround
96         - provide-maven-settings:
97             global-settings-file: '{odl-global-settings}'
98             settings-file: '{discovery-settings}'
99         - maven-target:
100             maven-version: '{mvn33}'
101             pom: 'pom.xml'
102             goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins -Dstream={stream}'
103             java-opts:
104                 - '-Xmx1024m -XX:MaxPermSize=256m'
105             settings: '{discovery-settings}'
106             global-settings: '{odl-global-settings}'
107
108     publishers:
109         - findbugs
110         - email-notification:
111             email-prefix: '[discovery]'
112         - jacoco-report
113
114 - job-template:
115     name: 'discovery-merge-{stream}'
116
117     # Job template for ODL merge jobs
118     #
119     # The purpose of this job template is to setup a ODL merge job
120     # and deploy artifacts to Nexus.
121     #
122     # Required Variables:
123     #     stream:    release stream (eg. stable-lithium or beryllium)
124     #     branch:    git branch (eg. stable/lithium or master)
125
126     project-type: maven
127     node: dynamic_merge
128     jdk: '{jdk}'
129
130     logrotate:
131         daysToKeep: '{build-days-to-keep}'
132         numToKeep: '{build-num-to-keep}'
133         artifactDaysToKeep: '{build-artifact-days-to-keep}'
134         artifactNumToKeep: '{build-artifact-num-to-keep}'
135
136     parameters:
137         - project-parameter:
138             project: '{project}'
139         - gerrit-parameter:
140             branch: '{branch}'
141         - gerrit-refspec-parameter:
142             refspec: 'refs/heads/{branch}'
143
144     scm:
145         - gerrit-trigger-scm:
146             credentials-id: '{ssh-credentials}'
147             refspec: ''
148             choosing-strategy: 'default'
149
150     wrappers:
151         - build-timeout
152         - ssh-agent-credentials:
153             users:
154                 - '{ssh-credentials}'
155
156     triggers:
157         - gerrit-trigger-patch-merged:
158             name: 'discovery'
159             branch: '{branch}'
160
161     prebuilders:
162         - wipe-org-opendaylight-repo
163         - jacoco-nojava-workaround
164         - provide-maven-settings:
165             global-settings-file: '{odl-global-settings}'
166             settings-file: '{discovery-settings}'
167
168     maven:
169         maven-name: '{mvn33}'
170         root-pom: 'pom.xml'
171         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins -Dmerge -Dstream={stream}'
172         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
173         settings: '{discovery-settings}'
174         global-settings: '{odl-global-settings}'
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 -Dstream={stream}'
194                 java-opts:
195                     - '-Xmx2g'
196                 settings: '{discovery-settings}'
197                 global-settings: '{odl-global-settings}'
198             - maven-target:
199                 maven-version: '{mvn33}'
200                 pom: deploy-site.xml
201                 goals: 'site:deploy -Dstream={stream}'
202                 java-opts:
203                     - '-Xmx2g'
204                 settings: '{discovery-settings}'
205                 global-settings: '{odl-global-settings}'
206
207     reporters:
208         - findbugs
209
210     publishers:
211         - archive-artifacts:
212             artifacts: '**/target/surefire-reports/*-output.txt, '
213         - email-notification:
214             email-prefix: '[discovery]'
215         - maven-deploy:
216             id: ''
217             unique-version: true
218             deploy-unstable: false
219         - jacoco-report
220
221 - job-template:
222     name: 'discovery-periodic-{stream}'
223
224     # Job template for periodic builders
225     #
226     # The purpose of this job template is to setup a periodic
227     # builder.
228     #
229     # Required Variables:
230     #     stream:    release stream (eg. stable-lithium or beryllium)
231     #     branch:    git branch (eg. stable/lithium or master)
232
233     project-type: maven
234     node: dynamic_verify
235     jdk: '{jdk}'
236
237     logrotate:
238         daysToKeep: '{build-days-to-keep}'
239         numToKeep: '{build-num-to-keep}'
240         artifactDaysToKeep: '{build-artifact-days-to-keep}'
241         artifactNumToKeep: '{build-artifact-num-to-keep}'
242
243     parameters:
244         - project-parameter:
245             project: '{project}'
246
247     scm:
248         - git-scm:
249             credentials-id: '{ssh-credentials}'
250             refspec: ''
251             branch: '{branch}'
252
253     wrappers:
254         - build-timeout
255         - ssh-agent-credentials:
256             users:
257                 - '{ssh-credentials}'
258
259     triggers:
260         - timed: '@daily'
261
262     prebuilders:
263         - wipe-org-opendaylight-repo
264         - jacoco-nojava-workaround
265         - provide-maven-settings:
266             global-settings-file: '{odl-global-settings}'
267             settings-file: '{discovery-settings}'
268
269     maven:
270         maven-name: '{mvn33}'
271         root-pom: 'pom.xml'
272         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins'
273         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
274         settings: '{discovery-settings}'
275         global-settings: '{odl-global-settings}'
276
277     reporters:
278         - findbugs
279
280     publishers:
281         - email-notification:
282             email-prefix: '[discovery]'
283         - jacoco-report
284
285 - job-template:
286     name: 'discovery-distribution-{stream}'
287
288     # Required variables:
289     #     stream:    release stream (eg. stable-lithium or beryllium)
290     #     branch:    git branch (eg. stable/lithium or master)
291
292     project-type: maven
293     node: dynamic_merge
294     jdk: '{jdk}'
295
296     logrotate:
297         daysToKeep: '{build-days-to-keep}'
298         numToKeep: '{build-num-to-keep}'
299         artifactDaysToKeep: '{build-artifact-days-to-keep}'
300         artifactNumToKeep: '{build-artifact-num-to-keep}'
301
302     parameters:
303         - project-parameter:
304             project: 'integration/distribution'
305
306     scm:
307         - git-scm:
308             credentials-id: '{ssh-credentials}'
309             refspec: ''
310             branch: '{branch}'
311
312     wrappers:
313         - build-timeout
314         - ssh-agent-credentials:
315             users:
316                 - '{ssh-credentials}'
317
318     triggers:
319         - reverse:
320             jobs: '{project}-merge-{stream}'
321             result: 'success'
322
323     prebuilders:
324         - wipe-org-opendaylight-repo
325         - provide-maven-settings:
326             global-settings-file: '{odl-global-settings}'
327             settings-file: '{discovery-settings}'
328
329     maven:
330         maven-name: '{mvn33}'
331         root-pom: 'pom.xml'
332         goals: 'clean install -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
333         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
334         settings: '{integration-settings}'
335         global-settings: '{odl-global-settings}'
336
337     publishers:
338         - email-notification:
339             email-prefix: '[{project}]'
340         - maven-deploy:
341             id: ''
342             unique-version: true
343             deploy-unstable: false
344
345 - job-template:
346     name: 'discovery-integration-{stream}'
347     disabled: false
348
349     # Job template for ODL integration verify jobs
350     #
351     # This is similar to a normal verify job, but it runs
352     # when a project that's a dependency of your project
353     # is successfully built.
354     #
355     # Required Variables:
356     #     stream:    release stream (eg. stable-lithium or beryllium)
357     #     branch:    git branch (eg. stable/lithium or master)
358
359     project-type: maven
360     node: dynamic_merge
361     jdk: '{jdk}'
362
363     logrotate:
364         daysToKeep: '{build-days-to-keep}'
365         numToKeep: '{build-num-to-keep}'
366         artifactDaysToKeep: '{build-artifact-days-to-keep}'
367         artifactNumToKeep: '{build-artifact-num-to-keep}'
368
369     parameters:
370         - project-parameter:
371             project: '{project}'
372
373     scm:
374         - git-scm:
375             credentials-id: '{ssh-credentials}'
376             refspec: ''
377             branch: '{branch}'
378
379     wrappers:
380         - build-timeout
381         - ssh-agent-credentials:
382             users:
383                 - '{ssh-credentials}'
384
385     triggers:
386         - reverse:
387             jobs: 'odlparent-merge-{stream}'
388             result: 'success'
389
390     prebuilders:
391         - wipe-org-opendaylight-repo
392         - jacoco-nojava-workaround
393         - provide-maven-settings:
394             global-settings-file: '{odl-global-settings}'
395             settings-file: '{discovery-settings}'
396
397     maven:
398         maven-name: '{mvn33}'
399         root-pom: 'pom.xml'
400         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins'
401         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
402         settings: '{discovery-settings}'
403         global-settings: '{odl-global-settings}'
404
405     reporters:
406         - findbugs
407
408     publishers:
409         - email-notification:
410             email-prefix: '[discovery] [odlparent]'
411         - jacoco-report
412
413 - job-template:
414     name: 'discovery-sonar'
415
416     project-type: maven
417     node: dynamic_verify
418     jdk: 'openjdk7'
419
420     logrotate:
421         daysToKeep: '7'
422         numToKeep: '10'
423         artifactDaysToKeep: '1'
424         artifactNumToKeep: '1'
425
426     parameters:
427         - project-parameter:
428             project: '{project}'
429
430     scm:
431         - git-scm:
432             credentials-id: '{ssh-credentials}'
433             refspec: ''
434             branch: 'master'
435
436     wrappers:
437         - build-timeout
438         - ssh-agent-credentials:
439             users:
440                 - '{ssh-credentials}'
441
442     triggers:
443         - timed: '@weekly'
444         - gerrit-trigger-patch-sonar:
445             name: 'discovery'
446
447     prebuilders:
448         - wipe-org-opendaylight-repo
449         - jacoco-nojava-workaround
450         - provide-maven-settings:
451             global-settings-file: '{odl-global-settings}'
452             settings-file: '{discovery-settings}'
453
454     maven:
455         maven-name: '{mvn33}'
456         root-pom: 'pom.xml'
457         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins -Dsonar'
458         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
459         settings: '{discovery-settings}'
460         global-settings: '{odl-global-settings}'
461
462     reporters:
463         - findbugs
464
465     publishers:
466         - sonar:
467             language: 'java'
468             maven-opts: '-Xmx6144m -XX:MaxPermSize=1024m'
469         - email-notification:
470             email-prefix: '[discovery]'
471         - jacoco-report
472
473 - job-template:
474     name: 'discovery-clm-{stream}'
475
476     project-type: maven
477     node: dynamic_verify
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             credentials-id: '{ssh-credentials}'
493             refspec: ''
494             branch: '{branch}'
495
496     wrappers:
497         - build-timeout
498         - ssh-agent-credentials:
499             users:
500                 - '{ssh-credentials}'
501
502     triggers:
503         - timed: '@weekly'
504
505     prebuilders:
506         - wipe-org-opendaylight-repo
507         - provide-maven-settings:
508             global-settings-file: '{odl-global-settings}'
509             settings-file: '{discovery-settings}'
510
511     maven:
512         maven-name: '{mvn33}'
513         root-pom: 'pom.xml'
514         goals: 'clean install com.sonatype.clm:clm-maven-plugin:index -Djenkins -DskipTests=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
515         maven-opts: '-Xmx4096m -XX:MaxPermSize=512m'
516         settings: '{discovery-settings}'
517         global-settings: '{odl-global-settings}'
518
519     postbuilders:
520         - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
521         - check-clm:
522             application-name: discovery
523
524     publishers:
525         - email-notification:
526             email-prefix: '[discovery]'
527
528 - job-template:
529     name: 'discovery-validate-autorelease-{stream}'
530     disabled: '{obj:disable_autorelease}'
531
532     project-type: maven
533     node: dynamic_verify
534     concurrent: true
535     jdk: '{jdk}'
536
537     logrotate:
538         daysToKeep: '{build-days-to-keep}'
539         numToKeep: '{build-num-to-keep}'
540         artifactDaysToKeep: '{build-artifact-days-to-keep}'
541         artifactNumToKeep: '{build-artifact-num-to-keep}'
542
543     parameters:
544         - project-parameter:
545             project: '{project}'
546         - gerrit-parameter:
547             branch: '{branch}'
548         - autorelease-release-tag:
549             release-tag: 'validate'
550         - autorelease-release-branch:
551             release-branch: '{branch}'
552         - autorelease-release-datestamp:
553             datestamp: true
554
555     scm:
556         - git:
557             url: 'https://git.opendaylight.org/gerrit/releng/autorelease'
558             refspec: ''
559             branches:
560                 - 'origin/{branch}'
561             skip-tag: true
562             submodule:
563                 recursive: true
564
565     wrappers:
566         - autorelease-build-timeout
567         - ssh-agent-credentials:
568             users:
569                 - '{ssh-credentials}'
570
571     triggers:
572         - gerrit:
573             server-name: 'OpenDaylight'
574             trigger-on:
575                 - patchset-created-event:
576                     exclude-drafts: 'false'
577                     exclude-trivial-rebase: 'false'
578                     exclude-no-code-change: 'false'
579                 - draft-published-event
580                 - comment-added-contains-event:
581                     comment-contains-value: 'recheck'
582                 - comment-added-contains-event:
583                     comment-contains-value: 'reverify'
584                 - comment-added-contains-event:
585                     comment-contains-value: 'revalidate'
586             projects:
587               - project-compare-type: 'ANT'
588                 project-pattern: 'discovery'
589                 branches:
590                   - branch-compare-type: 'ANT'
591                     branch-pattern: '**/{branch}'
592
593     prebuilders:
594         - wipe-org-opendaylight-repo
595         - jacoco-nojava-workaround
596         - autorelease-checkout-gerrit-patch
597         - autorelease-generate-taglist
598         - autorelease-generate-release-patches
599         - maven-target:
600             maven-version: '{mvn33}'
601             pom: validate-pom.xml
602             goals: 'clean install -T1.5C -Djenkins -DskipTests -Dcheckstyle.skip=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
603             java-opts:
604             - '-Xmx8g'
605             settings: '{autorelease-settings}'
606             global-settings: '{odl-global-settings}'
607
608     maven:
609         maven-name: '{mvn33}'
610         root-pom: 'pom.xml'
611         goals: 'clean validate -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
612         maven-opts: '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
613         settings: '{autorelease-settings}'
614         global-settings: '{odl-global-settings}'
615         automatic-archiving: false
616         post-step-run-condition: UNSTABLE
617
618     postbuilders:
619         - shell: "./scripts/list-project-dependencies.sh"
620         - autorelease-sys-stats
621
622     publishers:
623         - archive-artifacts:
624             artifacts: '*.log'
625         - email-notification:
626             email-prefix: '[autorelease] [discovery]'
627