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