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