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