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