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