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