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