Merge "Add from address field"
[releng/builder.git] / jjb / integration / integration-test-jobs.yaml
1 - project:
2     name: integration-test
3     project: integration/test
4     project-name: integration-test
5     jobs:
6         - '{project-name}-verify-tox-{stream}'
7         - 'integration-csit-verify-1node-library'
8         - 'integration-distribution-test-{stream}'
9         - 'integration-patch-test-{stream}'
10         - 'integration-multipatch-test-{stream}'
11
12     # CSIT Lists in releng-defaults.yaml
13     stream:
14         - carbon:
15             branch: 'master'
16             jdk: 'openjdk8'
17             jre: 'openjdk8'
18             csit-list: '{csit-list-carbon}'
19             schedule: 'H H * * 0-4'
20
21         - boron:
22             branch: 'stable/boron'
23             jdk: 'openjdk8'
24             jre: 'openjdk8'
25             csit-list: '{csit-list-boron}'
26             schedule: 'H H * * 0-4'
27
28         - beryllium:
29             branch: 'stable/beryllium'
30             jdk: 'openjdk7'
31             jre: 'openjdk7'
32             csit-list: '{csit-list-beryllium}'
33             schedule: 'H H * * 6'
34
35     # tools system image
36     tools_system_image: Ubuntu 14.04 - mininet-ovs-25 - 20170210-0300
37
38 # Template: integration-csit-verify-1node-library
39 # Goal: Verify changes in csit folder not covered by projects suite verify jobs (e.g. libraries or variables)
40 # Operation: This job template performs a base openflow test when there is a change in the libraries folder
41
42 - job-template:
43     name: 'integration-csit-verify-1node-library'
44
45     project-type: freestyle
46     node: centos7-robot-2c-2g
47
48     # {stream} is already defined as a composite object, it cannot be overriden.
49     dist-stream: boron
50     # This is not a template, so define branch, scope and jre for distribution to test with.
51     branch: stable/boron
52     scope: only
53     jre: openjdk8
54     # Integration/Test branch remains hardcoded to 'master' as int/test does not have any other branch.
55     test-branch: master
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: '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}'
250             java-opts:
251                 - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
252             settings: 'integration-settings'
253             settings-type: cfp
254             global-settings: 'odl-global-settings'
255             global-settings-type: cfp
256
257     maven:
258         maven-name: 'mvn33'
259         root-pom: 'distribution/pom.xml'
260         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'
261         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
262         settings: 'integration-settings'
263         settings-type: cfp
264         global-settings: 'odl-global-settings'
265         global-settings-type: cfp
266         ignore-upstream-changes: true
267         post-step-run-condition: 'SUCCESS'
268
269     postbuilders:
270         - trigger-builds:
271             - project: '{csit-list}'
272               block: true
273               predefined-parameters:
274                   BUNDLEURL=$BUNDLEURL
275
276     publishers:
277         - opendaylight-infra-shiplogs:
278             maven-version: 'mvn33'
279         - email-notification:
280             email-recipients: '{email-recipients}'
281             email-prefix: '[$GERRIT_PROJECT]'
282
283 # Template: integration-multipatch-test-{stream}
284 # Goal: Build one or more patches and run all available system test on a distribution containing the change
285 # Operation: This job template checks out and builds each patch provided in job parameters, creates a distribution
286 # containing these patches, and triggers the distribution test job which includes most (if not all) available
287 # CSIT jobs
288
289 - job-template:
290     name: 'integration-multipatch-test-{stream}'
291
292     project-type: maven
293     node: centos7-java-builder-8c-8g
294     jdk: '{jdk}'
295
296     properties:
297         - opendaylight-infra-properties:
298             build-days-to-keep: '{build-days-to-keep}'
299
300     parameters:
301         - patches-to-build-parameter:
302             patches_to_build: '$PATCHES_TO_BUILD'
303         - integration-distribution-branch:
304             branch: '{branch}'
305         - opendaylight-infra-parameters:
306             project: 'integration/distribution'
307             branch: '{branch}'
308             refspec: 'refs/heads/{branch}'
309             artifacts: '{archive-artifacts} **/dependency_tree.txt'
310
311     prebuilders:
312         - wipe-org-opendaylight-repo
313         - integration-multipatch-builder
314         - inject:
315             properties-file: 'bundle.txt'
316         - provide-maven-settings:
317             global-settings-file: 'odl-global-settings'
318             settings-file: 'yangtools-settings'
319
320     wrappers:
321         - opendaylight-infra-wrappers:
322             build-timeout: '1200'
323
324     maven:
325         maven-name: 'mvn33'
326         root-pom: 'patch_tester/pom.xml'
327         # TODO: Make Maven options configurable. Currently tests are not skipped, everything else is.
328         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}'
329         maven-opts: '-Xmx7168m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
330         settings: 'yangtools-settings'
331         settings-type: cfp
332         global-settings: 'odl-global-settings'
333         global-settings-type: cfp
334         post-step-run-condition: 'SUCCESS'
335
336     postbuilders:
337         - trigger-builds:
338             - project: '{csit-list}'
339               block: true
340               predefined-parameters:
341                   BUNDLEURL=$BUNDLEURL
342
343     publishers:
344         - opendaylight-infra-shiplogs:
345             maven-version: 'mvn33'
346         - email-notification:
347             email-recipients: '{email-recipients}'
348             email-prefix: '[int/dist]'