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