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