Full distribution build
[releng/builder.git] / jjb / integration / distribution / distribution-jobs.yaml
1 ---
2 - job-template:
3     name: 'distribution-verify-{stream}'
4
5     project-type: freestyle
6     node: centos7-builder-8c-8g
7     concurrent: true
8     jdk: '{java-version}'
9
10     properties:
11       - opendaylight-infra-properties:
12           build-days-to-keep: '{build-days-to-keep}'
13
14     parameters:
15       - opendaylight-infra-parameters:
16           os-cloud: '{os-cloud}'
17           project: '{project}'
18           branch: '{branch}'
19           refspec: 'refs/heads/{branch}'
20           artifacts: '{archive-artifacts}'
21
22     scm:
23       - gerrit-trigger-scm:
24           refspec: '$GERRIT_REFSPEC'
25           choosing-strategy: 'gerrit'
26
27     wrappers:
28       - opendaylight-infra-wrappers:
29           build-timeout: '{build-timeout}'
30
31     triggers:
32       - gerrit-trigger-patch-submitted:
33           gerrit-server-name: '{gerrit-server-name}'
34           project: '{project}'
35           branch: '{branch}'
36           files: '**'
37
38     builders:
39       - wipe-org-opendaylight-repo
40       - provide-maven-settings:
41           global-settings-file: 'global-settings'
42           settings-file: 'integration-settings'
43       - maven-target:
44           maven-version: mvn33
45           pom: pom.xml
46           goals: |
47               clean install dependency:tree -DoutputFile=dependency_tree.txt
48               -Dstream={stream}
49               -Dsft.heap.max=4g
50               -Pmanaged -Punmanaged
51               {opendaylight-infra-mvn-opts}
52           # {opendaylight-infra-parallel-mvn-opts} is bad when there are multiple big features in SFT.
53           java-opts:
54             - '-Xmx1024m -XX:MaxPermSize=256m'
55           settings: integration-settings
56           settings-type: cfp
57           global-settings: global-settings
58           global-settings-type: cfp
59
60     publishers:
61       - findbugs
62       - lf-jacoco-report
63       - lf-infra-publish
64       - email-notification:
65           email-recipients: '{email-recipients}'
66           email-prefix: '[{project-name}]'
67
68 - job-template:
69     name: 'distribution-merge-{stream}'
70
71     # Need to keep jobs that deploy to Nexus at end of build as Maven
72     # projects. Maybe reconsider this once upstream moves deploy to a
73     # separate lifecycle:
74     #     https://issues.apache.org/jira/browse/MNG-5666
75
76     project-type: maven
77     node: 'centos7-builder-8c-8g'
78     jdk: '{java-version}'
79
80     properties:
81       - opendaylight-infra-properties:
82           build-days-to-keep: '{build-days-to-keep}'
83
84     parameters:
85       - opendaylight-infra-parameters:
86           os-cloud: '{os-cloud}'
87           project: '{project}'
88           branch: '{branch}'
89           refspec: 'refs/heads/{branch}'
90           artifacts: '{archive-artifacts}'
91       - distribution-karaf-version:
92           karaf-version: '{karaf-version}'
93
94     scm:
95       - gerrit-trigger-scm:
96           refspec: ''
97           choosing-strategy: 'default'
98
99     wrappers:
100       - opendaylight-infra-wrappers:
101           build-timeout: '{build-timeout}'
102
103     triggers:
104       - gerrit-trigger-patch-merged:
105           gerrit-server-name: '{gerrit-server-name}'
106           name: '{project}'
107           branch: '{branch}'
108
109     prebuilders:
110       - wipe-org-opendaylight-repo
111       - jacoco-nojava-workaround
112       - provide-maven-settings:
113           global-settings-file: 'global-settings'
114           settings-file: 'integration-settings'
115       - integration-set-variables
116       - distribute-build-url:
117           path: '$KARAF_ARTIFACT/src/main/assembly'
118
119     maven:
120       maven-name: 'mvn33'
121       root-pom: 'pom.xml'
122       goals: >
123           clean install dependency:tree -DoutputFile=dependency_tree.txt -V -B
124           -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
125           -Dsft.heap.max=4g
126           -Djenkins -Dmerge -Dstream={stream}
127           -Pmanaged -Punmanaged
128       maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
129       settings: integration-settings
130       settings-type: cfp
131       global-settings: global-settings
132       global-settings-type: cfp
133
134     postbuilders:
135       - integration-compare-distributions
136     # TODO: the output of the above command is not *friendly* for the reader because the most important info
137     # is listed last. This is fine/best for command line output, but for keeping in a file it would be better
138     # to put the summary at the beginning of the file. Some bash magic can be done here to make that happen.
139
140     reporters:
141       - findbugs
142
143     publishers:
144       - maven-deploy:
145           id: ''
146           unique-version: true
147           deploy-unstable: false
148       - lf-jacoco-report
149       - lf-infra-publish
150       - email-notification:
151           email-recipients: '{email-recipients}'
152           email-prefix: '[{project-name}]'
153
154 - job-template:
155     name: 'distribution-check-{stream}'
156
157     ######################
158     # Default parameters #
159     ######################
160
161     mvn-version: mvn33
162
163     #####################
164     # Job Configuration #
165     #####################
166
167     # Like a {project}-distribution-check, but few steps less as there is no upstream project involved.
168     disabled: false
169
170     project-type: freestyle
171     node: 'centos7-builder-8c-8g'
172     concurrent: true
173     jdk: '{java-version}'
174
175     properties:
176       - opendaylight-infra-properties:
177           build-days-to-keep: '{build-days-to-keep}'
178
179     parameters:
180       - opendaylight-infra-parameters:
181           os-cloud: '{os-cloud}'
182           project: '{project}'
183           branch: '{branch}'
184           refspec: 'refs/heads/{branch}'
185           artifacts: '{archive-artifacts}'
186       - distribution-karaf-version:
187           karaf-version: '{karaf-version}'
188       - maven-exec:
189           maven-version: mvn33
190
191     scm:
192       - integration-gerrit-scm:
193           basedir: 'distribution'
194           refspec: '$GERRIT_REFSPEC'
195           branch: '{branch}'
196
197     wrappers:
198       - opendaylight-infra-wrappers:
199           # Distro-check jobs typically run within 10 - 30 minutes
200           # with 45 minutes being the occassional edge case.
201           # enforce a 60 minute limit to ensure stuck jobs get
202           # cleared up sooner.
203           # Double that as Karaf 3+4 may take longer.
204           build-timeout: '120'
205
206     triggers:
207       - gerrit-trigger-patch-submitted:
208           gerrit-server-name: '{gerrit-server-name}'
209           project: '{project}'
210           branch: '{branch}'
211           files: '**'
212
213     builders:
214       - distribution-check-wipe
215       - distribution-check-build-project:
216           pom: 'distribution/pom.xml'
217           mvn-opts: '{opendaylight-infra-mvn-opts}'
218           mvn-version: '{mvn-version}'
219           # '{opendaylight-infra-parallel-mvn-opts}' is bad when there are multiple big features in SFT.
220       - distribution-check-verify-groupid:
221           gerrit-project: 'integration'
222       - distribution-check-delete-snapshots
223       - distribution-check-configure-remotes
224       - distribution-check-repeat-project-build:
225           pom: 'distribution/pom.xml'
226           mvn-opts: '{opendaylight-infra-mvn-opts}'
227           mvn-version: '{mvn-version}'
228           # '{opendaylight-infra-parallel-mvn-opts}' is bad when there are multiple big features in SFT.
229       - integration-set-variables
230       - distribution-check-warn-9191
231       - distribution-check-warn-9192
232       - integration-upload-distribution:
233           dist-pom: distribution/pom.xml
234       - distribution-check-bootup
235
236     publishers:
237       - email-notification:
238           email-recipients: '{email-recipients}'
239           email-prefix: '[{project-name}]'
240       - integration-csit-archive-build
241       - lf-infra-publish
242
243 - job-template:
244     name: 'distribution-deploy-{stream}'
245     # Goal: Verify distribution starts with no issues when all features are loaded.
246     # Operation: This job deploys the controller installing odl-integration-all.
247     # FIXME: List required variables.
248
249     project-type: freestyle
250     node: centos7-builder-4c-4g
251     concurrent: false
252
253     properties:
254       - opendaylight-infra-properties:
255           build-days-to-keep: '{build-days-to-keep}'
256
257     parameters:
258       - opendaylight-infra-parameters:
259           os-cloud: '{os-cloud}'
260           project: '{project}'
261           branch: '{branch}'
262           refspec: 'refs/heads/{branch}'
263           artifacts: '{archive-artifacts}'
264       - integration-distribution-branch:
265           branch: '{branch}'
266       - integration-bundle-url:
267           bundle-url: '{bundle-url}'
268       - integration-jdk-version:
269           jdkversion: '{jre}'
270       - distribution-karaf-version:
271           karaf-version: '{karaf-version}'
272
273     wrappers:
274       - opendaylight-infra-wrappers:
275           build-timeout: '{build-timeout}'
276
277     # TODO: Trigger from sanity (instead of weekly) when this job is stable for {stream}.
278
279     builders:
280       - distribution-deploy-verify
281
282     publishers:
283       - email-notification:
284           email-recipients: '{email-recipients}'
285           email-prefix: '[{project-name}]'
286       - integration-csit-archive-build
287       - lf-infra-publish
288
289 - job-template:
290     name: 'distribution-offline-{stream}'
291     # Goal: Verify distribution can start with no internet connection.
292     # Operation: This job deploys the controller removing any external repository definition.
293     # FIXME: List required variables.
294
295     project-type: freestyle
296     node: centos7-builder-4c-4g
297     concurrent: false
298
299     properties:
300       - opendaylight-infra-properties:
301           build-days-to-keep: '{build-days-to-keep}'
302
303     parameters:
304       - opendaylight-infra-parameters:
305           os-cloud: '{os-cloud}'
306           project: '{project}'
307           branch: '{branch}'
308           refspec: 'refs/heads/{branch}'
309           artifacts: '{archive-artifacts}'
310       - integration-distribution-branch:
311           branch: '{branch}'
312       - integration-bundle-url:
313           bundle-url: '{bundle-url}'
314       - integration-jdk-version:
315           jdkversion: '{jre}'
316       - distribution-karaf-version:
317           karaf-version: '{karaf-version}'
318
319     wrappers:
320       - opendaylight-infra-wrappers:
321           build-timeout: '{build-timeout}'
322
323     # TODO: Trigger from sanity (instead of weekly) when this job is stable for {stream}.
324
325     builders:
326       - distribution-deploy-offline
327
328     publishers:
329       - email-notification:
330           email-recipients: '{email-recipients}'
331           email-prefix: '[{project-name}]'
332       - integration-csit-archive-build
333       - lf-infra-publish