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