Merge "Add req.txt description of JJB install reqs"
[releng/builder.git] / jjb / usecplugin / usecplugin.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: usecplugin
8     jobs:
9         - 'usecplugin-verify-{stream}'
10         - 'usecplugin-merge-{stream}'
11         - 'usecplugin-daily-{stream}'
12         - 'usecplugin-distribution-{stream}'
13         - 'usecplugin-integration-{stream}'
14         - 'usecplugin-sonar'
15         - 'usecplugin-clm-{stream}'
16         - 'usecplugin-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
29     project: 'usecplugin'
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: 'usecplugin-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: 'usecplugin'
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: '{usecplugin-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: '{usecplugin-settings}'
104             global-settings: '{odl-global-settings}'
105
106     publishers:
107         - findbugs
108         - email-notification:
109             email-prefix: '[usecplugin]'
110         - jacoco-report
111
112 - job-template:
113     name: 'usecplugin-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: 'usecplugin'
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: '{usecplugin-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: '{usecplugin-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: '{usecplugin-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: '{usecplugin-settings}'
199                 global-settings: '{odl-global-settings}'
200
201     reporters:
202         - findbugs
203
204     publishers:
205         - email-notification:
206             email-prefix: '[usecplugin]'
207         - maven-deploy:
208             id: ''
209             unique-version: true
210             deploy-unstable: false
211         - jacoco-report
212
213 - job-template:
214     name: 'usecplugin-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: '{usecplugin-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: '{usecplugin-settings}'
267         global-settings: '{odl-global-settings}'
268
269     reporters:
270         - findbugs
271
272     publishers:
273         - email-notification:
274             email-prefix: '[usecplugin]'
275         - jacoco-report
276
277 - job-template:
278     name: 'usecplugin-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: '{usecplugin-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: 'usecplugin-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: 'openflowplugin-merge-{stream},odlparent-merge-{stream},controller-merge-{stream},yangtools-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: '{usecplugin-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: '{usecplugin-settings}'
395         global-settings: '{odl-global-settings}'
396
397     reporters:
398         - findbugs
399
400     publishers:
401         - email-notification:
402             email-prefix: '[usecplugin] [openflowplugin] [odlparent] [controller] [yangtools]'
403         - jacoco-report
404
405 - job-template:
406     name: 'usecplugin-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: 'usecplugin'
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: '{usecplugin-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: '{usecplugin-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: '[usecplugin]'
463         - jacoco-report
464
465 - job-template:
466     name: 'usecplugin-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: '{usecplugin-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: '{usecplugin-settings}'
509         global-settings: '{odl-global-settings}'
510
511     postbuilders:
512         - check-clm:
513             application-name: usecplugin
514
515     publishers:
516         - email-notification:
517             email-prefix: '[usecplugin]'
518
519 - job-template:
520     name: 'usecplugin-validate-autorelease-{stream}'
521
522     project-type: maven
523     node: dynamic_verify
524     concurrent: true
525     jdk: '{jdk}'
526
527     logrotate:
528         daysToKeep: '{build-days-to-keep}'
529         numToKeep: '{build-num-to-keep}'
530         artifactDaysToKeep: '{build-artifact-days-to-keep}'
531         artifactNumToKeep: '{build-artifact-num-to-keep}'
532
533     parameters:
534         - project-parameter:
535             project: '{project}'
536         - gerrit-parameter:
537             branch: '{branch}'
538         - autorelease-release-tag:
539             release-tag: 'validate'
540         - autorelease-release-branch:
541             release-branch: '{branch}'
542         - autorelease-release-datestamp:
543             datestamp: true
544
545     scm:
546         - git:
547             url: 'https://git.opendaylight.org/gerrit/releng/autorelease'
548             refspec: ''
549             branches:
550                 - 'origin/{branch}'
551             skip-tag: true
552             submodule:
553                 recursive: true
554
555     wrappers:
556         - autorelease-build-timeout
557         - ssh-agent-credentials:
558             users:
559                 - '{ssh-credentials}'
560
561     triggers:
562         - gerrit-trigger-patch-submitted:
563             name: 'usecplugin'
564             branch: '{branch}'
565
566     prebuilders:
567         - wipe-org-opendaylight-repo
568         - jacoco-nojava-workaround
569         - autorelease-checkout-gerrit-patch
570         - autorelease-generate-taglist
571         - autorelease-generate-release-patches
572         - maven-target:
573             maven-version: '{mvn33}'
574             pom: validate-pom.xml
575             goals: 'clean install -T1.5C -DskipTests -Dcheckstyle.skip=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
576             java-opts:
577             - '-Xmx8g'
578             settings: '{autorelease-settings}'
579             global-settings: '{odl-global-settings}'
580
581     maven:
582         maven-name: '{mvn33}'
583         root-pom: 'pom.xml'
584         goals: 'clean validate -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
585         maven-opts: '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
586         settings: '{autorelease-settings}'
587         global-settings: '{odl-global-settings}'
588         automatic-archiving: false
589         post-step-run-condition: UNSTABLE
590
591     postbuilders:
592         - shell: "./scripts/list-project-dependencies.sh"
593         - autorelease-sys-stats
594
595     publishers:
596         - archive-artifacts:
597             artifacts: '*.log'
598         - email-notification:
599             email-prefix: '[autorelease] [usecplugin]'
600