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