Merge "Switch autorelease jobs to use mvn35"
[releng/builder.git] / jjb / integration / distribution / distribution-jobs.yaml
1 ---
2 - job-template:
3     name: 'distribution-verify-{stream}'
4
5     project-type: freestyle
6     node: centos7-builder-8c-8g
7     concurrent: true
8     jdk: '{java-version}'
9
10     properties:
11       - opendaylight-infra-properties:
12           build-days-to-keep: '{build-days-to-keep}'
13
14     parameters:
15       - opendaylight-infra-parameters:
16           os-cloud: '{os-cloud}'
17           project: '{project}'
18           branch: '{branch}'
19           refspec: 'refs/heads/{branch}'
20           artifacts: '{archive-artifacts}'
21
22     scm:
23       - gerrit-trigger-scm:
24           refspec: '$GERRIT_REFSPEC'
25           choosing-strategy: 'gerrit'
26
27     wrappers:
28       - opendaylight-infra-wrappers:
29           build-timeout: '{build-timeout}'
30
31     triggers:
32       - gerrit-trigger-patch-submitted:
33           gerrit-server-name: '{gerrit-server-name}'
34           project: '{project}'
35           branch: '{branch}'
36           files: '**'
37
38     builders:
39       - wipe-org-opendaylight-repo
40       - provide-maven-settings:
41           global-settings-file: 'global-settings'
42           settings-file: 'integration-settings'
43       - maven-target:
44           maven-version: mvn35
45           pom: pom.xml
46           goals: |
47               clean install dependency:tree -DoutputFile=dependency_tree.txt
48               -Dstream={stream}
49               -Dsft.heap.max=4g
50               -Pmanaged -Punmanaged
51               {opendaylight-infra-mvn-opts}
52           # {opendaylight-infra-parallel-mvn-opts} is bad when there are multiple big features in SFT.
53           java-opts:
54             - '-Xmx1024m -XX:MaxPermSize=256m'
55           settings: integration-settings
56           settings-type: cfp
57           global-settings: global-settings
58           global-settings-type: cfp
59
60     publishers:
61       - findbugs
62       - lf-jacoco-report
63       - lf-infra-publish
64       - email-notification:
65           email-recipients: '{email-recipients}'
66           email-prefix: '[{project-name}]'
67
68 - job-template:
69     name: 'distribution-merge-{stream}'
70
71     # Need to keep jobs that deploy to Nexus at end of build as Maven
72     # projects. Maybe reconsider this once upstream moves deploy to a
73     # separate lifecycle:
74     #     https://issues.apache.org/jira/browse/MNG-5666
75
76     project-type: maven
77     node: 'centos7-builder-8c-8g'
78     jdk: '{java-version}'
79
80     properties:
81       - opendaylight-infra-properties:
82           build-days-to-keep: '{build-days-to-keep}'
83
84     parameters:
85       - opendaylight-infra-parameters:
86           os-cloud: '{os-cloud}'
87           project: '{project}'
88           branch: '{branch}'
89           refspec: 'refs/heads/{branch}'
90           artifacts: '{archive-artifacts}'
91       - distribution-karaf-version:
92           karaf-version: '{karaf-version}'
93
94     scm:
95       - gerrit-trigger-scm:
96           refspec: ''
97           choosing-strategy: 'default'
98
99     wrappers:
100       - opendaylight-infra-wrappers:
101           build-timeout: '{build-timeout}'
102
103     triggers:
104       - gerrit-trigger-patch-merged:
105           gerrit-server-name: '{gerrit-server-name}'
106           name: '{project}'
107           branch: '{branch}'
108
109     prebuilders:
110       - wipe-org-opendaylight-repo
111       - jacoco-nojava-workaround
112       - provide-maven-settings:
113           global-settings-file: 'global-settings'
114           settings-file: 'integration-settings'
115       - integration-set-variables
116       - distribute-build-url:
117           path: '$KARAF_ARTIFACT/src/main/assembly'
118
119     maven:
120       maven-name: 'mvn35'
121       root-pom: 'pom.xml'
122       goals: >
123           clean install dependency:tree -DoutputFile=dependency_tree.txt -V -B
124           -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
125           -Dsft.heap.max=4g
126           -Djenkins -Dmerge -Dstream={stream}
127           -Pmanaged -Punmanaged
128       maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
129       settings: integration-settings
130       settings-type: cfp
131       global-settings: global-settings
132       global-settings-type: cfp
133
134     postbuilders:
135       - integration-compare-distributions
136     # TODO: the output of the above command is not *friendly* for the reader because the most important info
137     # is listed last. This is fine/best for command line output, but for keeping in a file it would be better
138     # to put the summary at the beginning of the file. Some bash magic can be done here to make that happen.
139
140     reporters:
141       - findbugs
142
143     publishers:
144       - maven-deploy:
145           id: ''
146           unique-version: true
147           deploy-unstable: false
148       - lf-jacoco-report
149       - lf-infra-publish
150       - email-notification:
151           email-recipients: '{email-recipients}'
152           email-prefix: '[{project-name}]'
153
154 - job-template:
155     name: 'distribution-check-{stream}'
156
157     ######################
158     # Default parameters #
159     ######################
160
161     mvn-version: mvn35
162
163     #####################
164     # Job Configuration #
165     #####################
166
167     # Like a {project}-distribution-check, but few steps less as there is no upstream project involved.
168     disabled: false
169
170     project-type: freestyle
171     node: 'centos7-builder-8c-8g'
172     concurrent: true
173     jdk: '{java-version}'
174
175     properties:
176       - opendaylight-infra-properties:
177           build-days-to-keep: '{build-days-to-keep}'
178
179     parameters:
180       - opendaylight-infra-parameters:
181           os-cloud: '{os-cloud}'
182           project: '{project}'
183           branch: '{branch}'
184           refspec: 'refs/heads/{branch}'
185           artifacts: '{archive-artifacts}'
186       - integration-distribution-stream:
187           stream: '{stream}'
188       - distribution-karaf-version:
189           karaf-version: '{karaf-version}'
190       - maven-exec:
191           maven-version: mvn35
192
193     scm:
194       - integration-gerrit-scm:
195           basedir: 'distribution'
196           refspec: '$GERRIT_REFSPEC'
197           branch: '{branch}'
198
199     wrappers:
200       - opendaylight-infra-wrappers:
201           # Distro-check jobs typically run within 10 - 30 minutes
202           # with 45 minutes being the occassional edge case.
203           # enforce a 60 minute limit to ensure stuck jobs get
204           # cleared up sooner.
205           # Double that as Karaf 3+4 may take longer.
206           build-timeout: '120'
207
208     triggers:
209       - gerrit-trigger-patch-submitted:
210           gerrit-server-name: '{gerrit-server-name}'
211           project: '{project}'
212           branch: '{branch}'
213           files: '**'
214
215     builders:
216       - distribution-check-wipe
217       - distribution-check-build-project:
218           pom: 'distribution/pom.xml'
219           mvn-opts: '{opendaylight-infra-mvn-opts}'
220           mvn-version: '{mvn-version}'
221           # '{opendaylight-infra-parallel-mvn-opts}' is bad when there are multiple big features in SFT.
222       - distribution-check-verify-groupid:
223           gerrit-project: 'integration'
224       - distribution-check-delete-snapshots
225       - distribution-check-configure-remotes
226       - distribution-check-repeat-project-build:
227           pom: 'distribution/pom.xml'
228           mvn-opts: '{opendaylight-infra-mvn-opts}'
229           mvn-version: '{mvn-version}'
230           # '{opendaylight-infra-parallel-mvn-opts}' is bad when there are multiple big features in SFT.
231       - integration-set-variables
232       - distribution-check-warn-9191
233       - distribution-check-warn-9192
234       - integration-upload-distribution:
235           dist-pom: distribution/pom.xml
236       - distribution-check-bootup
237
238     publishers:
239       - email-notification:
240           email-recipients: '{email-recipients}'
241           email-prefix: '[{project-name}]'
242       - integration-csit-archive-build
243       - lf-infra-publish
244
245 - job-template:
246     name: 'distribution-deploy-{stream}'
247     # Goal: Verify distribution starts with no issues when all features are loaded.
248     # Operation: This job deploys the controller installing odl-integration-all.
249     # FIXME: List required variables.
250
251     project-type: freestyle
252     node: centos7-builder-4c-4g
253     concurrent: false
254
255     properties:
256       - opendaylight-infra-properties:
257           build-days-to-keep: '{build-days-to-keep}'
258
259     parameters:
260       - opendaylight-infra-parameters:
261           os-cloud: '{os-cloud}'
262           project: '{project}'
263           branch: '{branch}'
264           refspec: 'refs/heads/{branch}'
265           artifacts: '{archive-artifacts}'
266       - integration-distribution-stream:
267           stream: '{stream}'
268       - integration-distribution-branch:
269           branch: '{branch}'
270       - integration-bundle-url:
271           bundle-url: '{bundle-url}'
272       - integration-jdk-version:
273           jdkversion: '{jre}'
274       - distribution-karaf-version:
275           karaf-version: '{karaf-version}'
276
277     wrappers:
278       - opendaylight-infra-wrappers:
279           build-timeout: '{build-timeout}'
280
281     # TODO: Trigger from sanity (instead of weekly) when this job is stable for {stream}.
282
283     builders:
284       - distribution-deploy-verify
285
286     publishers:
287       - email-notification:
288           email-recipients: '{email-recipients}'
289           email-prefix: '[{project-name}]'
290       - integration-csit-archive-build
291       - lf-infra-publish
292
293 - job-template:
294     name: 'distribution-offline-{stream}'
295     # Goal: Verify distribution can start with no internet connection.
296     # Operation: This job deploys the controller removing any external repository definition.
297     # FIXME: List required variables.
298
299     project-type: freestyle
300     node: centos7-builder-4c-4g
301     concurrent: false
302
303     properties:
304       - opendaylight-infra-properties:
305           build-days-to-keep: '{build-days-to-keep}'
306
307     parameters:
308       - opendaylight-infra-parameters:
309           os-cloud: '{os-cloud}'
310           project: '{project}'
311           branch: '{branch}'
312           refspec: 'refs/heads/{branch}'
313           artifacts: '{archive-artifacts}'
314       - integration-distribution-branch:
315           branch: '{branch}'
316       - integration-bundle-url:
317           bundle-url: '{bundle-url}'
318       - integration-jdk-version:
319           jdkversion: '{jre}'
320       - distribution-karaf-version:
321           karaf-version: '{karaf-version}'
322
323     wrappers:
324       - opendaylight-infra-wrappers:
325           build-timeout: '{build-timeout}'
326
327     # TODO: Trigger from sanity (instead of weekly) when this job is stable for {stream}.
328
329     builders:
330       - distribution-deploy-offline
331
332     publishers:
333       - email-notification:
334           email-recipients: '{email-recipients}'
335           email-prefix: '[{project-name}]'
336       - integration-csit-archive-build
337       - lf-infra-publish