d10f0a939667ce502dad3d6dfc4d80f95b1aea78
[releng/builder.git] / jjb / integration / integration-test-jobs.yaml
1 ---
2 - project:
3     name: integration-test
4     project: integration/test
5     project-name: integration-test
6     test-branch: master
7     jobs:
8       - '{project-name}-verify-tox-master'
9       - 'integration-csit-verify-1node-library'
10       - 'integration-distribution-test-{stream}'
11       - 'integration-patch-test-{stream}'
12       - 'integration-multipatch-test-{stream}'
13       - 'integration-distribution-weekly-test-trigger-{stream}'
14
15     # CSIT Lists in releng-defaults.yaml
16     stream:
17       - carbon:
18           branch: 'master'
19           jdk: 'openjdk8'
20           jre: 'openjdk8'
21           csit-list: '{csit-list-carbon}'
22           csit-weekly-list: '{csit-weekly-list-carbon}'
23           schedule: 'H H * * 0-4'
24           schedule-weekly: 'H 12 * * 0'
25
26       - boron:
27           branch: 'stable/boron'
28           jdk: 'openjdk8'
29           jre: 'openjdk8'
30           csit-list: '{csit-list-boron}'
31           csit-weekly-list: ''
32           schedule: 'H H * * 0-4'
33           schedule-weekly: 'H 12 * * 0'
34
35       - beryllium:
36           branch: 'stable/beryllium'
37           jdk: 'openjdk7'
38           jre: 'openjdk7'
39           csit-list: '{csit-list-beryllium}'
40           csit-weekly-list: ''
41           schedule: 'H H * * 6'
42           schedule-weekly: 'H 12 * * 0'
43
44     # tools system image
45     tools_system_image: Ubuntu 14.04 - mininet-ovs-25 - 20170210-0300
46
47 # Template: integration-csit-verify-1node-library
48 # Goal: Verify changes in csit folder not covered by projects suite verify jobs (e.g. libraries or variables)
49 # Operation: This job template performs a base openflow test when there is a change in the libraries folder
50
51 - job-template:
52     name: 'integration-csit-verify-1node-library'
53
54     project-type: freestyle
55     node: centos7-robot-2c-2g
56
57     # {stream} is already defined as a composite object, it cannot be overriden.
58     dist-stream: boron
59     # This is not a template, so define branch, scope and jre for distribution to test with.
60     branch: stable/boron
61     scope: only
62     jre: openjdk8
63
64     properties:
65       - opendaylight-infra-properties:
66           build-days-to-keep: '{build-days-to-keep}'
67
68     parameters:
69       - opendaylight-infra-parameters:
70           project: '{project}'
71           branch: '{test-branch}'
72           refspec: 'refs/heads/{test-branch}'
73           artifacts: '{archive-artifacts}'
74       - integration-distribution-branch:
75           branch: '{branch}'
76       - integration-distribution-stream:
77           stream: '{dist-stream}'
78       - integration-bundleurl:
79           bundleurl: '{bundleurl}'
80       - integration-controller-scope:
81           controller-scope: '{scope}'
82       - integration-controller-features:
83           controller-features: >
84               odl-clustering-test-app,
85               odl-openflowplugin-flow-services-ui,
86               odl-openflowplugin-app-table-miss-enforcer,
87               odl-bgpcep-pcep,
88               odl-bgpcep-bgp,
89               odl-netconf-connector-all
90       # when upgrading to carbon you should replace odl-netconf-connector-all with odl-netconf-topology
91       # and change USE_NETCONF_CONNECTOR to False in test-options
92       - integration-test-options:
93           test-options: '-v TIMEOUT_BUG_4220:10s -v USE_NETCONF_CONNECTOR:True'
94       - integration-stream-test-plan:
95           stream-test-plan: 'test-libraries-{dist-stream}.txt'
96       - integration-test-plan:
97           test-plan: 'test-libraries.txt'
98       - integration-patch-refspec:
99           branch: '$GERRIT_REFSPEC'
100       - integration-jdk-version:
101           jdkversion: '{jre}'
102
103     scm:
104       - integration-gerrit-scm:
105           basedir: 'test'
106           refspec: '$PATCHREFSPEC'
107           branch: '{test-branch}'
108
109     wrappers:
110       - opendaylight-infra-wrappers:
111           build-timeout: '{build-timeout}'
112
113     triggers:
114       - integration-trigger-patch-submitted:
115           server: '{server-name}'
116           project: '{project}'
117           branch: '{test-branch}'
118           files: 'csit/libraries/*'
119
120     builders:
121       - integration-infra-stack:
122           stack-template: '{stack-template}'
123           vm_0_count: '1'
124           vm_0_flavor: '{odl_system_flavor}'
125           vm_0_image: '{odl_system_image}'
126           vm_1_count: '{tools_system_count}'
127           vm_1_flavor: '{tools_system_flavor}'
128           vm_1_image: '{tools_system_image}'
129       - integration-install-robotframework
130       - inject:
131           properties-file: 'env.properties'
132       - integration-get-slave-addresses
133       - inject:
134           properties-file: 'slave_addresses.txt'
135       - integration-get-bundle-vars
136       - inject:
137           properties-file: 'bundle_vars.txt'
138       - integration-deploy-controller-run-test
139       - integration-cleanup-tmp
140
141     publishers:
142       - integration-robot:
143           unstable-if: 0.0
144           pass-if: 100.0
145       - email-notification:
146           email-recipients: '{email-recipients}'
147           email-prefix: '[integration]'
148       - integration-csit-archive-build
149       - opendaylight-infra-shiplogs:
150           maven-version: 'mvn33'
151
152 # Template: integration-distribution-test-{stream}
153 # Goal: Verify a distribution through all system test available
154 # Operation: This daily job template takes a distribution and passes all available system test
155
156 - job-template:
157     name: 'integration-distribution-test-{stream}'
158
159     project-type: freestyle
160     node: centos7-robot-2c-2g
161
162     properties:
163       - opendaylight-infra-properties:
164           build-days-to-keep: '{build-days-to-keep}'
165
166     parameters:
167       - integration-bundleurl:
168           bundleurl: '{bundleurl}'
169       - integration-jdk-version:
170           jdkversion: '{jre}'
171
172     triggers:
173       - timed: '{schedule}'
174
175     builders:
176       - trigger-builds:
177           - project: '{csit-list}'
178             block: true
179             predefined-parameters:
180               BUNDLEURL=$BUNDLEURL
181
182     publishers:
183       - email-notification:
184           email-recipients: '{email-recipients}'
185           email-prefix: '[integration]'
186
187 # Template: integration-patch-test-{stream}
188 # Goal: Build a patch and run all available system test on a distribution containing the change
189 # Operation: This job template builds a patch, creates a distribution containing the patch, and
190 # triggers the distribution test when test-integration is used in gerrit comments
191
192 - job-template:
193     name: 'integration-patch-test-{stream}'
194
195     project-type: maven
196     node: centos7-java-builder-2c-8g
197     jdk: '{jdk}'
198
199     properties:
200       - opendaylight-infra-properties:
201           build-days-to-keep: '{build-days-to-keep}'
202
203     parameters:
204       - opendaylight-infra-parameters:
205           project: '$GERRIT_PROJECT'
206           branch: '{branch}'
207           refspec: '$GERRIT_REFSPEC'
208           artifacts: '{archive-artifacts} **/dependency_tree.txt'
209       - integration-distribution-branch:
210           branch: '{branch}'
211       - integration-distribution-git-url:
212           git-url: '{git-url}'
213
214     scm:
215       - integration-gerrit-scm:
216           basedir: '$GERRIT_PROJECT'
217           refspec: '$GERRIT_REFSPEC'
218           branch: '{branch}'
219       - integration-distribution-scm:
220           branch: '{branch}'
221
222     wrappers:
223       - opendaylight-infra-wrappers:
224           build-timeout: '720'
225
226     triggers:
227       - gerrit:
228           server-name: '{server-name}'
229           trigger-on:
230             - comment-added-contains-event:
231                 comment-contains-value: 'test-integration'
232           projects:
233             - project-compare-type: 'ANT'
234               project-pattern: '**'
235               branches:
236                 - branch-compare-type: 'ANT'
237                   branch-pattern: '**/{branch}'
238           skip-vote:
239             successful: true
240             failed: true
241             unstable: true
242             notbuilt: true
243
244     prebuilders:
245       - integration-rebase-gerrit-patch
246       - integration-get-bundle-url
247       - inject:
248           properties-file: 'bundle.txt'
249       - wipe-org-opendaylight-repo
250       - provide-maven-settings:
251           global-settings-file: 'odl-global-settings'
252           settings-file: 'integration-settings'
253       - maven-target:
254           maven-version: 'mvn33'
255           pom: '$GERRIT_PROJECT/pom.xml'
256           goals: >
257               clean install dependency:tree -DoutputFile=dependency_tree.txt
258               -V -B -Pq -Djenkins
259               -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
260               -Dstream={stream}
261           java-opts:
262             - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
263           settings: 'integration-settings'
264           settings-type: cfp
265           global-settings: 'odl-global-settings'
266           global-settings-type: cfp
267
268     maven:
269       maven-name: 'mvn33'
270       root-pom: 'distribution/pom.xml'
271       goals: >
272           clean install dependency:tree -DoutputFile=dependency_tree.txt
273           -V -B -Djenkins
274           -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
275       maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
276       settings: 'integration-settings'
277       settings-type: cfp
278       global-settings: 'odl-global-settings'
279       global-settings-type: cfp
280       ignore-upstream-changes: true
281       post-step-run-condition: 'SUCCESS'
282
283     postbuilders:
284       - trigger-builds:
285           - project: '{csit-list}'
286             block: true
287             predefined-parameters:
288               BUNDLEURL=$BUNDLEURL
289
290     publishers:
291       - opendaylight-infra-shiplogs:
292           maven-version: 'mvn33'
293       - email-notification:
294           email-recipients: '{email-recipients}'
295           email-prefix: '[$GERRIT_PROJECT]'
296
297 # Template: integration-multipatch-test-{stream}
298 # Goal: Build one or more patches and run all available system test on a distribution containing the change
299 # Operation: This job template checks out and builds each patch provided in job parameters, creates a distribution
300 # containing these patches, and triggers the distribution test job which includes most (if not all) available
301 # CSIT jobs
302
303 - job-template:
304     name: 'integration-multipatch-test-{stream}'
305
306     project-type: maven
307     node: centos7-java-builder-8c-8g
308     jdk: '{jdk}'
309
310     properties:
311       - opendaylight-infra-properties:
312           build-days-to-keep: '{build-days-to-keep}'
313
314     parameters:
315       - patches-to-build-parameter:
316           patches_to_build: '$PATCHES_TO_BUILD'
317       - integration-distribution-branch:
318           branch: '{branch}'
319       - opendaylight-infra-parameters:
320           project: 'integration/distribution'
321           branch: '{branch}'
322           refspec: 'refs/heads/{branch}'
323           artifacts: '{archive-artifacts} **/dependency_tree.txt'
324
325     prebuilders:
326       - wipe-org-opendaylight-repo
327       - integration-multipatch-builder
328       - inject:
329           properties-file: 'bundle.txt'
330       - provide-maven-settings:
331           global-settings-file: 'odl-global-settings'
332           settings-file: 'yangtools-settings'
333
334     wrappers:
335       - opendaylight-infra-wrappers:
336           build-timeout: '1200'
337
338     maven:
339       maven-name: 'mvn33'
340       root-pom: 'patch_tester/pom.xml'
341       # TODO: Make Maven options configurable. Currently tests are not skipped, everything else is.
342       goals: >
343           clean install dependency:tree -DoutputFile=dependency_tree.txt
344           -f patch_tester/pom.xml -V -B -Pq -Djenkins
345           -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
346           -Dstream={stream}
347       maven-opts: '-Xmx7168m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
348       settings: 'yangtools-settings'
349       settings-type: cfp
350       global-settings: 'odl-global-settings'
351       global-settings-type: cfp
352       post-step-run-condition: 'SUCCESS'
353
354     postbuilders:
355       - trigger-builds:
356           - project: '{csit-list}'
357             block: true
358             predefined-parameters:
359               BUNDLEURL=$BUNDLEURL
360
361     publishers:
362       - opendaylight-infra-shiplogs:
363           maven-version: 'mvn33'
364       - email-notification:
365           email-recipients: '{email-recipients}'
366           email-prefix: '[int/dist]'
367
368 - job-template:
369     name: 'integration-distribution-weekly-test-trigger-{stream}'
370
371     project-type: freestyle
372     node: centos7-robot-2c-2g
373
374     properties:
375       - opendaylight-infra-properties:
376           build-days-to-keep: '{build-days-to-keep}'
377
378     parameters:
379       - integration-bundleurl:
380           bundleurl: '{bundleurl}'
381       - integration-jdk-version:
382           jdkversion: '{jre}'
383
384     triggers:
385       - timed: '{schedule-weekly}'
386
387     builders:
388       - trigger-builds:
389           - project: '{csit-weekly-list}'
390             block: true
391             predefined-parameters:
392               BUNDLEURL=$BUNDLEURL
393
394     publishers:
395       - email-notification:
396           email-recipients: '{email-recipients}'
397           email-prefix: '[integration]'