Merge "Adding ability to build from different distribution branches"
[releng/builder.git] / jjb / topoprocessing / topoprocessing.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: topoprocessing
8     jobs:
9         - 'topoprocessing-verify-{stream}'
10         - 'topoprocessing-merge-{stream}'
11         - 'topoprocessing-daily-{stream}'
12         - 'topoprocessing-distribution-{stream}'
13         - 'topoprocessing-integration-{stream}'
14         - 'topoprocessing-sonar'
15         - 'topoprocessing-clm-{stream}'
16         - 'topoprocessing-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             disable_autorelease: True
29         - stable-lithium:
30             branch: 'stable/lithium'
31             jdk: openjdk7
32             jdks:
33                 - openjdk7
34                 - openjdk8
35             disable_autorelease: True
36
37     project: 'topoprocessing'
38
39 # For the Job templates below replace instances of:
40 # PROJECT_SHORTNAME with your project name (eg. circuitsw)
41 # PROJECT_PATH with your project name (eg. ofextensions/circuitsw)
42 # MAVEN_GOALS with your maven goals to build
43 # MAVEN_OPTS with your maven options to build
44
45 - job-template:
46     name: 'topoprocessing-verify-{stream}'
47
48     # Job template for ODL verify jobs
49     #
50     # The purpose of this job template is to setup a ODL verify job
51     #
52     # Required Variables:
53     #     stream:    release stream (eg. stable-lithium or beryllium)
54     #     branch:    git branch (eg. stable/lithium or master)
55
56     project-type: matrix
57     node: matrix_master
58     concurrent: true
59
60     axes:
61         - axis:
62             type: slave
63             name: nodes
64             values:
65                 - dynamic_verify
66         - axis:
67             type: jdk
68             values: '{obj:jdks}'
69
70     logrotate:
71         daysToKeep: '{build-days-to-keep}'
72         numToKeep: '{build-num-to-keep}'
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-parameter:
80             branch: '{branch}'
81
82     scm:
83         - gerrit-trigger-scm:
84             credentials-id: '{ssh-credentials}'
85             refspec: '$GERRIT_REFSPEC'
86             choosing-strategy: 'gerrit'
87
88     wrappers:
89         - build-timeout
90         - ssh-agent-credentials:
91             users:
92                 - '{ssh-credentials}'
93
94     triggers:
95         - gerrit-trigger-patch-submitted:
96             name: 'topoprocessing'
97             branch: '{branch}'
98
99     builders:
100         - wipe-org-opendaylight-repo
101         - jacoco-nojava-workaround
102         - provide-maven-settings:
103             global-settings-file: '{odl-global-settings}'
104             settings-file: '{topoprocessing-settings}'
105         - maven-target:
106             maven-version: '{mvn33}'
107             pom: 'pom.xml'
108             goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Dstream={stream}'
109             java-opts:
110                 - '-Xmx1024m -XX:MaxPermSize=256m'
111             settings: '{topoprocessing-settings}'
112             global-settings: '{odl-global-settings}'
113
114     publishers:
115         - findbugs
116         - email-notification:
117             email-prefix: '[topoprocessing]'
118         - jacoco-report
119
120 - job-template:
121     name: 'topoprocessing-merge-{stream}'
122
123     # Job template for ODL merge jobs
124     #
125     # The purpose of this job template is to setup a ODL merge job
126     # and deploy artifacts to Nexus.
127     #
128     # Required Variables:
129     #     stream:    release stream (eg. stable-lithium or beryllium)
130     #     branch:    git branch (eg. stable/lithium or master)
131
132     project-type: maven
133     node: dynamic_merge
134     jdk: '{jdk}'
135
136     logrotate:
137         daysToKeep: '{build-days-to-keep}'
138         numToKeep: '{build-num-to-keep}'
139         artifactDaysToKeep: '{build-artifact-days-to-keep}'
140         artifactNumToKeep: '{build-artifact-num-to-keep}'
141
142     parameters:
143         - project-parameter:
144             project: '{project}'
145
146     scm:
147         - gerrit-trigger-scm:
148             credentials-id: '{ssh-credentials}'
149             refspec: ''
150             choosing-strategy: 'default'
151
152     wrappers:
153         - build-timeout
154         - ssh-agent-credentials:
155             users:
156                 - '{ssh-credentials}'
157
158     triggers:
159         - gerrit-trigger-patch-merged:
160             name: 'topoprocessing'
161             branch: '{branch}'
162
163     prebuilders:
164         - wipe-org-opendaylight-repo
165         - jacoco-nojava-workaround
166         - provide-maven-settings:
167             global-settings-file: '{odl-global-settings}'
168             settings-file: '{topoprocessing-settings}'
169
170     maven:
171         maven-name: '{mvn33}'
172         root-pom: 'pom.xml'
173         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Dmerge -Dstream={stream}'
174         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
175         settings: '{topoprocessing-settings}'
176         global-settings: '{odl-global-settings}'
177         post-step-run-condition: UNSTABLE
178
179     postbuilders:
180         - conditional-step:
181             condition-kind: file-exists
182             condition-filename: deploy-site.xml
183             condition-basedir: workspace
184
185             # The strategy here is intentional to run Maven site:deploy twice
186             # once using regular pom.xml to produce a staged-site which is
187             # then used by deploy-site.xml to push to Nexus. This is a
188             # workaround to Maven Site's default linking code which creates
189             # incorrect URLs for sites due to auto-detection assuming your
190             # project is configured in a certain way which ODL is not.
191             steps:
192             - maven-target:
193                 maven-version: '{mvn33}'
194                 pom: pom.xml
195                 goals: 'site:deploy -Dstream={stream}'
196                 java-opts:
197                     - '-Xmx2g'
198                 settings: '{topoprocessing-settings}'
199                 global-settings: '{odl-global-settings}'
200             - maven-target:
201                 maven-version: '{mvn33}'
202                 pom: deploy-site.xml
203                 goals: 'site:deploy -Dstream={stream}'
204                 java-opts:
205                     - '-Xmx2g'
206                 settings: '{topoprocessing-settings}'
207                 global-settings: '{odl-global-settings}'
208
209     reporters:
210         - findbugs
211
212     publishers:
213         - email-notification:
214             email-prefix: '[topoprocessing]'
215         - maven-deploy:
216             id: ''
217             unique-version: true
218             deploy-unstable: false
219         - jacoco-report
220
221 - job-template:
222     name: 'topoprocessing-daily-{stream}'
223
224     # Job template for daily builders
225     #
226     # The purpose of this job template is to setup a daily/nightly
227     # builder and pushes to Sonar analysis.
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: 'H H * * *'
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: '{topoprocessing-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 '
273         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
274         settings: '{topoprocessing-settings}'
275         global-settings: '{odl-global-settings}'
276
277     reporters:
278         - findbugs
279
280     publishers:
281         - email-notification:
282             email-prefix: '[topoprocessing]'
283         - jacoco-report
284
285 - job-template:
286     name: 'topoprocessing-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: '{topoprocessing-settings}'
328
329     maven:
330         maven-name: '{mvn33}'
331         root-pom: 'pom.xml'
332         goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean install'
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: 'topoprocessing-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},controller-merge-{stream},yangtools-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: '{topoprocessing-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 '
401         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
402         settings: '{topoprocessing-settings}'
403         global-settings: '{odl-global-settings}'
404
405     reporters:
406         - findbugs
407
408     publishers:
409         - email-notification:
410             email-prefix: '[topoprocessing] [odlparent] [controller] [yangtools]'
411         - jacoco-report
412
413 - job-template:
414     name: 'topoprocessing-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: 'H H * * *'
444         - gerrit-trigger-patch-sonar:
445             name: 'topoprocessing'
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: '{topoprocessing-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  -Dsonar'
458         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
459         settings: '{topoprocessing-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: '[topoprocessing]'
471         - jacoco-report
472
473 - job-template:
474     name: 'topoprocessing-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: '{topoprocessing-settings}'
510
511     maven:
512         maven-name: '{mvn33}'
513         root-pom: 'pom.xml'
514         goals: 'clean install com.sonatype.clm:clm-maven-plugin:index -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
515         maven-opts: '-Xmx4096m -XX:MaxPermSize=512m'
516         settings: '{topoprocessing-settings}'
517         global-settings: '{odl-global-settings}'
518
519     postbuilders:
520         - check-clm:
521             application-name: topoprocessing
522
523     publishers:
524         - email-notification:
525             email-prefix: '[topoprocessing]'
526
527 - job-template:
528     name: 'topoprocessing-validate-autorelease-{stream}'
529     disabled: '{obj:disable_autorelease}'
530
531     project-type: maven
532     node: dynamic_verify
533     concurrent: true
534     jdk: '{jdk}'
535
536     logrotate:
537         daysToKeep: '{build-days-to-keep}'
538         numToKeep: '{build-num-to-keep}'
539         artifactDaysToKeep: '{build-artifact-days-to-keep}'
540         artifactNumToKeep: '{build-artifact-num-to-keep}'
541
542     parameters:
543         - project-parameter:
544             project: '{project}'
545         - gerrit-parameter:
546             branch: '{branch}'
547         - autorelease-release-tag:
548             release-tag: 'validate'
549         - autorelease-release-branch:
550             release-branch: '{branch}'
551         - autorelease-release-datestamp:
552             datestamp: true
553
554     scm:
555         - git:
556             url: 'https://git.opendaylight.org/gerrit/releng/autorelease'
557             refspec: ''
558             branches:
559                 - 'origin/{branch}'
560             skip-tag: true
561             submodule:
562                 recursive: true
563
564     wrappers:
565         - autorelease-build-timeout
566         - ssh-agent-credentials:
567             users:
568                 - '{ssh-credentials}'
569
570     triggers:
571         - gerrit-trigger-patch-submitted:
572             name: 'topoprocessing'
573             branch: '{branch}'
574
575     prebuilders:
576         - wipe-org-opendaylight-repo
577         - jacoco-nojava-workaround
578         - autorelease-checkout-gerrit-patch
579         - autorelease-generate-taglist
580         - autorelease-generate-release-patches
581         - maven-target:
582             maven-version: '{mvn33}'
583             pom: validate-pom.xml
584             goals: 'clean install -T1.5C -DskipTests -Dcheckstyle.skip=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
585             java-opts:
586             - '-Xmx8g'
587             settings: '{autorelease-settings}'
588             global-settings: '{odl-global-settings}'
589
590     maven:
591         maven-name: '{mvn33}'
592         root-pom: 'pom.xml'
593         goals: 'clean validate -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
594         maven-opts: '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
595         settings: '{autorelease-settings}'
596         global-settings: '{odl-global-settings}'
597         automatic-archiving: false
598         post-step-run-condition: UNSTABLE
599
600     postbuilders:
601         - shell: "./scripts/list-project-dependencies.sh"
602         - autorelease-sys-stats
603
604     publishers:
605         - archive-artifacts:
606             artifacts: '*.log'
607         - email-notification:
608             email-prefix: '[autorelease] [topoprocessing]'
609