Merge "Patch robotVM script to support LongevityFramework"
[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         settings: 'integration-settings'
81         settings-type: cfp
82         global-settings: 'odl-global-settings'
83         global-settings-type: cfp
84         ignore-upstream-changes: true
85         post-step-run-condition: 'SUCCESS'
86
87     postbuilders:
88         - trigger-builds:
89             - project: 'integration-distribution-deploy-{stream}'
90               block: true
91               predefined-parameters:
92                   BUNDLEURL=$BUNDLEURL
93
94     publishers:
95         - email-notification:
96             email-prefix: '[integration]'
97         - archive-artifacts:
98             artifacts: '**/target/surefire-reports/*-output.txt, '
99         - findbugs
100         - jacoco-report
101
102 - job-template:
103     name: 'integration-distribution-merge-{stream}'
104
105     project-type: maven
106     node: dynamic_merge
107     jdk: '{jre}'
108
109     logrotate:
110         daysToKeep: '{build-days-to-keep}'
111         numToKeep: '{build-num-to-keep}'
112         artifactDaysToKeep: '{build-artifact-days-to-keep}'
113         artifactNumToKeep: '{build-artifact-num-to-keep}'
114
115     parameters:
116         - project-parameter:
117             project: 'integration/distribution'
118         - gerrit-parameters:
119             project: '{project}'
120             branch: '{branch}'
121             refspec: 'refs/heads/{branch}'
122
123     scm:
124         - gerrit-trigger-scm:
125             credentials-id: '{ssh-credentials}'
126             refspec: ''
127             choosing-strategy: 'default'
128
129     wrappers:
130         - build-timeout
131         - ssh-agent-credentials:
132             users:
133                 - '{ssh-credentials}'
134
135     triggers:
136         - timed: 'H H * * 0'
137         - gerrit-trigger-patch-merged:
138             name: 'integration/distribution'
139             branch: '{branch}'
140
141     prebuilders:
142         - wipe-org-opendaylight-repo
143         - jacoco-nojava-workaround
144         - provide-maven-settings:
145             global-settings-file: 'odl-global-settings'
146             settings-file: 'integration-settings'
147
148     maven:
149         maven-name: '{mvn33}'
150         root-pom: 'pom.xml'
151         goals: 'clean install -V -B -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -Djenkins -Dmerge -Dstream={stream}'
152         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
153         settings: 'integration-settings'
154         settings-type: cfp
155         global-settings: 'odl-global-settings'
156         global-settings-type: cfp
157
158     postbuilders:
159         - conditional-step:
160             condition-kind: file-exists
161             condition-filename: deploy-site.xml
162             condition-basedir: workspace
163
164             # The strategy here is intentional to run Maven site:deploy twice
165             # once using regular pom.xml to produce a staged-site which is
166             # then used by deploy-site.xml to push to Nexus. This is a
167             # workaround to Maven Site's default linking code which creates
168             # incorrect URLs for sites due to auto-detection assuming your
169             # project is configured in a certain way which ODL is not.
170             steps:
171             - maven-target:
172                 maven-version: '{mvn33}'
173                 pom: pom.xml
174                 goals: 'site:deploy -V -B -Dstream={stream}'
175                 java-opts:
176                     - '-Xmx2g'
177                 settings: 'integration-settings'
178                 settings-type: cfp
179                 global-settings: 'odl-global-settings'
180                 global-settings-type: cfp
181             - maven-target:
182                 maven-version: '{mvn33}'
183                 pom: deploy-site.xml
184                 goals: 'site:deploy -V -B -Dstream={stream}'
185                 java-opts:
186                     - '-Xmx2g'
187                 settings: 'integration-settings'
188                 settings-type: cfp
189                 global-settings: 'odl-global-settings'
190                 global-settings-type: cfp
191
192     reporters:
193         - findbugs
194
195     publishers:
196         - archive-artifacts:
197             artifacts: '**/target/surefire-reports/*-output.txt, '
198         - email-notification:
199             email-prefix: '[integration]'
200         - maven-deploy:
201             id: ''
202             unique-version: true
203             deploy-unstable: false
204         - jacoco-report
205
206 # Template: integration-distribution-deploy-{stream}
207 # Goal: Verify distribution starts with no issues when all features are loaded
208 # Operation: This job deploys the controller installing odl-integration-all
209
210 - job-template:
211     name: 'integration-distribution-deploy-{stream}'
212
213     project-type: freestyle
214     node: dynamic_verify
215     concurrent: true
216
217     logrotate:
218         daysToKeep: '{build-days-to-keep}'
219         numToKeep: '{build-num-to-keep}'
220         artifactDaysToKeep: '{build-artifact-days-to-keep}'
221         artifactNumToKeep: '{build-num-to-keep}'
222
223     parameters:
224         - project-parameter:
225             project: 'integration/distribution'
226         - integration-branch:
227             branch: '{branch}'
228         - integration-bundleurl:
229             bundleurl: 'last'
230         - integration-jdk-version:
231             jdkversion: '{jre}'
232
233     wrappers:
234         - build-timeout
235         - ssh-agent-credentials:
236             users:
237                 - '{ssh-credentials}'
238
239     triggers:
240         - timed: 'H H * * *'
241
242     builders:
243         - integration-get-bundle-vars
244         - inject:
245             properties-file: 'bundle_vars.txt'
246         - integration-deploy-controller-verify
247
248     publishers:
249         - email-notification:
250             email-prefix: '[integration]'
251         - integration-csit-archive-build
252         - archive-build:
253             maven-version: '{mvn33}'
254
255 # Template: integration-distribution-offline-{stream}
256 # Goal: Verify distribution can start with no internet connection
257 # Operation: This job deploys the controller removing any external repository definition
258
259 - job-template:
260     name: 'integration-distribution-offline-{stream}'
261
262     project-type: freestyle
263     node: dynamic_verify
264
265     logrotate:
266         daysToKeep: '{build-days-to-keep}'
267         numToKeep: '{build-num-to-keep}'
268         artifactDaysToKeep: '{build-artifact-days-to-keep}'
269         artifactNumToKeep: '{build-num-to-keep}'
270
271     parameters:
272         - project-parameter:
273             project: 'integration/distribution'
274         - integration-branch:
275             branch: '{branch}'
276         - integration-bundleurl:
277             bundleurl: 'last'
278         - integration-jdk-version:
279             jdkversion: '{jre}'
280
281     wrappers:
282         - build-timeout
283         - ssh-agent-credentials:
284             users:
285                 - '{ssh-credentials}'
286
287     triggers:
288         - timed: 'H H * * *'
289
290     builders:
291         - integration-get-bundle-vars
292         - inject:
293             properties-file: 'bundle_vars.txt'
294         - integration-deploy-controller-offline
295
296     publishers:
297         - email-notification:
298             email-prefix: '[integration]'
299         - integration-csit-archive-build
300         - archive-build:
301             maven-version: '{mvn33}'