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