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