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