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