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