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: openjdk7
24             jdks:
25                 - openjdk7
26                 - openjdk8
27             disable_autorelease: False
28         - beryllium:
29             branch: 'stable/beryllium'
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         - gerrit-parameter:
83             branch: '{branch}'
84         - gerrit-refspec-parameter:
85             refspec: 'refs/heads/{branch}'
86
87     scm:
88         - gerrit-trigger-scm:
89             credentials-id: '{ssh-credentials}'
90             refspec: ''
91             choosing-strategy: 'default'
92
93     wrappers:
94         - build-timeout
95         - ssh-agent-credentials:
96             users:
97                 - '{ssh-credentials}'
98
99     triggers:
100         - timed: 'H H * * 0'
101         - gerrit-trigger-patch-merged:
102             name: 'yangtools'
103             branch: '{branch}'
104
105     prebuilders:
106         - wipe-org-opendaylight-repo
107         - jacoco-nojava-workaround
108         - provide-maven-settings:
109             global-settings-file: '{odl-global-settings}'
110             settings-file: '{yangtools-settings}'
111
112     maven:
113         maven-name: '{mvn33}'
114         root-pom: 'pom.xml'
115         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins -Dmerge -Dstream={stream}'
116         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
117         settings: '{yangtools-settings}'
118         global-settings: '{odl-global-settings}'
119         post-step-run-condition: UNSTABLE
120
121     postbuilders:
122         - conditional-step:
123             condition-kind: file-exists
124             condition-filename: deploy-site.xml
125             condition-basedir: workspace
126
127             # The strategy here is intentional to run Maven site:deploy twice
128             # once using regular pom.xml to produce a staged-site which is
129             # then used by deploy-site.xml to push to Nexus. This is a
130             # workaround to Maven Site's default linking code which creates
131             # incorrect URLs for sites due to auto-detection assuming your
132             # project is configured in a certain way which ODL is not.
133             steps:
134             - maven-target:
135                 maven-version: '{mvn33}'
136                 pom: pom.xml
137                 goals: 'site:deploy -Dstream={stream}'
138                 java-opts:
139                     - '-Xmx2g'
140                 settings: '{yangtools-settings}'
141                 global-settings: '{odl-global-settings}'
142             - maven-target:
143                 maven-version: '{mvn33}'
144                 pom: deploy-site.xml
145                 goals: 'site:deploy -Dstream={stream}'
146                 java-opts:
147                     - '-Xmx2g'
148                 settings: '{yangtools-settings}'
149                 global-settings: '{odl-global-settings}'
150
151     reporters:
152         - findbugs
153
154     publishers:
155         - archive-artifacts:
156             artifacts: '**/target/surefire-reports/*-output.txt, '
157         - email-notification:
158             email-prefix: '[yangtools]'
159         - maven-deploy:
160             id: ''
161             unique-version: true
162             deploy-unstable: false
163         - jacoco-report
164
165 - job-template:
166     name: 'yangtools-periodic-{stream}'
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: '{build-days-to-keep}'
183         numToKeep: '{build-num-to-keep}'
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
360     project-type: maven
361     node: dynamic_verify
362     jdk: 'openjdk7'
363
364     logrotate:
365         daysToKeep: '7'
366         numToKeep: '10'
367         artifactDaysToKeep: '1'
368         artifactNumToKeep: '1'
369
370     parameters:
371         - project-parameter:
372             project: '{project}'
373
374     scm:
375         - git-scm:
376             credentials-id: '{ssh-credentials}'
377             refspec: ''
378             branch: 'master'
379
380     wrappers:
381         - build-timeout
382         - ssh-agent-credentials:
383             users:
384                 - '{ssh-credentials}'
385
386     triggers:
387         - timed: '@weekly'
388         - gerrit-trigger-patch-sonar:
389             name: 'yangtools'
390
391     prebuilders:
392         - wipe-org-opendaylight-repo
393         - jacoco-nojava-workaround
394         - provide-maven-settings:
395             global-settings-file: '{odl-global-settings}'
396             settings-file: '{yangtools-settings}'
397
398     maven:
399         maven-name: '{mvn33}'
400         root-pom: 'pom.xml'
401         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins -Dsonar'
402         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
403         settings: '{yangtools-settings}'
404         global-settings: '{odl-global-settings}'
405
406     reporters:
407         - findbugs
408
409     publishers:
410         - sonar:
411             language: 'java'
412             maven-opts: '-Xmx6144m -XX:MaxPermSize=1024m'
413         - email-notification:
414             email-prefix: '[yangtools]'
415         - jacoco-report
416
417 - job-template:
418     name: 'yangtools-clm-{stream}'
419
420     project-type: maven
421     node: dynamic_verify
422     jdk: '{jdk}'
423
424     logrotate:
425         daysToKeep: '{build-days-to-keep}'
426         numToKeep: '{build-num-to-keep}'
427         artifactDaysToKeep: '{build-artifact-days-to-keep}'
428         artifactNumToKeep: '{build-artifact-num-to-keep}'
429
430     parameters:
431         - project-parameter:
432             project: '{project}'
433
434     scm:
435         - git-scm:
436             credentials-id: '{ssh-credentials}'
437             refspec: ''
438             branch: '{branch}'
439
440     wrappers:
441         - build-timeout
442         - ssh-agent-credentials:
443             users:
444                 - '{ssh-credentials}'
445
446     triggers:
447         - timed: '@weekly'
448
449     prebuilders:
450         - wipe-org-opendaylight-repo
451         - provide-maven-settings:
452             global-settings-file: '{odl-global-settings}'
453             settings-file: '{yangtools-settings}'
454
455     maven:
456         maven-name: '{mvn33}'
457         root-pom: 'pom.xml'
458         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'
459         maven-opts: '-Xmx4096m -XX:MaxPermSize=512m'
460         settings: '{yangtools-settings}'
461         global-settings: '{odl-global-settings}'
462
463     postbuilders:
464         - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
465         - check-clm:
466             application-name: yangtools
467
468     publishers:
469         - email-notification:
470             email-prefix: '[yangtools]'
471
472 - job-template:
473     name: 'yangtools-validate-autorelease-{stream}'
474     disabled: '{obj:disable_autorelease}'
475
476     project-type: maven
477     node: dynamic_verify
478     concurrent: true
479     jdk: '{jdk}'
480
481     logrotate:
482         daysToKeep: '{build-days-to-keep}'
483         numToKeep: '{build-num-to-keep}'
484         artifactDaysToKeep: '{build-artifact-days-to-keep}'
485         artifactNumToKeep: '{build-artifact-num-to-keep}'
486
487     parameters:
488         - project-parameter:
489             project: '{project}'
490         - gerrit-parameter:
491             branch: '{branch}'
492         - autorelease-release-tag:
493             release-tag: 'validate'
494         - autorelease-release-branch:
495             release-branch: '{branch}'
496         - autorelease-release-datestamp:
497             datestamp: true
498
499     scm:
500         - git:
501             url: 'https://git.opendaylight.org/gerrit/releng/autorelease'
502             refspec: ''
503             branches:
504                 - 'origin/{branch}'
505             skip-tag: true
506             submodule:
507                 recursive: true
508
509     wrappers:
510         - autorelease-build-timeout
511         - ssh-agent-credentials:
512             users:
513                 - '{ssh-credentials}'
514
515     triggers:
516         - gerrit:
517             server-name: 'OpenDaylight'
518             trigger-on:
519                 - patchset-created-event:
520                     exclude-drafts: 'false'
521                     exclude-trivial-rebase: 'false'
522                     exclude-no-code-change: 'false'
523                 - draft-published-event
524                 - comment-added-contains-event:
525                     comment-contains-value: 'recheck'
526                 - comment-added-contains-event:
527                     comment-contains-value: 'reverify'
528                 - comment-added-contains-event:
529                     comment-contains-value: 'revalidate'
530             projects:
531               - project-compare-type: 'ANT'
532                 project-pattern: 'yangtools'
533                 branches:
534                   - branch-compare-type: 'ANT'
535                     branch-pattern: '**/{branch}'
536
537     prebuilders:
538         - wipe-org-opendaylight-repo
539         - jacoco-nojava-workaround
540         - autorelease-checkout-gerrit-patch
541         - autorelease-generate-taglist
542         - autorelease-generate-release-patches
543         - maven-target:
544             maven-version: '{mvn33}'
545             pom: validate-pom.xml
546             goals: 'clean install -T1.5C -Djenkins -DskipTests -Dcheckstyle.skip=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
547             java-opts:
548             - '-Xmx8g'
549             settings: '{autorelease-settings}'
550             global-settings: '{odl-global-settings}'
551
552     maven:
553         maven-name: '{mvn33}'
554         root-pom: 'pom.xml'
555         goals: 'clean validate -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
556         maven-opts: '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
557         settings: '{autorelease-settings}'
558         global-settings: '{odl-global-settings}'
559         automatic-archiving: false
560         post-step-run-condition: UNSTABLE
561
562     postbuilders:
563         - shell: "./scripts/list-project-dependencies.sh"
564         - autorelease-sys-stats
565
566     publishers:
567         - archive-artifacts:
568             artifacts: '*.log'
569         - email-notification:
570             email-prefix: '[autorelease] [yangtools]'
571