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