Merge "Revert "Include DLUX dependencies to enable system test to pass on Jenkins""
[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-daily-{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
74     scm:
75         - gerrit-trigger-scm:
76             credentials-id: '{ssh-credentials}'
77             refspec: '$GERRIT_REFSPEC'
78             choosing-strategy: 'gerrit'
79
80     wrappers:
81         - build-timeout
82         - ssh-agent-credentials:
83             users:
84                 - '{ssh-credentials}'
85
86     triggers:
87         - gerrit-trigger-patch-submitted:
88             name: 'discovery'
89             branch: '{branch}'
90
91     builders:
92         - wipe-org-opendaylight-repo
93         - jacoco-nojava-workaround
94         - provide-maven-settings:
95             global-settings-file: '{odl-global-settings}'
96             settings-file: '{discovery-settings}'
97         - maven-target:
98             maven-version: '{mvn33}'
99             pom: 'pom.xml'
100             goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Dstream={stream}'
101             java-opts:
102                 - '-Xmx1024m -XX:MaxPermSize=256m'
103             settings: '{discovery-settings}'
104             global-settings: '{odl-global-settings}'
105
106     publishers:
107         - findbugs
108         - email-notification:
109             email-prefix: '[discovery]'
110         - jacoco-report
111
112 - job-template:
113     name: 'discovery-merge-{stream}'
114
115     # Job template for ODL merge jobs
116     #
117     # The purpose of this job template is to setup a ODL merge job
118     # and deploy artifacts to Nexus.
119     #
120     # Required Variables:
121     #     stream:    release stream (eg. stable-lithium or beryllium)
122     #     branch:    git branch (eg. stable/lithium or master)
123
124     project-type: maven
125     node: dynamic_merge
126     jdk: '{jdk}'
127
128     logrotate:
129         daysToKeep: '{build-days-to-keep}'
130         numToKeep: '{build-num-to-keep}'
131         artifactDaysToKeep: '{build-artifact-days-to-keep}'
132         artifactNumToKeep: '{build-artifact-num-to-keep}'
133
134     parameters:
135         - project-parameter:
136             project: '{project}'
137
138     scm:
139         - gerrit-trigger-scm:
140             credentials-id: '{ssh-credentials}'
141             refspec: ''
142             choosing-strategy: 'default'
143
144     wrappers:
145         - build-timeout
146         - ssh-agent-credentials:
147             users:
148                 - '{ssh-credentials}'
149
150     triggers:
151         - gerrit-trigger-patch-merged:
152             name: 'discovery'
153             branch: '{branch}'
154
155     prebuilders:
156         - wipe-org-opendaylight-repo
157         - jacoco-nojava-workaround
158         - provide-maven-settings:
159             global-settings-file: '{odl-global-settings}'
160             settings-file: '{discovery-settings}'
161
162     maven:
163         maven-name: '{mvn33}'
164         root-pom: 'pom.xml'
165         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Dmerge -Dstream={stream}'
166         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
167         settings: '{discovery-settings}'
168         global-settings: '{odl-global-settings}'
169         post-step-run-condition: UNSTABLE
170
171     postbuilders:
172         - conditional-step:
173             condition-kind: file-exists
174             condition-filename: deploy-site.xml
175             condition-basedir: workspace
176
177             # The strategy here is intentional to run Maven site:deploy twice
178             # once using regular pom.xml to produce a staged-site which is
179             # then used by deploy-site.xml to push to Nexus. This is a
180             # workaround to Maven Site's default linking code which creates
181             # incorrect URLs for sites due to auto-detection assuming your
182             # project is configured in a certain way which ODL is not.
183             steps:
184             - maven-target:
185                 maven-version: '{mvn33}'
186                 pom: pom.xml
187                 goals: 'site:deploy -Dstream={stream}'
188                 java-opts:
189                     - '-Xmx2g'
190                 settings: '{discovery-settings}'
191                 global-settings: '{odl-global-settings}'
192             - maven-target:
193                 maven-version: '{mvn33}'
194                 pom: deploy-site.xml
195                 goals: 'site:deploy -Dstream={stream}'
196                 java-opts:
197                     - '-Xmx2g'
198                 settings: '{discovery-settings}'
199                 global-settings: '{odl-global-settings}'
200
201     reporters:
202         - findbugs
203
204     publishers:
205         - email-notification:
206             email-prefix: '[discovery]'
207         - maven-deploy:
208             id: ''
209             unique-version: true
210             deploy-unstable: false
211         - jacoco-report
212
213 - job-template:
214     name: 'discovery-daily-{stream}'
215
216     # Job template for daily builders
217     #
218     # The purpose of this job template is to setup a daily/nightly
219     # builder and pushes to Sonar analysis.
220     #
221     # Required Variables:
222     #     stream:    release stream (eg. stable-lithium or beryllium)
223     #     branch:    git branch (eg. stable/lithium or master)
224
225     project-type: maven
226     node: dynamic_verify
227     jdk: '{jdk}'
228
229     logrotate:
230         daysToKeep: '{build-days-to-keep}'
231         numToKeep: '{build-num-to-keep}'
232         artifactDaysToKeep: '{build-artifact-days-to-keep}'
233         artifactNumToKeep: '{build-artifact-num-to-keep}'
234
235     parameters:
236         - project-parameter:
237             project: '{project}'
238
239     scm:
240         - git-scm:
241             credentials-id: '{ssh-credentials}'
242             refspec: ''
243             branch: '{branch}'
244
245     wrappers:
246         - build-timeout
247         - ssh-agent-credentials:
248             users:
249                 - '{ssh-credentials}'
250
251     triggers:
252         - timed: 'H H * * *'
253
254     prebuilders:
255         - wipe-org-opendaylight-repo
256         - jacoco-nojava-workaround
257         - provide-maven-settings:
258             global-settings-file: '{odl-global-settings}'
259             settings-file: '{discovery-settings}'
260
261     maven:
262         maven-name: '{mvn33}'
263         root-pom: 'pom.xml'
264         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
265         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
266         settings: '{discovery-settings}'
267         global-settings: '{odl-global-settings}'
268
269     reporters:
270         - findbugs
271
272     publishers:
273         - email-notification:
274             email-prefix: '[discovery]'
275         - jacoco-report
276
277 - job-template:
278     name: 'discovery-distribution-{stream}'
279
280     # Required variables:
281     #     stream:    release stream (eg. stable-lithium or beryllium)
282     #     branch:    git branch (eg. stable/lithium or master)
283
284     project-type: maven
285     node: dynamic_merge
286     jdk: '{jdk}'
287
288     logrotate:
289         daysToKeep: '{build-days-to-keep}'
290         numToKeep: '{build-num-to-keep}'
291         artifactDaysToKeep: '{build-artifact-days-to-keep}'
292         artifactNumToKeep: '{build-artifact-num-to-keep}'
293
294     parameters:
295         - project-parameter:
296             project: 'integration/distribution'
297
298     scm:
299         - git-scm:
300             credentials-id: '{ssh-credentials}'
301             refspec: ''
302             branch: '{branch}'
303
304     wrappers:
305         - build-timeout
306         - ssh-agent-credentials:
307             users:
308                 - '{ssh-credentials}'
309
310     triggers:
311         - reverse:
312             jobs: '{project}-merge-{stream}'
313             result: 'success'
314
315     prebuilders:
316         - wipe-org-opendaylight-repo
317         - provide-maven-settings:
318             global-settings-file: '{odl-global-settings}'
319             settings-file: '{discovery-settings}'
320
321     maven:
322         maven-name: '{mvn33}'
323         root-pom: 'pom.xml'
324         goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean install'
325         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
326         settings: '{integration-settings}'
327         global-settings: '{odl-global-settings}'
328
329     publishers:
330         - email-notification:
331             email-prefix: '[{project}]'
332         - maven-deploy:
333             id: ''
334             unique-version: true
335             deploy-unstable: false
336
337 - job-template:
338     name: 'discovery-integration-{stream}'
339     disabled: false
340
341     # Job template for ODL integration verify jobs
342     #
343     # This is similar to a normal verify job, but it runs
344     # when a project that's a dependency of your project
345     # is successfully built.
346     #
347     # Required Variables:
348     #     stream:    release stream (eg. stable-lithium or beryllium)
349     #     branch:    git branch (eg. stable/lithium or master)
350
351     project-type: maven
352     node: dynamic_merge
353     jdk: '{jdk}'
354
355     logrotate:
356         daysToKeep: '{build-days-to-keep}'
357         numToKeep: '{build-num-to-keep}'
358         artifactDaysToKeep: '{build-artifact-days-to-keep}'
359         artifactNumToKeep: '{build-artifact-num-to-keep}'
360
361     parameters:
362         - project-parameter:
363             project: '{project}'
364
365     scm:
366         - git-scm:
367             credentials-id: '{ssh-credentials}'
368             refspec: ''
369             branch: '{branch}'
370
371     wrappers:
372         - build-timeout
373         - ssh-agent-credentials:
374             users:
375                 - '{ssh-credentials}'
376
377     triggers:
378         - reverse:
379             jobs: 'odlparent-merge-{stream}'
380             result: 'success'
381
382     prebuilders:
383         - wipe-org-opendaylight-repo
384         - jacoco-nojava-workaround
385         - provide-maven-settings:
386             global-settings-file: '{odl-global-settings}'
387             settings-file: '{discovery-settings}'
388
389     maven:
390         maven-name: '{mvn33}'
391         root-pom: 'pom.xml'
392         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
393         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
394         settings: '{discovery-settings}'
395         global-settings: '{odl-global-settings}'
396
397     reporters:
398         - findbugs
399
400     publishers:
401         - email-notification:
402             email-prefix: '[discovery] [odlparent]'
403         - jacoco-report
404
405 - job-template:
406     name: 'discovery-sonar'
407
408     project-type: maven
409     node: dynamic_verify
410     jdk: 'openjdk7'
411
412     logrotate:
413         daysToKeep: '7'
414         numToKeep: '10'
415         artifactDaysToKeep: '1'
416         artifactNumToKeep: '1'
417
418     parameters:
419         - project-parameter:
420             project: '{project}'
421
422     scm:
423         - git-scm:
424             credentials-id: '{ssh-credentials}'
425             refspec: ''
426             branch: 'master'
427
428     wrappers:
429         - build-timeout
430         - ssh-agent-credentials:
431             users:
432                 - '{ssh-credentials}'
433
434     triggers:
435         - timed: 'H H * * *'
436         - gerrit-trigger-patch-sonar:
437             name: 'discovery'
438
439     prebuilders:
440         - wipe-org-opendaylight-repo
441         - jacoco-nojava-workaround
442         - provide-maven-settings:
443             global-settings-file: '{odl-global-settings}'
444             settings-file: '{discovery-settings}'
445
446     maven:
447         maven-name: '{mvn33}'
448         root-pom: 'pom.xml'
449         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Dsonar'
450         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
451         settings: '{discovery-settings}'
452         global-settings: '{odl-global-settings}'
453
454     reporters:
455         - findbugs
456
457     publishers:
458         - sonar:
459             language: 'java'
460             maven-opts: '-Xmx6144m -XX:MaxPermSize=1024m'
461         - email-notification:
462             email-prefix: '[discovery]'
463         - jacoco-report
464
465 - job-template:
466     name: 'discovery-clm-{stream}'
467
468     project-type: maven
469     node: dynamic_verify
470     jdk: '{jdk}'
471
472     logrotate:
473         daysToKeep: '{build-days-to-keep}'
474         numToKeep: '{build-num-to-keep}'
475         artifactDaysToKeep: '{build-artifact-days-to-keep}'
476         artifactNumToKeep: '{build-artifact-num-to-keep}'
477
478     parameters:
479         - project-parameter:
480             project: '{project}'
481
482     scm:
483         - git-scm:
484             credentials-id: '{ssh-credentials}'
485             refspec: ''
486             branch: '{branch}'
487
488     wrappers:
489         - build-timeout
490         - ssh-agent-credentials:
491             users:
492                 - '{ssh-credentials}'
493
494     triggers:
495         - timed: '@weekly'
496
497     prebuilders:
498         - wipe-org-opendaylight-repo
499         - provide-maven-settings:
500             global-settings-file: '{odl-global-settings}'
501             settings-file: '{discovery-settings}'
502
503     maven:
504         maven-name: '{mvn33}'
505         root-pom: 'pom.xml'
506         goals: 'clean install com.sonatype.clm:clm-maven-plugin:index -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
507         maven-opts: '-Xmx4096m -XX:MaxPermSize=512m'
508         settings: '{discovery-settings}'
509         global-settings: '{odl-global-settings}'
510
511     postbuilders:
512         - check-clm:
513             application-name: discovery
514
515     publishers:
516         - email-notification:
517             email-prefix: '[discovery]'
518
519 - job-template:
520     name: 'discovery-validate-autorelease-{stream}'
521     disabled: '{obj:disable_autorelease}'
522
523     project-type: maven
524     node: dynamic_verify
525     concurrent: true
526     jdk: '{jdk}'
527
528     logrotate:
529         daysToKeep: '{build-days-to-keep}'
530         numToKeep: '{build-num-to-keep}'
531         artifactDaysToKeep: '{build-artifact-days-to-keep}'
532         artifactNumToKeep: '{build-artifact-num-to-keep}'
533
534     parameters:
535         - project-parameter:
536             project: '{project}'
537         - gerrit-parameter:
538             branch: '{branch}'
539         - autorelease-release-tag:
540             release-tag: 'validate'
541         - autorelease-release-branch:
542             release-branch: '{branch}'
543         - autorelease-release-datestamp:
544             datestamp: true
545
546     scm:
547         - git:
548             url: 'https://git.opendaylight.org/gerrit/releng/autorelease'
549             refspec: ''
550             branches:
551                 - 'origin/{branch}'
552             skip-tag: true
553             submodule:
554                 recursive: true
555
556     wrappers:
557         - autorelease-build-timeout
558         - ssh-agent-credentials:
559             users:
560                 - '{ssh-credentials}'
561
562     triggers:
563         - gerrit-trigger-patch-submitted:
564             name: 'discovery'
565             branch: '{branch}'
566
567     prebuilders:
568         - wipe-org-opendaylight-repo
569         - jacoco-nojava-workaround
570         - autorelease-checkout-gerrit-patch
571         - autorelease-generate-taglist
572         - autorelease-generate-release-patches
573         - maven-target:
574             maven-version: '{mvn33}'
575             pom: validate-pom.xml
576             goals: 'clean install -T1.5C -DskipTests -Dcheckstyle.skip=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
577             java-opts:
578             - '-Xmx8g'
579             settings: '{autorelease-settings}'
580             global-settings: '{odl-global-settings}'
581
582     maven:
583         maven-name: '{mvn33}'
584         root-pom: 'pom.xml'
585         goals: 'clean validate -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
586         maven-opts: '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
587         settings: '{autorelease-settings}'
588         global-settings: '{odl-global-settings}'
589         automatic-archiving: false
590         post-step-run-condition: UNSTABLE
591
592     postbuilders:
593         - shell: "./scripts/list-project-dependencies.sh"
594         - autorelease-sys-stats
595
596     publishers:
597         - archive-artifacts:
598             artifacts: '*.log'
599         - email-notification:
600             email-prefix: '[autorelease] [discovery]'
601