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