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