e94caed62f24a6c658b1e1fcb05ea2ac5ef5718b
[releng/builder.git] / jjb / armoury / armoury.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: armoury
8     jobs:
9         - '{name}-clm-{stream}'
10         - '{name}-distribution-{stream}'
11         - '{name}-distribution-check-{stream}'
12         - '{name}-integration-{stream}'
13         - '{name}-periodic-{stream}'
14         - '{name}-validate-autorelease-{stream}'
15         - 'armoury-verify-{stream}'
16         - 'armoury-merge-{stream}'
17         - 'armoury-sonar'
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: openjdk8
26             jdks:
27                 - openjdk8
28                 - openjdk7
29             disable_autorelease: True
30             disable_distribution_check: False
31         - beryllium:
32             branch: 'stable/beryllium'
33             jdk: openjdk8
34             jdks:
35                 - openjdk8
36                 - openjdk7
37             disable_autorelease: True
38             disable_distribution_check: False
39
40     project: 'armoury'
41     mvn-settings: 'armoury-settings'
42     mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r '
43     mvn-opts: '-Xmx2048m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
44     dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream},mdsal-merge-{stream}'
45     email-upstream: '[armoury] [odlparent] [yangtools] [controller] [mdsal]'
46
47 # For the Job templates below replace instances of:
48 # PROJECT_SHORTNAME with your project name (eg. circuitsw)
49 # PROJECT_PATH with your project name (eg. ofextensions/circuitsw)
50 # MAVEN_GOALS with your maven goals to build
51 # MAVEN_OPTS with your maven options to build
52
53 - job-template:
54     name: 'armoury-verify-{stream}'
55
56     # Job template for ODL verify jobs
57     #
58     # The purpose of this job template is to setup a ODL verify job
59     #
60     # Required Variables:
61     #     stream:    release stream (eg. stable-lithium or beryllium)
62     #     branch:    git branch (eg. stable/lithium or master)
63
64     project-type: matrix
65     node: matrix_master
66     concurrent: true
67
68     axes:
69         - axis:
70             type: slave
71             name: nodes
72             values:
73                 - dynamic_verify
74         - axis:
75             type: jdk
76             values: '{obj:jdks}'
77
78     logrotate:
79         daysToKeep: '14'
80
81     parameters:
82         - opendaylight-infra-parameters:
83             project: '{project}'
84             branch: '{branch}'
85             refspec: 'refs/heads/{branch}'
86             artifacts: '{archive-artifacts}'
87
88     scm:
89         - gerrit-trigger-scm:
90             refspec: '$GERRIT_REFSPEC'
91             choosing-strategy: 'gerrit'
92
93     wrappers:
94         - opendaylight-infra-wrappers:
95             build-timeout: '{build-timeout}'
96
97     triggers:
98         - gerrit-trigger-patch-submitted:
99             name: 'armoury'
100             branch: '{branch}'
101
102     builders:
103         - jacoco-nojava-workaround
104         - provide-maven-settings:
105             global-settings-file: 'odl-global-settings'
106             settings-file: 'armoury-settings'
107         - maven-target:
108             maven-version: '{mvn33}'
109             pom: 'pom.xml'
110             goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -V -B -Djenkins -Dstream={stream}'
111             java-opts:
112                 - '-Xmx2048m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
113             settings: 'armoury-settings'
114             settings-type: cfp
115             global-settings: 'odl-global-settings'
116             global-settings-type: cfp
117
118     publishers:
119         - archive-artifacts:
120             artifacts: '**/target/surefire-reports/*-output.txt, '
121         - findbugs
122         - email-notification:
123             email-prefix: '[armoury]'
124         - jacoco-report
125         - archive-build:
126             maven-version: '{mvn33}'
127
128 - job-template:
129     name: 'armoury-merge-{stream}'
130
131     # Job template for ODL merge jobs
132     #
133     # The purpose of this job template is to setup a ODL merge job
134     # and deploy artifacts to Nexus.
135     #
136     # Required Variables:
137     #     stream:    release stream (eg. stable-lithium or beryllium)
138     #     branch:    git branch (eg. stable/lithium or master)
139
140     project-type: maven
141     node: dynamic_merge
142     jdk: '{jdk}'
143
144     logrotate:
145         daysToKeep: '14'
146         numToKeep: '10'
147         artifactDaysToKeep: '{build-artifact-days-to-keep}'
148         artifactNumToKeep: '{build-artifact-num-to-keep}'
149
150     parameters:
151         - opendaylight-infra-parameters:
152             project: '{project}'
153             branch: '{branch}'
154             refspec: 'refs/heads/{branch}'
155             artifacts: '{archive-artifacts}'
156
157     scm:
158         - gerrit-trigger-scm:
159             refspec: ''
160             choosing-strategy: 'default'
161
162     wrappers:
163         - opendaylight-infra-wrappers:
164             build-timeout: '{build-timeout}'
165
166     triggers:
167         - timed: 'H H * * 0'
168         - gerrit-trigger-patch-merged:
169             name: 'armoury'
170             branch: '{branch}'
171
172     prebuilders:
173         - jacoco-nojava-workaround
174         - provide-maven-settings:
175             global-settings-file: 'odl-global-settings'
176             settings-file: 'armoury-settings'
177
178     maven:
179         maven-name: '{mvn33}'
180         root-pom: 'pom.xml'
181         goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -V -B -Djenkins -Dmerge -Dstream={stream}'
182         maven-opts: '-Xmx2048m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
183         settings: 'armoury-settings'
184         settings-type: cfp
185         global-settings: 'odl-global-settings'
186         global-settings-type: cfp
187         post-step-run-condition: UNSTABLE
188
189     postbuilders:
190         - conditional-step:
191             condition-kind: file-exists
192             condition-filename: deploy-site.xml
193             condition-basedir: workspace
194
195             # The strategy here is intentional to run Maven site:deploy twice
196             # once using regular pom.xml to produce a staged-site which is
197             # then used by deploy-site.xml to push to Nexus. This is a
198             # workaround to Maven Site's default linking code which creates
199             # incorrect URLs for sites due to auto-detection assuming your
200             # project is configured in a certain way which ODL is not.
201             steps:
202             - maven-target:
203                 maven-version: '{mvn33}'
204                 pom: pom.xml
205                 goals: 'site:deploy -V -B -Dstream={stream}'
206                 java-opts:
207                     - '-Xmx2g'
208                 settings: 'armoury-settings'
209                 settings-type: cfp
210                 global-settings: 'odl-global-settings'
211                 global-settings-type: cfp
212             - maven-target:
213                 maven-version: '{mvn33}'
214                 pom: deploy-site.xml
215                 goals: 'site:deploy -V -B -Dstream={stream}'
216                 java-opts:
217                     - '-Xmx2g'
218                 settings: 'armoury-settings'
219                 settings-type: cfp
220                 global-settings: 'odl-global-settings'
221                 global-settings-type: cfp
222
223     reporters:
224         - findbugs
225
226     publishers:
227         - archive-artifacts:
228             artifacts: '**/target/surefire-reports/*-output.txt, '
229         - email-notification:
230             email-prefix: '[armoury]'
231         - maven-deploy:
232             id: ''
233             unique-version: true
234             deploy-unstable: false
235         - jacoco-report
236         - archive-build:
237             maven-version: '{mvn33}'
238
239 - job-template:
240     name: 'armoury-sonar'
241     disabled: false
242
243     project-type: maven
244     node: dynamic_verify
245     jdk: 'openjdk8'
246
247     logrotate:
248         daysToKeep: '7'
249         numToKeep: '10'
250         artifactDaysToKeep: '1'
251         artifactNumToKeep: '1'
252
253     parameters:
254         - opendaylight-infra-parameters:
255             project: '{project}'
256             branch: '{branch}'
257             refspec: 'refs/heads/{branch}'
258             artifacts: '{archive-artifacts}'
259
260     scm:
261         - git-scm:
262             refspec: ''
263             branch: 'master'
264
265     wrappers:
266         - opendaylight-infra-wrappers:
267             build-timeout: '{build-timeout}'
268
269     triggers:
270         - timed: 'H H * * 6'
271         - gerrit-trigger-patch-sonar:
272             name: 'armoury'
273
274     prebuilders:
275         - jacoco-nojava-workaround
276         - provide-maven-settings:
277             global-settings-file: 'odl-global-settings'
278             settings-file: 'armoury-settings'
279
280     maven:
281         maven-name: '{mvn33}'
282         root-pom: 'pom.xml'
283         goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r  -V -B -Djenkins -Dsonar'
284         maven-opts: '-Xmx2048m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
285         settings: 'armoury-settings'
286         settings-type: cfp
287         global-settings: 'odl-global-settings'
288         global-settings-type: cfp
289
290     reporters:
291         - findbugs
292
293     publishers:
294         - sonar:
295             language: 'java'
296             maven-opts: '-Xmx6144m -XX:MaxPermSize=1024m'
297         - email-notification:
298             email-prefix: '[armoury]'
299         - jacoco-report
300         - archive-build:
301             maven-version: '{mvn33}'
302