Update automated project templates
[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     jdk: '{jdk}'
382
383     logrotate:
384         daysToKeep: '14'
385         numToKeep: '10'
386         artifactDaysToKeep: '{build-artifact-days-to-keep}'
387         artifactNumToKeep: '{build-artifact-num-to-keep}'
388
389     parameters:
390         - gerrit-project-parameter:
391             project: '{project}'
392         - gerrit-refspec-parameter:
393             refspec: '{branch}'
394         - project-parameter:
395             project: '{project}'
396         - integration-distribution-git-url
397
398     scm:
399         - integration-gerrit-scm:
400             credentials-id: '{ssh-credentials}'
401             basedir: '$GERRIT_PROJECT'
402             refspec: '$GERRIT_REFSPEC'
403             branch: '{branch}'
404         - integration-distribution-scm:
405             credentials-id: '{ssh-credentials}'
406             branch: '{branch}'
407
408     wrappers:
409         - build-timeout
410         - ssh-agent-credentials:
411             users:
412                 - '{ssh-credentials}'
413
414     triggers:
415         - gerrit:
416             server-name: 'OpenDaylight'
417             trigger-on:
418                 - patchset-created-event:
419                     exclude-drafts: 'true'
420                     exclude-trivial-rebase: 'false'
421                     exclude-no-code-change: 'true'
422                 - draft-published-event
423                 - comment-added-contains-event:
424                     comment-contains-value: 'test-distribution'
425             projects:
426               - project-compare-type: 'ANT'
427                 project-pattern: '{name}'
428                 branches:
429                   - branch-compare-type: 'ANT'
430                     branch-pattern: '**/{branch}'
431             skip-vote:
432                 successful: true
433                 failed: true
434                 unstable: true
435                 notbuilt: true
436
437     prebuilders:
438         - integration-get-bundle-url
439         - inject:
440             properties-file: 'bundle.txt'
441         - wipe-org-opendaylight-repo
442         - maven-target:
443             maven-version: '{mvn33}'
444             pom: '$GERRIT_PROJECT/pom.xml'
445             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}'
446             java-opts:
447                 - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
448             settings: '{defense4all-settings}'
449             global-settings: '{odl-global-settings}'
450
451     maven:
452         maven-name: '{mvn33}'
453         root-pom: 'distribution/pom.xml'
454         goals: 'clean install -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
455         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
456         settings: '{defense4all-settings}'
457         global-settings: '{odl-global-settings}'
458         ignore-upstream-changes: true
459         post-step-run-condition: 'SUCCESS'
460
461     postbuilders:
462         - trigger-builds:
463             - project: 'integration-distribution-deploy-{stream}'
464               block: true
465               predefined-parameters:
466                   BUNDLEURL=$BUNDLEURL
467
468     publishers:
469         - email-notification:
470             email-prefix: '[defense4all]'
471
472 - job-template:
473     name: 'defense4all-integration-{stream}'
474     disabled: false
475
476     # Job template for ODL integration verify jobs
477     #
478     # This is similar to a normal verify job, but it runs
479     # when a project that's a dependency of your project
480     # is successfully built.
481     #
482     # Required Variables:
483     #     stream:    release stream (eg. stable-lithium or beryllium)
484     #     branch:    git branch (eg. stable/lithium or master)
485
486     project-type: maven
487     node: dynamic_merge
488     jdk: '{jdk}'
489
490     logrotate:
491         daysToKeep: '{build-days-to-keep}'
492         numToKeep: '{build-num-to-keep}'
493         artifactDaysToKeep: '{build-artifact-days-to-keep}'
494         artifactNumToKeep: '{build-artifact-num-to-keep}'
495
496     parameters:
497         - project-parameter:
498             project: '{project}'
499
500     scm:
501         - git-scm:
502             credentials-id: '{ssh-credentials}'
503             refspec: ''
504             branch: '{branch}'
505
506     wrappers:
507         - build-timeout
508         - ssh-agent-credentials:
509             users:
510                 - '{ssh-credentials}'
511
512     triggers:
513         - reverse:
514             jobs: 'odlparent-merge-{stream}'
515             result: 'success'
516
517     prebuilders:
518         - wipe-org-opendaylight-repo
519         - jacoco-nojava-workaround
520         - provide-maven-settings:
521             global-settings-file: '{odl-global-settings}'
522             settings-file: '{defense4all-settings}'
523
524     maven:
525         maven-name: '{mvn33}'
526         root-pom: 'dfapp/pom.xml'
527         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins'
528         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
529         settings: '{defense4all-settings}'
530         global-settings: '{odl-global-settings}'
531
532     reporters:
533         - findbugs
534
535     publishers:
536         - email-notification:
537             email-prefix: '[defense4all] [odlparent]'
538         - jacoco-report
539
540 - job-template:
541     name: 'defense4all-sonar'
542     disabled: false
543
544     project-type: maven
545     node: dynamic_verify
546     jdk: 'openjdk8'
547
548     logrotate:
549         daysToKeep: '7'
550         numToKeep: '10'
551         artifactDaysToKeep: '1'
552         artifactNumToKeep: '1'
553
554     parameters:
555         - project-parameter:
556             project: '{project}'
557
558     scm:
559         - git-scm:
560             credentials-id: '{ssh-credentials}'
561             refspec: ''
562             branch: 'master'
563
564     wrappers:
565         - build-timeout
566         - ssh-agent-credentials:
567             users:
568                 - '{ssh-credentials}'
569
570     triggers:
571         - timed: '@weekly'
572         - gerrit-trigger-patch-sonar:
573             name: 'defense4all'
574
575     prebuilders:
576         - wipe-org-opendaylight-repo
577         - jacoco-nojava-workaround
578         - provide-maven-settings:
579             global-settings-file: '{odl-global-settings}'
580             settings-file: '{defense4all-settings}'
581
582     maven:
583         maven-name: '{mvn33}'
584         root-pom: 'dfapp/pom.xml'
585         goals: 'clean install -V -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -Djenkins -Dsonar'
586         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
587         settings: '{defense4all-settings}'
588         global-settings: '{odl-global-settings}'
589
590     reporters:
591         - findbugs
592
593     publishers:
594         - sonar:
595             language: 'java'
596             maven-opts: '-Xmx6144m -XX:MaxPermSize=1024m'
597         - email-notification:
598             email-prefix: '[defense4all]'
599         - jacoco-report
600
601 - job-template:
602     name: 'defense4all-clm-{stream}'
603     disabled: false
604
605     project-type: maven
606     node: dynamic_verify
607     jdk: '{jdk}'
608
609     logrotate:
610         daysToKeep: '{build-days-to-keep}'
611         numToKeep: '{build-num-to-keep}'
612         artifactDaysToKeep: '{build-artifact-days-to-keep}'
613         artifactNumToKeep: '{build-artifact-num-to-keep}'
614
615     parameters:
616         - project-parameter:
617             project: '{project}'
618
619     scm:
620         - git-scm:
621             credentials-id: '{ssh-credentials}'
622             refspec: ''
623             branch: '{branch}'
624
625     wrappers:
626         - build-timeout
627         - ssh-agent-credentials:
628             users:
629                 - '{ssh-credentials}'
630
631     triggers:
632         - timed: '@weekly'
633
634     prebuilders:
635         - wipe-org-opendaylight-repo
636         - provide-maven-settings:
637             global-settings-file: '{odl-global-settings}'
638             settings-file: '{defense4all-settings}'
639
640     maven:
641         maven-name: '{mvn33}'
642         root-pom: 'pom.xml'
643         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'
644         maven-opts: '-Xmx4096m -XX:MaxPermSize=512m'
645         settings: '{defense4all-settings}'
646         global-settings: '{odl-global-settings}'
647
648     postbuilders:
649         - shell: 'find . -regex ".*karaf/target" | xargs rm -rf'
650         - check-clm:
651             application-name: defense4all
652
653     publishers:
654         - email-notification:
655             email-prefix: '[defense4all]'
656
657 - job-template:
658     name: 'defense4all-validate-autorelease-{stream}'
659     disabled: '{obj:disable_autorelease}'
660
661     project-type: maven
662     node: dynamic_verify
663     concurrent: true
664     jdk: '{jdk}'
665
666     logrotate:
667         daysToKeep: '{build-days-to-keep}'
668         numToKeep: '{build-num-to-keep}'
669         artifactDaysToKeep: '{build-artifact-days-to-keep}'
670         artifactNumToKeep: '{build-artifact-num-to-keep}'
671
672     parameters:
673         - project-parameter:
674             project: '{project}'
675         - gerrit-parameter:
676             branch: '{branch}'
677         - autorelease-release-tag:
678             release-tag: 'validate'
679         - autorelease-release-branch:
680             release-branch: '{branch}'
681         - autorelease-release-datestamp:
682             datestamp: true
683
684     scm:
685         - git:
686             url: 'https://git.opendaylight.org/gerrit/releng/autorelease'
687             refspec: ''
688             branches:
689                 - 'origin/{branch}'
690             skip-tag: true
691             submodule:
692                 recursive: true
693
694     wrappers:
695         - autorelease-build-timeout
696         - ssh-agent-credentials:
697             users:
698                 - '{ssh-credentials}'
699
700     triggers:
701         - gerrit:
702             server-name: 'OpenDaylight'
703             trigger-on:
704                 - patchset-created-event:
705                     exclude-drafts: 'false'
706                     exclude-trivial-rebase: 'false'
707                     exclude-no-code-change: 'false'
708                 - draft-published-event
709                 - comment-added-contains-event:
710                     comment-contains-value: 'recheck'
711                 - comment-added-contains-event:
712                     comment-contains-value: 'reverify'
713                 - comment-added-contains-event:
714                     comment-contains-value: 'revalidate'
715             projects:
716               - project-compare-type: 'ANT'
717                 project-pattern: 'defense4all'
718                 branches:
719                   - branch-compare-type: 'ANT'
720                     branch-pattern: '**/{branch}'
721
722     prebuilders:
723         - wipe-org-opendaylight-repo
724         - jacoco-nojava-workaround
725         - autorelease-checkout-gerrit-patch
726         - autorelease-generate-taglist
727         - autorelease-generate-release-patches
728         - maven-target:
729             maven-version: '{mvn33}'
730             pom: validate-pom.xml
731             goals: 'clean install -T1.5C -Djenkins -DskipTests -Dcheckstyle.skip=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
732             java-opts:
733             - '-Xmx8g'
734             settings: '{autorelease-settings}'
735             global-settings: '{odl-global-settings}'
736
737     maven:
738         maven-name: '{mvn33}'
739         root-pom: 'pom.xml'
740         goals: 'clean validate -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
741         maven-opts: '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
742         settings: '{autorelease-settings}'
743         global-settings: '{odl-global-settings}'
744         automatic-archiving: false
745         post-step-run-condition: UNSTABLE
746
747     postbuilders:
748         - shell: "./scripts/list-project-dependencies.sh"
749         - autorelease-sys-stats
750
751     publishers:
752         - archive-artifacts:
753             artifacts: '*.log'
754         - email-notification:
755             email-prefix: '[autorelease] [defense4all]'
756