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