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