Merge "integration-distribution-test-{stream} only on Saturday"
[releng/builder.git] / jjb / integration / integration-test-jobs.yaml
1
2 - project:
3     name: integration-test-jobs
4     jobs:
5         - 'integration-verify-python'
6         - 'integration-csit-verify-1node-library'
7         - 'integration-distribution-offline-{stream}'
8         - 'integration-distribution-test-{stream}'
9         - 'integration-patch-test-{stream}'
10         - 'integration-multipatch-test-{stream}'
11
12     stream:
13         - beryllium:
14             branch: 'master'
15             csit-list: >
16                 aaa-csit-1node-authn-only-{stream},
17                 aaa-csit-1node-authn-all-{stream},
18                 bgpcep-csit-1node-userfeatures-only-{stream},
19                 bgpcep-csit-1node-userfeatures-all-{stream},
20                 capwap-csit-1node-ac-only-{stream},
21                 capwap-csit-1node-ac-all-{stream},
22                 controller-csit-3node-clustering-only-{stream},
23                 controller-csit-3node-clustering-all-{stream},
24                 integration-csit-3node-basic-only-{stream},
25                 integration-csit-3node-basic-all-{stream},
26                 integration-distribution-offline-{stream},
27                 l2switch-csit-1node-switch-only-{stream},
28                 l2switch-csit-1node-switch-all-{stream},
29                 l2switch-csit-1node-scalability-only-{stream},
30                 l2switch-csit-1node-scalability-all-{stream},
31                 lispflowmapping-csit-1node-all-only-{stream},
32                 lispflowmapping-csit-1node-all-all-{stream},
33                 nic-csit-1node-basic-all-{stream},
34                 nic-csit-1node-basic-only-{stream},
35                 openflowplugin-csit-1node-flow-services-only-{stream},
36                 openflowplugin-csit-1node-flow-services-lithium-redesign-only-{stream},
37                 openflowplugin-csit-1node-flow-services-all-{stream},
38                 openflowplugin-csit-1node-scalability-only-{stream},
39                 openflowplugin-csit-1node-scalability-lithium-redesign-only-{stream},
40                 openflowplugin-csit-1node-scalability-all-{stream},
41                 openflowplugin-csit-1node-cbench-performance-only-{stream},
42                 openflowplugin-csit-1node-cbench-performance-lithium-redesign-only-{stream},
43                 openflowplugin-csit-1node-config-performance-only-{stream},
44                 openflowplugin-csit-1node-config-performance-lithium-redesign-only-{stream},
45                 ovsdb-csit-1node-netvirt-only-{stream},
46                 ovsdb-csit-1node-netvirt-all-{stream},
47                 ovsdb-csit-1node-southbound-only-{stream},
48                 ovsdb-csit-1node-southbound-all-{stream},
49                 snmp-csit-1node-basic-only-{stream},
50                 snmp-csit-1node-basic-all-{stream},
51                 topoprocessing-csit-1node-topology-operations-all-{stream},
52                 topoprocessing-csit-1node-topology-operations-only-{stream},
53                 tsdr-csit-1node-h2-datastore-only-{stream},
54                 tsdr-csit-1node-h2-datastore-all-{stream},
55                 tsdr-csit-1node-hbase-datastore-only-{stream},
56                 tsdr-csit-1node-hbase-datastore-all-{stream},
57                 usc-csit-1node-channel-only-{stream},
58                 usc-csit-1node-channel-all-{stream},
59                 vpnservice-csit-1node-vpnservice-only-{stream},
60                 vpnservice-csit-1node-vpnservice-all-{stream},
61                 vtn-csit-1node-manager-only-{stream},
62                 vtn-csit-1node-manager-all-{stream}
63
64         - stable-lithium:
65             branch: 'stable/lithium'
66             csit-list: >
67                 aaa-csit-1node-authn-only-{stream},
68                 aaa-csit-1node-authn-all-{stream},
69                 bgpcep-csit-1node-userfeatures-only-{stream},
70                 bgpcep-csit-1node-userfeatures-all-{stream},
71                 capwap-csit-1node-ac-only-{stream},
72                 capwap-csit-1node-ac-all-{stream},
73                 controller-csit-3node-clustering-only-{stream},
74                 controller-csit-3node-clustering-all-{stream},
75                 integration-csit-3node-basic-only-{stream},
76                 integration-csit-3node-basic-all-{stream},
77                 integration-distribution-offline-{stream},
78                 l2switch-csit-1node-switch-only-{stream},
79                 l2switch-csit-1node-switch-all-{stream},
80                 l2switch-csit-1node-scalability-only-{stream},
81                 l2switch-csit-1node-scalability-all-{stream},
82                 lispflowmapping-csit-1node-all-only-{stream},
83                 lispflowmapping-csit-1node-all-all-{stream},
84                 nic-csit-1node-basic-all-{stream},
85                 nic-csit-1node-basic-only-{stream},
86                 openflowplugin-csit-1node-flow-services-only-{stream},
87                 openflowplugin-csit-1node-flow-services-lithium-redesign-only-{stream},
88                 openflowplugin-csit-1node-flow-services-all-{stream},
89                 openflowplugin-csit-1node-scalability-only-{stream},
90                 openflowplugin-csit-1node-scalability-lithium-redesign-only-{stream},
91                 openflowplugin-csit-1node-scalability-all-{stream},
92                 openflowplugin-csit-1node-cbench-performance-only-{stream},
93                 openflowplugin-csit-1node-cbench-performance-lithium-redesign-only-{stream},
94                 openflowplugin-csit-1node-config-performance-only-{stream},
95                 openflowplugin-csit-1node-config-performance-lithium-redesign-only-{stream},
96                 ovsdb-csit-1node-netvirt-only-{stream},
97                 ovsdb-csit-1node-netvirt-all-{stream},
98                 ovsdb-csit-1node-southbound-only-{stream},
99                 ovsdb-csit-1node-southbound-all-{stream},
100                 snmp-csit-1node-basic-only-{stream},
101                 snmp-csit-1node-basic-all-{stream},
102                 usc-csit-1node-channel-only-{stream},
103                 usc-csit-1node-channel-all-{stream},
104                 vpnservice-csit-1node-vpnservice-only-{stream},
105                 vpnservice-csit-1node-vpnservice-all-{stream},
106                 vtn-csit-1node-manager-only-{stream},
107                 vtn-csit-1node-manager-all-{stream}
108
109         - stable-helium:
110             branch: 'stable/helium'
111             csit-list: >
112                 aaa-csit-1node-imds-authn-only-{stream},
113                 aaa-csit-1node-imds-authn-all-{stream},
114                 controller-csit-1node-imds-nsf-only-{stream},
115                 controller-csit-1node-imds-nsf-all-{stream},
116                 integration-csit-3node-basic-only-{stream},
117                 integration-csit-3node-basic-all-{stream},
118                 l2switch-csit-1node-imds-switch-only-{stream},
119                 l2switch-csit-1node-imds-switch-all-{stream},
120                 lispflowmapping-csit-1node-imds-all-only-{stream},
121                 lispflowmapping-csit-1node-imds-all-all-{stream},
122                 openflowplugin-csit-1node-imds-flow-services-only-{stream},
123                 openflowplugin-csit-1node-imds-flow-services-all-{stream},
124                 vtn-csit-1node-imds-manager-only-{stream},
125                 vtn-csit-1node-imds-manager-all-{stream}
126
127     jdk: 'openjdk7'
128
129     # Trigger jobs (upstream dependencies)
130     trigger-jobs: >
131         odlparent-distribution-{stream},
132         yangtools-distribution-{stream},
133         controller-distribution-{stream},
134         aaa-distribution-{stream},
135         integration-distribution-merge-{stream}
136
137 # Template: integration-verify-python
138 # Goal: Verify python scripts correct syntax
139 # Operation: This job template performs a python tox check on any integration/test patch
140
141 - job-template:
142     name: 'integration-verify-python'
143
144     project-type: freestyle
145     node: dynamic_verify
146     concurrent: true
147
148     logrotate:
149         daysToKeep: '{build-days-to-keep}'
150         numToKeep: '{build-num-to-keep}'
151         artifactDaysToKeep: '{build-artifact-days-to-keep}'
152         artifactNumToKeep: '{build-artifact-num-to-keep}'
153
154     parameters:
155         - project-parameter:
156             project: 'integration/test'
157         - integration-patch-refspec:
158             branch: '$GERRIT_REFSPEC'
159
160     scm:
161         - integration-gerrit-scm:
162             credentials-id: '{ssh-credentials}'
163             basedir: 'test'
164             refspec: '$PATCHREFSPEC'
165             branch: 'master'
166
167     wrappers:
168         - build-timeout
169         - ssh-agent-credentials:
170             users:
171                 - '{ssh-credentials}'
172
173     triggers:
174         - integration-trigger-patch-submitted:
175             name: 'integration/test'
176             branch: 'master'
177             pattern: '**'
178
179     builders:
180         - shell: |
181             virtualenv $WORKSPACE/venv-tox
182             source $WORKSPACE/venv-tox/bin/activate
183             pip install tox argparse
184             tox --version
185             cd $WORKSPACE/test
186             tox
187
188     publishers:
189         - email-notification:
190             email-prefix: '[integration]'
191
192 # Template: integration-csit-verify-1node-library
193 # Goal: Verify changes in csit folder not covered by projects suite verify jobs (e.g. libraries or variables)
194 # Operation: This job template performs a base openflow test when there is a change in the libraries folder
195
196 - job-template:
197     name: 'integration-csit-verify-1node-library'
198
199     project-type: freestyle
200     node: dynamic_robot
201
202     logrotate:
203         daysToKeep: '{build-days-to-keep}'
204         numToKeep: '{build-num-to-keep}'
205         artifactDaysToKeep: '{build-artifact-days-to-keep}'
206         artifactNumToKeep: '{build-artifact-num-to-keep}'
207
208     parameters:
209         - project-parameter:
210             project: 'integration/test'
211         - integration-branch:
212             branch: 'master'
213         - integration-bundleurl:
214             bundleurl: 'last'
215         - integration-controller-scope:
216             controller-scope: 'only'
217         - integration-controller-features:
218             controller-features: 'odl-openflowplugin-flow-services-ui,odl-bgpcep-pcep-all,odl-bgpcep-pcep,odl-netconf-connector-all'
219         - integration-test-options:
220             test-options: '-e adsal'
221         - integration-test-plan:
222             test-plan: 'test-libraries.txt'
223         - integration-patch-refspec:
224             branch: '$GERRIT_REFSPEC'
225
226     scm:
227         - integration-gerrit-scm:
228             credentials-id: '{ssh-credentials}'
229             basedir: 'test'
230             refspec: '$PATCHREFSPEC'
231             branch: 'master'
232
233     wrappers:
234         - build-timeout
235         - integration-jclouds-controller-mininet:
236             controller-vms: 1
237             mininet-image: '{mininet-image}'
238             mininet-vms: '{mininet-vms}'
239             mininet-cloud-name: '{mininet-cloud-name}'
240         - ssh-agent-credentials:
241             users:
242                 - '{ssh-credentials}'
243
244     triggers:
245         - integration-trigger-patch-submitted:
246             name: 'integration/test'
247             branch: 'master'
248             pattern: 'csit/libraries/*'
249
250     builders:
251         - integration-install-robotframework
252         - inject:
253             properties-file: 'env.properties'
254         - integration-get-slave-addresses
255         - inject:
256             properties-file: 'slave_addresses.txt'
257         - integration-get-bundle-vars
258         - inject:
259             properties-file: 'bundle_vars.txt'
260         - integration-deploy-controller-run-test
261         - integration-cleanup-tmp
262
263     publishers:
264         - integration-robot:
265             unstable-if: 0.0
266             pass-if: 0.0
267         - archive:
268             artifacts: 'karaf.log'
269         - email-notification:
270             email-prefix: '[integration]'
271
272 # Template: integration-distribution-offline-{stream}
273 # Goal: Verify distribution can start with no internet connection
274 # Operation: This job deployes the controller removing any external repository definition
275 # whenever there is a change in a kernel project (odlparent, controller, yangtools, etc...)
276
277 - job-template:
278     name: 'integration-distribution-offline-{stream}'
279
280     project-type: freestyle
281     node: dynamic_controller
282
283     logrotate:
284         daysToKeep: '{build-days-to-keep}'
285         numToKeep: '{build-num-to-keep}'
286         artifactDaysToKeep: '{build-artifact-days-to-keep}'
287         artifactNumToKeep: '{build-artifact-num-to-keep}'
288
289     parameters:
290         - project-parameter:
291             project: 'integration/distribution'
292         - integration-branch:
293             branch: '{branch}'
294         - integration-bundleurl:
295             bundleurl: 'last'
296
297     wrappers:
298         - build-timeout
299         - ssh-agent-credentials:
300             users:
301                 - '{ssh-credentials}'
302
303     triggers:
304         - reverse:
305             jobs: '{trigger-jobs}'
306             result: 'success'
307
308     builders:
309         - integration-get-bundle-vars
310         - inject:
311             properties-file: 'bundle_vars.txt'
312         - integration-deploy-controller-offline
313
314     publishers:
315         - archive:
316             artifacts: 'karaf.log'
317         - email-notification:
318             email-prefix: '[integration]'
319
320 # Template: integration-distribution-test-{stream}
321 # Goal: Verify a distribution through all system test available
322 # Operation: This daily job template takes a distribution and passes all available system test
323
324 - job-template:
325     name: 'integration-distribution-test-{stream}'
326
327     project-type: freestyle
328     node: dynamic_verify
329
330     logrotate:
331         daysToKeep: '{build-days-to-keep}'
332         numToKeep: '{build-num-to-keep}'
333         artifactDaysToKeep: '{build-artifact-days-to-keep}'
334         artifactNumToKeep: '{build-artifact-num-to-keep}'
335
336     parameters:
337         - integration-bundleurl:
338             bundleurl: 'last'
339
340     triggers:
341         - timed: 'H H * * 6'
342
343     builders:
344         - trigger-builds:
345             - project: '{csit-list}'
346               block: true
347               predefined-parameters:
348                   BUNDLEURL=$BUNDLEURL
349
350     publishers:
351         - email-notification:
352             email-prefix: '[integration]'
353
354 # Template: integration-patch-test-{stream}
355 # Goal: Build a patch and run all available system test on a distribution containing the change
356 # Operation: This job template builds a patch, creates a distribution containing the patch, and
357 # triggers the distribution test when test-integration is used in gerrit comments
358
359 - job-template:
360     name: 'integration-patch-test-{stream}'
361
362     project-type: maven
363     node: dynamic_verify
364     jdk: '{jdk}'
365
366     logrotate:
367         daysToKeep: '{build-days-to-keep}'
368         numToKeep: '{build-num-to-keep}'
369         artifactDaysToKeep: '{build-artifact-days-to-keep}'
370         artifactNumToKeep: '{build-artifact-num-to-keep}'
371
372     parameters:
373         - gerrit-project-parameter:
374             project: '$GERRIT_PROJECT'
375         - gerrit-refspec-parameter:
376             refspec: '$GERRIT_REFSPEC'
377         - project-parameter:
378             project: '$GERRIT_PROJECT'
379         - integration-distribution-git-url
380
381     scm:
382         - integration-gerrit-scm:
383             credentials-id: '{ssh-credentials}'
384             basedir: '$GERRIT_PROJECT'
385             refspec: '$GERRIT_REFSPEC'
386             branch: '{branch}'
387         - integration-distribution-scm:
388             credentials-id: '{ssh-credentials}'
389             branch: '{branch}'
390
391     wrappers:
392         - build-timeout
393         - ssh-agent-credentials:
394             users:
395                 - '{ssh-credentials}'
396
397     triggers:
398         - gerrit:
399             server-name: 'OpenDaylight'
400             trigger-on:
401                 - comment-added-contains-event:
402                     comment-contains-value: 'test-integration'
403             projects:
404               - project-compare-type: 'ANT'
405                 project-pattern: '**'
406                 branches:
407                   - branch-compare-type: 'ANT'
408                     branch-pattern: '**/{branch}'
409             skip-vote:
410                 successful: true
411                 failed: true
412                 unstable: true
413                 notbuilt: true
414
415     prebuilders:
416         - integration-get-bundle-url
417         - inject:
418             properties-file: 'bundle.txt'
419         - wipe-org-opendaylight-repo
420         - provide-maven-settings:
421             global-settings-file: '{odl-global-settings}'
422             settings-file: '{yangtools-settings}'
423         - maven-target:
424             maven-version: '{mvn33}'
425             pom: '$GERRIT_PROJECT/pom.xml'
426             goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r source:jar javadoc:jar'
427             java-opts:
428                 - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
429             settings: '{integration-settings}'
430             global-settings: '{odl-global-settings}'
431
432     maven:
433         maven-name: '{mvn33}'
434         root-pom: 'distribution/pom.xml'
435         goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r source:jar javadoc:jar'
436         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
437         settings: '{integration-settings}'
438         global-settings: '{odl-global-settings}'
439         ignore-upstream-changes: true
440         post-step-run-condition: 'SUCCESS'
441
442     postbuilders:
443         - trigger-builds:
444             - project: 'integration-distribution-test-{stream}'
445               block: true
446               predefined-parameters:
447                   BUNDLEURL=$BUNDLEURL
448
449     publishers:
450         - email-notification:
451             email-prefix: '[integration]'
452
453 # Template: integration-multipatch-test-{stream}
454 # Goal: Build one or more patches and run all available system test on a distribution containing the change
455 # Operation: This job template checks out and builds each patch provided in job parameters, creates a distribution
456 # containing these patches, and triggers the distribution test job which includes most (if not all) available
457 # CSIT jobs
458
459 - job-template:
460     name: 'integration-multipatch-test-{stream}'
461
462     project-type: maven
463     node: dynamic_verify
464     jdk: '{jdk}'
465
466     logrotate:
467         daysToKeep: '{build-days-to-keep}'
468         numToKeep: '{build-num-to-keep}'
469         artifactDaysToKeep: '{build-artifact-days-to-keep}'
470         artifactNumToKeep: '{build-artifact-num-to-keep}'
471
472     parameters:
473         - patches-to-build-parameter:
474             patches_to_build: '$PATCHES_TO_BUILD'
475
476     wrappers:
477         - build-timeout
478         - ssh-agent-credentials:
479             users:
480                 - '{ssh-credentials}'
481
482     prebuilders:
483         - wipe-org-opendaylight-repo
484         - integration-multipatch-builder
485         - inject:
486             properties-file: 'bundle.txt'
487
488     maven:
489         maven-name: '{mvn33}'
490         root-pom: 'patch_tester/pom.xml'
491         goals: 'clean install -f patch_tester/pom.xml -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
492         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
493         settings: '{integration-settings}'
494         global-settings: '{odl-global-settings}'
495         ignore-upstream-changes: true
496         post-step-run-condition: 'SUCCESS'
497
498     postbuilders:
499         - trigger-builds:
500             - project: 'integration-distribution-test-{stream}'
501               block: true
502               predefined-parameters:
503                   BUNDLEURL=$BUNDLEURL
504
505     publishers:
506         - email-notification:
507             email-prefix: '[integration]'