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