Merge "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: '{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         - 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
167     # Job template for periodic builders
168     #
169     # The purpose of this job template is to setup a periodic
170     # builder.
171     #
172     # Required Variables:
173     #     stream:    release stream (eg. stable-lithium or beryllium)
174     #     branch:    git branch (eg. stable/lithium or master)
175
176     project-type: maven
177     node: dynamic_verify
178     jdk: '{jdk}'
179
180     logrotate:
181         daysToKeep: '{build-days-to-keep}'
182         numToKeep: '{build-num-to-keep}'
183         artifactDaysToKeep: '{build-artifact-days-to-keep}'
184         artifactNumToKeep: '{build-artifact-num-to-keep}'
185
186     parameters:
187         - project-parameter:
188             project: '{project}'
189
190     scm:
191         - git-scm:
192             credentials-id: '{ssh-credentials}'
193             refspec: ''
194             branch: '{branch}'
195
196     wrappers:
197         - build-timeout
198         - ssh-agent-credentials:
199             users:
200                 - '{ssh-credentials}'
201
202     triggers:
203         - timed: '@daily'
204
205     prebuilders:
206         - wipe-org-opendaylight-repo
207         - jacoco-nojava-workaround
208         - provide-maven-settings:
209             global-settings-file: '{odl-global-settings}'
210             settings-file: '{yangtools-settings}'
211
212     maven:
213         maven-name: '{mvn33}'
214         root-pom: 'pom.xml'
215         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins'
216         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
217         settings: '{yangtools-settings}'
218         global-settings: '{odl-global-settings}'
219
220     reporters:
221         - findbugs
222
223     publishers:
224         - email-notification:
225             email-prefix: '[yangtools]'
226         - jacoco-report
227
228 - job-template:
229     name: 'yangtools-distribution-{stream}'
230
231     # Required variables:
232     #     stream:    release stream (eg. stable-lithium or beryllium)
233     #     branch:    git branch (eg. stable/lithium or master)
234
235     project-type: maven
236     node: dynamic_merge
237     jdk: '{jdk}'
238
239     logrotate:
240         daysToKeep: '{build-days-to-keep}'
241         numToKeep: '{build-num-to-keep}'
242         artifactDaysToKeep: '{build-artifact-days-to-keep}'
243         artifactNumToKeep: '{build-artifact-num-to-keep}'
244
245     parameters:
246         - project-parameter:
247             project: 'integration/distribution'
248
249     scm:
250         - git-scm:
251             credentials-id: '{ssh-credentials}'
252             refspec: ''
253             branch: '{branch}'
254
255     wrappers:
256         - build-timeout
257         - ssh-agent-credentials:
258             users:
259                 - '{ssh-credentials}'
260
261     triggers:
262         - reverse:
263             jobs: '{project}-merge-{stream}'
264             result: 'success'
265
266     prebuilders:
267         - wipe-org-opendaylight-repo
268         - provide-maven-settings:
269             global-settings-file: '{odl-global-settings}'
270             settings-file: '{yangtools-settings}'
271
272     maven:
273         maven-name: '{mvn33}'
274         root-pom: 'pom.xml'
275         goals: 'clean install -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
276         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
277         settings: '{integration-settings}'
278         global-settings: '{odl-global-settings}'
279
280     publishers:
281         - email-notification:
282             email-prefix: '[{project}]'
283         - maven-deploy:
284             id: ''
285             unique-version: true
286             deploy-unstable: false
287
288 - job-template:
289     name: 'yangtools-integration-{stream}'
290     # Temporarily disable this job until Rackspace networking issues are
291     # resolved.
292     #disabled: DISABLED
293     disabled: true
294
295     # Job template for ODL integration verify jobs
296     #
297     # This is similar to a normal verify job, but it runs
298     # when a project that's a dependency of your project
299     # is successfully built.
300     #
301     # Required Variables:
302     #     stream:    release stream (eg. stable-lithium or beryllium)
303     #     branch:    git branch (eg. stable/lithium or master)
304
305     project-type: maven
306     node: dynamic_merge
307     jdk: '{jdk}'
308
309     logrotate:
310         daysToKeep: '{build-days-to-keep}'
311         numToKeep: '{build-num-to-keep}'
312         artifactDaysToKeep: '{build-artifact-days-to-keep}'
313         artifactNumToKeep: '{build-artifact-num-to-keep}'
314
315     parameters:
316         - project-parameter:
317             project: '{project}'
318
319     scm:
320         - git-scm:
321             credentials-id: '{ssh-credentials}'
322             refspec: ''
323             branch: '{branch}'
324
325     wrappers:
326         - build-timeout
327         - ssh-agent-credentials:
328             users:
329                 - '{ssh-credentials}'
330
331     triggers:
332         - reverse:
333             jobs: 'odlparent-merge-{stream}'
334             result: 'success'
335
336     prebuilders:
337         - wipe-org-opendaylight-repo
338         - jacoco-nojava-workaround
339         - provide-maven-settings:
340             global-settings-file: '{odl-global-settings}'
341             settings-file: '{yangtools-settings}'
342
343     maven:
344         maven-name: '{mvn33}'
345         root-pom: 'pom.xml'
346         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins'
347         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
348         settings: '{yangtools-settings}'
349         global-settings: '{odl-global-settings}'
350
351     reporters:
352         - findbugs
353
354     publishers:
355         - email-notification:
356             email-prefix: '[yangtools] [odlparent]'
357         - jacoco-report
358
359 - job-template:
360     name: 'yangtools-sonar'
361
362     project-type: maven
363     node: dynamic_verify
364     jdk: 'openjdk7'
365
366     logrotate:
367         daysToKeep: '7'
368         numToKeep: '10'
369         artifactDaysToKeep: '1'
370         artifactNumToKeep: '1'
371
372     parameters:
373         - project-parameter:
374             project: '{project}'
375
376     scm:
377         - git-scm:
378             credentials-id: '{ssh-credentials}'
379             refspec: ''
380             branch: 'master'
381
382     wrappers:
383         - build-timeout
384         - ssh-agent-credentials:
385             users:
386                 - '{ssh-credentials}'
387
388     triggers:
389         - timed: '@weekly'
390         - gerrit-trigger-patch-sonar:
391             name: 'yangtools'
392
393     prebuilders:
394         - wipe-org-opendaylight-repo
395         - jacoco-nojava-workaround
396         - provide-maven-settings:
397             global-settings-file: '{odl-global-settings}'
398             settings-file: '{yangtools-settings}'
399
400     maven:
401         maven-name: '{mvn33}'
402         root-pom: 'pom.xml'
403         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins -Dsonar'
404         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
405         settings: '{yangtools-settings}'
406         global-settings: '{odl-global-settings}'
407
408     reporters:
409         - findbugs
410
411     publishers:
412         - sonar:
413             language: 'java'
414             maven-opts: '-Xmx6144m -XX:MaxPermSize=1024m'
415         - email-notification:
416             email-prefix: '[yangtools]'
417         - jacoco-report
418
419 - job-template:
420     name: 'yangtools-clm-{stream}'
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