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