de023cbd72de50881230f4594273cfd75220d09f
[releng/builder.git] / jjb / releng-templates-java.yaml
1 - job-template:
2     # Template used for running CLM scans
3     # Arguements:
4     #   {name}         - Project Shortname
5     #   {project}      - Fully qualified project name
6     #   {mvn-settings} - Project maven settings file
7     #   {stream}
8     #   {jdk}
9     name: '{name}-clm-{stream}'
10
11     project-type: maven
12     node: dynamic_verify
13     jdk: '{jdk}'
14
15     logrotate:
16         daysToKeep: '{build-days-to-keep}'
17         numToKeep: '{build-num-to-keep}'
18
19     parameters:
20         - opendaylight-infra-parameters:
21             project: '{project}'
22             branch: '{branch}'
23             refspec: 'refs/heads/{branch}'
24             artifacts: '{archive-artifacts}'
25
26     scm:
27         - git-scm:
28             refspec: ''
29             branch: '{branch}'
30
31     wrappers:
32         - opendaylight-infra-wrappers:
33             build-timeout: '{build-timeout}'
34
35     triggers:
36         - timed: 'H H * * 6'
37
38     prebuilders:
39         - provide-maven-settings:
40             global-settings-file: 'odl-global-settings'
41             settings-file: '{mvn-settings}'
42
43     maven:
44         maven-name: '{mvn33}'
45         root-pom: 'pom.xml'
46         goals: 'clean install com.sonatype.clm:clm-maven-plugin:index -V -B -Djenkins -DskipTests=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
47         maven-opts: '-Xmx4096m -XX:MaxPermSize=512m'
48         settings: '{mvn-settings}'
49         settings-type: cfp
50         global-settings: 'odl-global-settings'
51         global-settings-type: cfp
52
53     postbuilders:
54         - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
55         - check-clm:
56             application-name: '{name}'
57
58     publishers:
59         - email-notification:
60             email-prefix: '[{name}]'
61         - archive-build:
62             maven-version: '{mvn33}'
63
64 - job-template:
65     name: '{name}-distribution-{stream}'
66
67     # Required variables:
68     #     stream:    release stream (eg. stable-lithium or beryllium)
69     #     branch:    git branch (eg. stable/lithium or master)
70
71     project-type: maven
72     node: dynamic_merge
73     jdk: '{jdk}'
74
75     logrotate:
76         daysToKeep: '{build-days-to-keep}'
77         numToKeep: '{build-num-to-keep}'
78         artifactDaysToKeep: '{build-artifact-days-to-keep}'
79         artifactNumToKeep: '{build-artifact-num-to-keep}'
80
81     parameters:
82         - opendaylight-infra-parameters:
83             project: '{project}'
84             branch: '{branch}'
85             refspec: 'refs/heads/{branch}'
86             artifacts: '{archive-artifacts}'
87
88     scm:
89         - git-scm:
90             refspec: ''
91             branch: '{branch}'
92
93     wrappers:
94         - opendaylight-infra-wrappers:
95             build-timeout: '{build-timeout}'
96
97     triggers:
98         - reverse:
99             jobs: '{project}-merge-{stream}'
100             result: 'success'
101
102     prebuilders:
103         - provide-maven-settings:
104             global-settings-file: 'odl-global-settings'
105             settings-file: '{mvn-settings}'
106
107     maven:
108         maven-name: '{mvn33}'
109         root-pom: 'pom.xml'
110         goals: 'clean install -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
111         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
112         settings: 'integration-distribution-settings'
113         settings-type: cfp
114         global-settings: 'odl-global-settings'
115         global-settings-type: cfp
116
117     publishers:
118         - email-notification:
119             email-prefix: '[{project}]'
120         - maven-deploy:
121             id: ''
122             unique-version: true
123             deploy-unstable: false
124         - archive-build:
125             maven-version: '{mvn33}'
126
127 - job-template:
128     # Template: integration-patch-distribution-{stream}
129     # Goal: Build a patch and make sure the distribution can deploy with this change
130     # Operation: This job template builds a patch, creates a distribution containing
131     #            the patch, and triggers the distribution deploy test
132
133     name: '{name}-distribution-check-{stream}'
134     disabled: '{obj:disable_distribution_check}'
135
136     project-type: maven
137     node: dynamic_verify
138     concurrent: true
139     jdk: '{jdk}'
140
141     logrotate:
142         daysToKeep: '{build-days-to-keep}'
143         numToKeep: '{build-num-to-keep}'
144         artifactDaysToKeep: '{build-artifact-days-to-keep}'
145         artifactNumToKeep: '{build-artifact-num-to-keep}'
146
147     parameters:
148         - opendaylight-infra-parameters:
149             project: '{project}'
150             branch: '{branch}'
151             refspec: 'refs/heads/{branch}'
152             artifacts: '{archive-artifacts}'
153         - integration-distribution-git-url
154
155     scm:
156         - integration-gerrit-scm:
157             basedir: '$GERRIT_PROJECT'
158             refspec: '$GERRIT_REFSPEC'
159             branch: '{branch}'
160         - integration-distribution-scm:
161             branch: '{branch}'
162
163     wrappers:
164         - opendaylight-infra-wrappers:
165             build-timeout: '{build-timeout}'
166
167     triggers:
168         - gerrit:
169             server-name: 'OpenDaylight'
170             trigger-on:
171                 - patchset-created-event:
172                     exclude-drafts: 'true'
173                     exclude-trivial-rebase: 'false'
174                     exclude-no-code-change: 'true'
175                 - draft-published-event
176                 - comment-added-contains-event:
177                     comment-contains-value: 'test-distribution'
178                 - comment-added-contains-event:
179                     comment-contains-value: 'reverify'
180                 - comment-added-contains-event:
181                     comment-contains-value: 'recheck'
182             projects:
183               - project-compare-type: 'ANT'
184                 project-pattern: '{name}'
185                 branches:
186                   - branch-compare-type: 'ANT'
187                     branch-pattern: '**/{branch}'
188             skip-vote:
189                 successful: false
190                 failed: false
191                 unstable: false
192                 notbuilt: false
193
194     prebuilders:
195         - maven-target:
196             maven-version: '{mvn33}'
197             pom: '$GERRIT_PROJECT/pom.xml'
198             goals: 'clean install -V -B -Djenkins -DskipTests -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true -Dmaven.site.skip=true -DgenerateReports=false -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -Dstream={stream}'
199             java-opts:
200                 - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
201             settings: '{mvn-settings}'
202             settings-type: cfp
203             global-settings: 'odl-global-settings'
204             global-settings-type: cfp
205
206     maven:
207         maven-name: '{mvn33}'
208         root-pom: 'distribution/pom.xml'
209         goals: 'clean install -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
210         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
211         settings: '{mvn-settings}'
212         settings-type: cfp
213         global-settings: 'odl-global-settings'
214         global-settings-type: cfp
215         ignore-upstream-changes: true
216         post-step-run-condition: 'SUCCESS'
217
218     postbuilders:
219         - integration-distribution-check
220
221     publishers:
222         - email-notification:
223             email-prefix: '[{name}]'
224         - postbuildscript:
225             builders:
226                 - shell: |
227                     #!/bin/bash
228                     mkdir -p $WORKSPACE/archives
229                     cp karaf*.log $WORKSPACE/archives
230             script-only-if-succeeded: False
231             script-only-if-failed: False
232             mark-unstable-if-failed: True
233         - archive-build:
234             maven-version: '{mvn33}'
235
236 - job-template:
237     name: '{name}-integration-{stream}'
238
239     # Job template for ODL integration verify jobs
240     #
241     # This is similar to a normal verify job, but it runs
242     # when a project that's a dependency of your project
243     # is successfully built.
244     #
245     # Required Variables:
246     #     stream:    release stream (eg. stable-lithium or beryllium)
247     #     branch:    git branch (eg. stable/lithium or master)
248
249     project-type: maven
250     node: dynamic_merge
251     jdk: '{jdk}'
252
253     logrotate:
254         daysToKeep: '{build-days-to-keep}'
255         numToKeep: '{build-num-to-keep}'
256         artifactDaysToKeep: '{build-artifact-days-to-keep}'
257         artifactNumToKeep: '{build-artifact-num-to-keep}'
258
259     parameters:
260         - opendaylight-infra-parameters:
261             project: '{project}'
262             branch: '{branch}'
263             refspec: 'refs/heads/{branch}'
264             artifacts: '{archive-artifacts}'
265
266     scm:
267         - git-scm:
268             refspec: ''
269             branch: '{branch}'
270
271     wrappers:
272         - opendaylight-infra-wrappers:
273             build-timeout: '{build-timeout}'
274
275     triggers:
276         - reverse:
277             jobs: '{dependencies}'
278             result: 'success'
279
280     prebuilders:
281         - jacoco-nojava-workaround
282         - provide-maven-settings:
283             global-settings-file: 'odl-global-settings'
284             settings-file: '{mvn-settings}'
285
286     maven:
287         maven-name: '{mvn33}'
288         goals: '{mvn-goals} -V -B -Djenkins'
289         maven-opts: '{mvn-opts}'
290         settings: '{mvn-settings}'
291         settings-type: cfp
292         global-settings: 'odl-global-settings'
293         global-settings-type: cfp
294
295     reporters:
296         - findbugs
297
298     publishers:
299         - email-notification:
300             email-prefix: '{email-upstream}'
301         - jacoco-report
302         - archive-build:
303             maven-version: '{mvn33}'
304
305 - job-template:
306     name: '{name}-periodic-{stream}'
307
308     # Job template for periodic builders
309     #
310     # The purpose of this job template is to setup a periodic
311     # builder.
312     #
313     # Required Variables:
314     #     stream:    release stream (eg. stable-lithium or beryllium)
315     #     branch:    git branch (eg. stable/lithium or master)
316
317     project-type: maven
318     node: dynamic_verify
319     jdk: '{jdk}'
320
321     logrotate:
322         daysToKeep: '14'
323
324     parameters:
325         - opendaylight-infra-parameters:
326             project: '{project}'
327             branch: '{branch}'
328             refspec: 'refs/heads/{branch}'
329             artifacts: '{archive-artifacts}'
330
331     scm:
332         - git-scm:
333             refspec: ''
334             branch: '{branch}'
335
336     wrappers:
337         - opendaylight-infra-wrappers:
338             build-timeout: '{build-timeout}'
339
340     triggers:
341         - timed: '@daily'
342
343     prebuilders:
344         - jacoco-nojava-workaround
345         - provide-maven-settings:
346             global-settings-file: 'odl-global-settings'
347             settings-file: '{mvn-settings}'
348
349     maven:
350         maven-name: '{mvn33}'
351         goals: '{mvn-goals} -V -B -Djenkins'
352         maven-opts: '{mvn-opts}'
353         settings: '{mvn-settings}'
354         settings-type: cfp
355         global-settings: 'odl-global-settings'
356         global-settings-type: cfp
357
358     reporters:
359         - findbugs
360
361     publishers:
362         - email-notification:
363             email-prefix: '[{name}]'
364         - jacoco-report
365         - archive-build:
366             maven-version: '{mvn33}'
367
368 - job-template:
369     name: '{name}-validate-autorelease-{stream}'
370     disabled: '{obj:disable_autorelease}'
371
372     project-type: maven
373     node: dynamic_verify
374     concurrent: true
375     jdk: '{jdk}'
376
377     logrotate:
378         daysToKeep: '{build-days-to-keep}'
379         numToKeep: '{build-num-to-keep}'
380         artifactDaysToKeep: '{build-artifact-days-to-keep}'
381         artifactNumToKeep: '{build-artifact-num-to-keep}'
382
383     parameters:
384         - opendaylight-infra-parameters:
385             project: '{project}'
386             branch: '{branch}'
387             refspec: 'refs/heads/{branch}'
388             artifacts: '{archive-artifacts}'
389         - autorelease-release-tag:
390             release-tag: 'validate'
391         - autorelease-release-branch:
392             release-branch: '{branch}'
393         - string:
394             name: CLONE_URL
395             default: 'ssh://jenkins-$SILO@git.opendaylight.org:29418/releng/autorelease'
396             description: "Autorelease clone URL"
397
398     scm:
399         - git:
400             url: '$CLONE_URL'
401             credentials-id: 'opendaylight-jenkins-ssh'
402             refspec: ''
403             branches:
404                 - 'origin/{branch}'
405             skip-tag: true
406             submodule:
407                 recursive: true
408                 timeout: 60
409
410     wrappers:
411         - opendaylight-infra-wrappers:
412             build-timeout: '{build-timeout}'
413
414     triggers:
415         - gerrit:
416             server-name: 'OpenDaylight'
417             trigger-on:
418                 - patchset-created-event:
419                     exclude-drafts: 'true'
420                     exclude-trivial-rebase: 'false'
421                     exclude-no-code-change: 'true'
422                 - draft-published-event
423                 - comment-added-contains-event:
424                     comment-contains-value: 'recheck'
425                 - comment-added-contains-event:
426                     comment-contains-value: 'reverify'
427                 - comment-added-contains-event:
428                     comment-contains-value: 'revalidate'
429             projects:
430               - project-compare-type: 'ANT'
431                 project-pattern: 'PROJECT_PATH'
432                 branches:
433                   - branch-compare-type: 'ANT'
434                     branch-pattern: '**/{branch}'
435                 file-paths:
436                     - compare-type: ANT
437                       pattern: '**/*.xml'
438
439     prebuilders:
440         - jacoco-nojava-workaround
441         - autorelease-checkout-gerrit-patch
442         - autorelease-generate-release-patches
443         - maven-target:
444             maven-version: '{mvn33}'
445             pom: validate-pom.xml
446             goals: 'clean install -V -B -T1.5C -Djenkins -DskipTests -Dcheckstyle.skip=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
447             java-opts:
448             - '-Xmx8g'
449             settings: 'autorelease-settings'
450             settings-type: cfp
451             global-settings: 'odl-global-settings'
452             global-settings-type: cfp
453
454     maven:
455         maven-name: '{mvn33}'
456         root-pom: 'pom.xml'
457         goals: 'clean validate -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
458         maven-opts: '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
459         settings: 'autorelease-settings'
460         settings-type: cfp
461         global-settings: 'odl-global-settings'
462         global-settings-type: cfp
463         automatic-archiving: false
464         post-step-run-condition: UNSTABLE
465
466     postbuilders:
467         - autorelease-sys-stats
468
469     publishers:
470         - email-notification:
471             email-prefix: '[autorelease] [{name}]'
472         - archive-build:
473             maven-version: '{mvn33}'