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