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