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