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