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