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