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