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