Unify maven goal options some more
[releng/builder.git] / jjb / integration / integration-distribution-jobs.yaml
1
2 - project:
3     name: integration-distribution
4     jobs:
5         - '{name}-verify-python-{stream}'
6         - 'integration-distribution-verify-{stream}'
7         - 'integration-distribution-merge-{stream}'
8         - 'integration-distribution-deploy-{stream}'
9         - 'integration-distribution-offline-{stream}'
10
11     project: integration/distribution
12
13     stream:
14         - boron:
15             branch: 'master'
16             jre: 'openjdk8'
17         - beryllium:
18             branch: 'stable/beryllium'
19             jre: 'openjdk7'
20         - stable-lithium:
21             branch: 'stable/lithium'
22             jre: 'openjdk7'
23
24
25 - job-template:
26     name: 'integration-distribution-verify-{stream}'
27
28     project-type: maven
29     node: dynamic_verify
30     concurrent: true
31     jdk: '{jre}'
32
33     logrotate:
34         daysToKeep: '{build-days-to-keep}'
35         numToKeep: '{build-num-to-keep}'
36         artifactDaysToKeep: '{build-artifact-days-to-keep}'
37         artifactNumToKeep: '{build-artifact-num-to-keep}'
38
39     parameters:
40         - project-parameter:
41             project: 'integration/distribution'
42         - gerrit-parameters:
43             project: '{project}'
44             branch: '{branch}'
45             refspec: 'refs/heads/{branch}'
46         - integration-patch-refspec:
47             branch: '$GERRIT_REFSPEC'
48
49     scm:
50         - gerrit-trigger-scm:
51             credentials-id: '{ssh-credentials}'
52             refspec: '$PATCHREFSPEC'
53             choosing-strategy: 'gerrit'
54
55     wrappers:
56         - build-timeout
57         - ssh-agent-credentials:
58             users:
59                 - '{ssh-credentials}'
60
61     triggers:
62         - gerrit-trigger-relevant-patch-submitted:
63             name: 'integration/distribution'
64             branch: '{branch}'
65
66     prebuilders:
67         - integration-get-bundle-url-root
68         - inject:
69             properties-file: 'bundle.txt'
70         - wipe-org-opendaylight-repo
71         - provide-maven-settings:
72             global-settings-file: '{odl-global-settings}'
73             settings-file: '{integration-settings}'
74
75     maven:
76         maven-name: '{mvn33}'
77         root-pom: 'pom.xml'
78         goals: 'clean install -V -B -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -Djenkins -Dstream={stream}'
79         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
80         global-settings: '{odl-global-settings}'
81         settings: '{integration-settings}'
82         ignore-upstream-changes: true
83         post-step-run-condition: 'SUCCESS'
84
85     postbuilders:
86         - trigger-builds:
87             - project: 'integration-distribution-deploy-{stream}'
88               block: true
89               predefined-parameters:
90                   BUNDLEURL=$BUNDLEURL
91
92     publishers:
93         - email-notification:
94             email-prefix: '[integration]'
95         - archive-artifacts:
96             artifacts: '**/target/surefire-reports/*-output.txt, '
97         - findbugs
98         - jacoco-report
99
100 - job-template:
101     name: 'integration-distribution-merge-{stream}'
102
103     project-type: maven
104     node: dynamic_merge
105     jdk: '{jre}'
106
107     logrotate:
108         daysToKeep: '{build-days-to-keep}'
109         numToKeep: '{build-num-to-keep}'
110         artifactDaysToKeep: '{build-artifact-days-to-keep}'
111         artifactNumToKeep: '{build-artifact-num-to-keep}'
112
113     parameters:
114         - project-parameter:
115             project: 'integration/distribution'
116         - gerrit-parameters:
117             project: '{project}'
118             branch: '{branch}'
119             refspec: 'refs/heads/{branch}'
120
121     scm:
122         - gerrit-trigger-scm:
123             credentials-id: '{ssh-credentials}'
124             refspec: ''
125             choosing-strategy: 'default'
126
127     wrappers:
128         - build-timeout
129         - ssh-agent-credentials:
130             users:
131                 - '{ssh-credentials}'
132
133     triggers:
134         - timed: 'H H * * 0'
135         - gerrit-trigger-patch-merged:
136             name: 'integration/distribution'
137             branch: '{branch}'
138
139     prebuilders:
140         - wipe-org-opendaylight-repo
141         - jacoco-nojava-workaround
142         - provide-maven-settings:
143             global-settings-file: '{odl-global-settings}'
144             settings-file: '{integration-settings}'
145
146     maven:
147         maven-name: '{mvn33}'
148         root-pom: 'pom.xml'
149         goals: 'clean install -V -B -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -Djenkins -Dmerge -Dstream={stream}'
150         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
151         global-settings: '{odl-global-settings}'
152         settings: '{integration-settings}'
153
154     postbuilders:
155         - conditional-step:
156             condition-kind: file-exists
157             condition-filename: deploy-site.xml
158             condition-basedir: workspace
159
160             # The strategy here is intentional to run Maven site:deploy twice
161             # once using regular pom.xml to produce a staged-site which is
162             # then used by deploy-site.xml to push to Nexus. This is a
163             # workaround to Maven Site's default linking code which creates
164             # incorrect URLs for sites due to auto-detection assuming your
165             # project is configured in a certain way which ODL is not.
166             steps:
167             - maven-target:
168                 maven-version: '{mvn33}'
169                 pom: pom.xml
170                 goals: 'site:deploy -V -B -Dstream={stream}'
171                 java-opts:
172                     - '-Xmx2g'
173                 global-settings: '{odl-global-settings}'
174                 settings: '{integration-settings}'
175             - maven-target:
176                 maven-version: '{mvn33}'
177                 pom: deploy-site.xml
178                 goals: 'site:deploy -V -B -Dstream={stream}'
179                 java-opts:
180                     - '-Xmx2g'
181                 global-settings: '{odl-global-settings}'
182                 settings: '{integration-settings}'
183
184     reporters:
185         - findbugs
186
187     publishers:
188         - archive-artifacts:
189             artifacts: '**/target/surefire-reports/*-output.txt, '
190         - email-notification:
191             email-prefix: '[integration]'
192         - maven-deploy:
193             id: ''
194             unique-version: true
195             deploy-unstable: false
196         - jacoco-report
197
198 # Template: integration-distribution-deploy-{stream}
199 # Goal: Verify distribution starts with no issues when all features are loaded
200 # Operation: This job deploys the controller installing odl-integration-all
201
202 - job-template:
203     name: 'integration-distribution-deploy-{stream}'
204
205     project-type: freestyle
206     node: dynamic_verify
207     concurrent: true
208
209     logrotate:
210         daysToKeep: '{build-days-to-keep}'
211         numToKeep: '{build-num-to-keep}'
212         artifactDaysToKeep: '{build-artifact-days-to-keep}'
213         artifactNumToKeep: '{build-num-to-keep}'
214
215     parameters:
216         - project-parameter:
217             project: 'integration/distribution'
218         - integration-branch:
219             branch: '{branch}'
220         - integration-bundleurl:
221             bundleurl: 'last'
222         - integration-jdk-version:
223             jdkversion: '{jre}'
224
225     wrappers:
226         - build-timeout
227         - ssh-agent-credentials:
228             users:
229                 - '{ssh-credentials}'
230
231     triggers:
232         - timed: 'H H * * *'
233
234     builders:
235         - integration-get-bundle-vars
236         - inject:
237             properties-file: 'bundle_vars.txt'
238         - integration-deploy-controller-verify
239
240     publishers:
241         - archive:
242             artifacts: '*.log,*.log.xz'
243         - email-notification:
244             email-prefix: '[integration]'
245
246 # Template: integration-distribution-offline-{stream}
247 # Goal: Verify distribution can start with no internet connection
248 # Operation: This job deploys the controller removing any external repository definition
249
250 - job-template:
251     name: 'integration-distribution-offline-{stream}'
252
253     project-type: freestyle
254     node: dynamic_verify
255
256     logrotate:
257         daysToKeep: '{build-days-to-keep}'
258         numToKeep: '{build-num-to-keep}'
259         artifactDaysToKeep: '{build-artifact-days-to-keep}'
260         artifactNumToKeep: '{build-num-to-keep}'
261
262     parameters:
263         - project-parameter:
264             project: 'integration/distribution'
265         - integration-branch:
266             branch: '{branch}'
267         - integration-bundleurl:
268             bundleurl: 'last'
269         - integration-jdk-version:
270             jdkversion: '{jre}'
271
272     wrappers:
273         - build-timeout
274         - ssh-agent-credentials:
275             users:
276                 - '{ssh-credentials}'
277
278     triggers:
279         - timed: 'H H * * *'
280
281     builders:
282         - integration-get-bundle-vars
283         - inject:
284             properties-file: 'bundle_vars.txt'
285         - integration-deploy-controller-offline
286
287     publishers:
288         - archive:
289             artifacts: '*.log,*.log.xz'
290         - email-notification:
291             email-prefix: '[integration]'