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