Use openjdk11 for Magnesium Multi-patch
[releng/builder.git] / jjb / integration / distribution / distribution-templates.yaml
1 ---
2 - job-template:
3     name: '{project-name}-distribution-check-{stream}'
4
5     ######################
6     # Default parameters #
7     ######################
8
9     mvn-version: mvn35
10     csit-gate-list: ''
11     block_on_csit: false
12     # Unless block_on_csit is true, the failure-threshold will be ignored. For project jobs that
13     # want to fail distribution check on csit jobs, they will only need a list of jobs to run
14     # plus the change of block_on_csit to true, and this failure-threshold: 'UNSTABLE' will take
15     # effect
16     failure-threshold: 'UNSTABLE'
17     disable-job: false
18
19     #####################
20     # Job Configuration #
21     #####################
22
23     # Operation: This job template builds a patch, creates a distribution containing
24     #            the patch (making sure dependencies are specified),
25     #            and performs the distribution deploy test.
26     disabled: '{disable-job}'
27
28     project-type: freestyle
29     node: 'centos7-builder-8c-8g'
30     concurrent: true
31     jdk: '{java-version}'
32
33     properties:
34       - opendaylight-infra-properties:
35           build-days-to-keep: '{build-days-to-keep}'
36
37     parameters:
38       - opendaylight-infra-parameters:
39           os-cloud: '{os-cloud}'
40           project: '{project}'
41           branch: '{branch}'
42           refspec: 'refs/heads/{branch}'
43           artifacts: '{archive-artifacts}'
44       - integration-distribution-stream:
45           stream: '{stream}'
46       - integration-distribution-git-url:
47           git-url: '{git-url}'
48       - distribution-karaf-version:
49           karaf-version: '{karaf-version}'
50       - maven-exec:
51           maven-version: '{mvn-version}'
52
53     scm:
54       - integration-gerrit-scm:
55           basedir: '$GERRIT_PROJECT'
56           refspec: '$GERRIT_REFSPEC'
57           branch: '{branch}'
58       - integration-distribution-scm:
59           branch: '{distribution_branch}'
60
61     wrappers:
62       - opendaylight-infra-wrappers:
63           # Distro-check jobs typically run within 10 - 30 minutes
64           # with 45 minutes being the occassional edge case.
65           # enforce a 60 minute limit to ensure stuck jobs get
66           # cleared up sooner.
67           # Double that as Karaf 3+4 may take longer.
68           build-timeout: '120'
69
70     triggers:
71       - gerrit-trigger-patch-submitted:
72           gerrit-server-name: '{gerrit-server-name}'
73           project: '{project}'
74           branch: '{branch}'
75           files: '**'
76           forbidden-files: ''
77
78     builders:
79       - distribution-check-wipe
80       - inject:
81           properties-file: 'allowed_projects.txt'
82       - distribution-check-build-project:
83           pom: '$GERRIT_PROJECT/pom.xml'
84           mvn-opts: '{opendaylight-infra-mvn-opts}'
85           mvn-version: '{mvn-version}'
86           # {opendaylight-infra-parallel-mvn-opts} is bad when there are multiple big features in SFT.
87       - distribution-check-verify-groupid:
88           gerrit-project: '$GERRIT_PROJECT'
89       - distribution-check-download-deps:
90           dist-pom: 'distribution/pom.xml'
91           mvn-opts: '{opendaylight-infra-mvn-opts}'
92           mvn-version: '{mvn-version}'
93           # {opendaylight-infra-parallel-mvn-opts} is bad when there are multiple big features in SFT.
94       - distribution-check-delete-snapshots
95       - distribution-check-configure-remotes
96       - distribution-check-repeat-project-build:
97           pom: '$GERRIT_PROJECT/pom.xml'
98           mvn-opts: '{opendaylight-infra-mvn-opts}'
99           mvn-version: '{mvn-version}'
100           # {opendaylight-infra-parallel-mvn-opts} is bad when there are multiple big features in SFT.
101       - distribution-check-repeat-distro-build:
102           dist-pom: 'distribution/pom.xml'
103           mvn-opts: '{opendaylight-infra-mvn-opts}'
104           mvn-version: '{mvn-version}'
105           # {opendaylight-infra-parallel-mvn-opts} is bad when there are multiple big features in SFT.
106       - integration-set-variables
107       - distribution-check-warn-9191
108       - distribution-check-warn-9192
109       - integration-upload-distribution:
110           dist-pom: distribution/pom.xml
111       - distribution-check-bootup
112
113       - trigger-builds:
114           - project: '{csit-gate-list}'
115             block: '{obj:block_on_csit}'
116             block-thresholds:
117               failure-threshold: '{failure-threshold}'
118             predefined-parameters: |
119               BUNDLE_URL=$BUNDLE_URL
120               KARAF_VERSION=$KARAF_VERSION
121
122     publishers:
123       - email-notification:
124           email-recipients: '{email-recipients}'
125           email-prefix: '[{project-name}]'
126       - integration-csit-archive-build
127       - lf-infra-publish
128
129 - job-template:
130     name: 'distribution-verify-{type}-{stream}'
131
132     disable-job: 'false'
133
134     project-type: freestyle
135     node: centos7-builder-8c-8g
136     concurrent: true
137     jdk: '{java-version}'
138     disabled: '{disable-job}'
139
140     properties:
141       - opendaylight-infra-properties:
142           build-days-to-keep: '{build-days-to-keep}'
143
144     parameters:
145       - opendaylight-infra-parameters:
146           os-cloud: '{os-cloud}'
147           project: '{project}'
148           branch: '{branch}'
149           refspec: 'refs/heads/{branch}'
150           artifacts: '{archive-artifacts}'
151
152     scm:
153       - gerrit-trigger-scm:
154           refspec: '$GERRIT_REFSPEC'
155           choosing-strategy: 'gerrit'
156
157     wrappers:
158       - opendaylight-infra-wrappers:
159           build-timeout: '{build-timeout}'
160
161     triggers:
162       - gerrit-trigger-patch-submitted:
163           gerrit-server-name: '{gerrit-server-name}'
164           project: '{project}'
165           branch: '{branch}'
166           files: '{files}'
167           forbidden-files: '{forbidden-files}'
168
169     builders:
170       - wipe-org-opendaylight-repo
171       - lf-provide-maven-settings:
172           global-settings-file: 'global-settings'
173           settings-file: 'integration-settings'
174       - maven-target:
175           maven-version: mvn35
176           pom: pom.xml
177           goals: |
178               clean install dependency:tree -DoutputFile=dependency_tree.txt
179               -Dstream={stream}
180               -Dsft.heap.max=4g
181               {opendaylight-infra-mvn-opts}
182               {profile}
183           # {opendaylight-infra-parallel-mvn-opts} is bad when there are multiple big features in SFT.
184           java-opts:
185             - '-Xmx1024m'
186           settings: integration-settings
187           settings-type: cfp
188           global-settings: global-settings
189           global-settings-type: cfp
190
191     publishers:
192       - findbugs
193       - lf-jacoco-report
194       - lf-infra-publish
195       - email-notification:
196           email-recipients: '{email-recipients}'
197           email-prefix: '[{project-name}]'
198
199 - job-template:
200     name: 'distribution-merge-{type}-{stream}'
201
202     # Need to keep jobs that deploy to Nexus at end of build as Maven
203     # projects. Maybe reconsider this once upstream moves deploy to a
204     # separate lifecycle:
205     #     https://issues.apache.org/jira/browse/MNG-5666
206
207     disable-job: false
208
209     project-type: maven
210     node: 'centos7-builder-8c-8g'
211     jdk: '{java-version}'
212     disabled: '{disable-job}'
213
214     properties:
215       - opendaylight-infra-properties:
216           build-days-to-keep: '{build-days-to-keep}'
217
218     parameters:
219       - opendaylight-infra-parameters:
220           os-cloud: '{os-cloud}'
221           project: '{project}'
222           branch: '{branch}'
223           refspec: 'refs/heads/{branch}'
224           artifacts: '{archive-artifacts}'
225       - distribution-karaf-version:
226           karaf-version: '{karaf-version}'
227
228     scm:
229       - gerrit-trigger-scm:
230           refspec: ''
231           choosing-strategy: 'default'
232
233     wrappers:
234       - opendaylight-infra-wrappers:
235           build-timeout: '{build-timeout}'
236
237     triggers:
238       - gerrit-trigger-patch-merged:
239           gerrit-server-name: '{gerrit-server-name}'
240           name: '{project}'
241           branch: '{branch}'
242           files: '{files}'
243           forbidden-files: '{forbidden-files}'
244       - reverse:
245           jobs: '{dependencies}'
246
247     prebuilders:
248       - wipe-org-opendaylight-repo
249       - lf-jacoco-nojava-workaround
250       - lf-provide-maven-settings:
251           global-settings-file: 'global-settings'
252           settings-file: 'integration-settings'
253       - integration-set-variables
254       - distribute-build-url:
255           path: '$KARAF_ARTIFACT/src/main/assembly'
256
257     maven:
258       maven-name: 'mvn35'
259       root-pom: 'pom.xml'
260       goals: >
261           clean install dependency:tree -DoutputFile=dependency_tree.txt -V -B
262           -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
263           -Dsft.heap.max=4g
264           -Djenkins -Dmerge -Dstream={stream}
265           {profile}
266       maven-opts: '-Xmx1024m'
267       settings: integration-settings
268       settings-type: cfp
269       global-settings: global-settings
270       global-settings-type: cfp
271
272     postbuilders:
273       - integration-compare-distributions
274     # TODO: the output of the above command is not *friendly* for the reader because the most important info
275     # is listed last. This is fine/best for command line output, but for keeping in a file it would be better
276     # to put the summary at the beginning of the file. Some bash magic can be done here to make that happen.
277
278     reporters:
279       - findbugs
280
281     publishers:
282       - maven-deploy:
283           id: ''
284           unique-version: true
285           deploy-unstable: false
286       - lf-jacoco-report
287       - lf-infra-publish
288       - email-notification:
289           email-recipients: '{email-recipients}'
290           email-prefix: '[{project-name}]'
291
292 - job-template:
293     name: 'distribution-check-{type}-{stream}'
294
295     ######################
296     # Default parameters #
297     ######################
298     disable-job: false
299     mvn-version: mvn35
300
301     #####################
302     # Job Configuration #
303     #####################
304
305     # Like a {project}-distribution-check, but few steps less as there is no upstream project involved.
306     disabled: '{disable-job}'
307
308     project-type: freestyle
309     node: 'centos7-builder-8c-8g'
310     concurrent: true
311     jdk: '{java-version}'
312
313     properties:
314       - opendaylight-infra-properties:
315           build-days-to-keep: '{build-days-to-keep}'
316
317     parameters:
318       - opendaylight-infra-parameters:
319           os-cloud: '{os-cloud}'
320           project: '{project}'
321           branch: '{branch}'
322           refspec: 'refs/heads/{branch}'
323           artifacts: '{archive-artifacts}'
324       - integration-distribution-stream:
325           stream: '{stream}'
326       - distribution-karaf-version:
327           karaf-version: '{karaf-version}'
328       - maven-exec:
329           maven-version: mvn35
330
331     scm:
332       - integration-gerrit-scm:
333           basedir: 'distribution'
334           refspec: '$GERRIT_REFSPEC'
335           branch: '{branch}'
336
337     wrappers:
338       - opendaylight-infra-wrappers:
339           # Distro-check jobs typically run within 10 - 30 minutes
340           # with 45 minutes being the occassional edge case.
341           # enforce a 60 minute limit to ensure stuck jobs get
342           # cleared up sooner.
343           # Double that as Karaf 3+4 may take longer.
344           build-timeout: '120'
345
346     triggers:
347       - gerrit-trigger-patch-submitted:
348           gerrit-server-name: '{gerrit-server-name}'
349           project: '{project}'
350           branch: '{branch}'
351           files: '{files}'
352           forbidden-files: '{forbidden-files}'
353
354     builders:
355       - distribution-check-wipe
356       - inject:
357           properties-file: 'allowed_projects.txt'
358       - distribution-check-build-project:
359           pom: 'distribution/pom.xml'
360           mvn-opts: |
361               {opendaylight-infra-mvn-opts}
362               {profile}
363           mvn-version: '{mvn-version}'
364           # '{opendaylight-infra-parallel-mvn-opts}' is bad when there are multiple big features in SFT.
365       - distribution-check-verify-groupid:
366           gerrit-project: 'integration'
367       - distribution-check-delete-snapshots
368       - distribution-check-configure-remotes
369       - distribution-check-repeat-project-build:
370           pom: 'distribution/pom.xml'
371           mvn-opts: |
372               {opendaylight-infra-mvn-opts}
373               {profile}
374           mvn-version: '{mvn-version}'
375           # '{opendaylight-infra-parallel-mvn-opts}' is bad when there are multiple big features in SFT.
376       - integration-set-variables
377       - distribution-check-warn-9191
378       - distribution-check-warn-9192
379       - integration-upload-distribution:
380           dist-pom: '{dist-pom}'
381       - distribution-check-bootup
382
383     publishers:
384       - email-notification:
385           email-recipients: '{email-recipients}'
386           email-prefix: '[{project-name}]'
387       - integration-csit-archive-build
388       - lf-infra-publish
389
390 - job-template:
391     name: 'distribution-sanity-{stream}'
392     # Goal: Verify distribution starts with no issues when all features are loaded.
393     # Operation: This job deploys odl-integration-all + list of UM features.
394     # This job works for both managed & self-managed distro.
395
396     project-type: freestyle
397     node: centos7-builder-2c-8g
398     concurrent: false
399
400     properties:
401       - opendaylight-infra-properties:
402           build-days-to-keep: '{build-days-to-keep}'
403
404     parameters:
405       - opendaylight-infra-parameters:
406           os-cloud: '{os-cloud}'
407           project: '{project}'
408           branch: '{branch}'
409           refspec: 'refs/heads/{branch}'
410           artifacts: '{archive-artifacts}'
411       - integration-distribution-stream:
412           stream: '{stream}'
413       - integration-distribution-branch:
414           branch: '{branch}'
415       - integration-bundle-url:
416           bundle-url: '{bundle-url}'
417       - integration-repo-url:
418           repo-url: '{sm-repos}'
419       - integration-controller-parameters:
420           controller-features: '{sm-features}'
421           # Parameters below are unused in this job so set them all to blank
422           controller-debug-map: ''
423           controller-scope: ''
424           controller-use-features-boot: ''
425       - integration-jdk-version:
426           jdkversion: '{jre}'
427       - distribution-karaf-version:
428           karaf-version: '{karaf-version}'
429
430     wrappers:
431       - opendaylight-infra-wrappers:
432           build-timeout: '{build-timeout}'
433
434     builders:
435       - integration-detect-variables
436       - distribution-check-bootup
437
438     publishers:
439       - email-notification:
440           email-recipients: '{email-recipients}'
441           email-prefix: '[{project-name}]'
442       - integration-csit-archive-build
443       - lf-infra-publish
444
445 - job-template:
446     name: 'distribution-csit-managed-{stream}'
447     # Goal: Verify distribution starts with no issues when all features are loaded.
448     # Operation: This job deploys odl-integration-all.
449     # This job works for just managed distro.
450
451     disable-job: false
452
453     project-type: freestyle
454     node: centos7-builder-4c-4g
455     concurrent: false
456     disabled: '{disable-job}'
457
458     properties:
459       - opendaylight-infra-properties:
460           build-days-to-keep: '{build-days-to-keep}'
461
462     parameters:
463       - opendaylight-infra-parameters:
464           os-cloud: '{os-cloud}'
465           project: '{project}'
466           branch: '{branch}'
467           refspec: 'refs/heads/{branch}'
468           artifacts: '{archive-artifacts}'
469       - integration-distribution-stream:
470           stream: '{stream}'
471       - integration-distribution-branch:
472           branch: '{branch}'
473       - integration-bundle-url:
474           bundle-url: '{bundle-url}'
475       - integration-jdk-version:
476           jdkversion: '{jre}'
477       - distribution-karaf-version:
478           karaf-version: 'karaf4'
479
480     wrappers:
481       - opendaylight-infra-wrappers:
482           build-timeout: '{build-timeout}'
483
484     builders:
485       - integration-detect-variables
486       - distribution-check-bootup
487
488     publishers:
489       - email-notification:
490           email-recipients: '{email-recipients}'
491           email-prefix: '[{project-name}]'
492       - integration-csit-archive-build
493       - lf-infra-publish