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