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