Step 1: Create git macro to download integration/distribution
[releng/builder.git] / jjb / integration / integration-test-jobs.yaml
1
2 - project:
3     name: integration-test-jobs
4     jobs:
5         - 'integration-csit-verify-1node-{stream}'
6         - 'integration-distribution-offline-{stream}'
7         - 'integration-distribution-test-{stream}'
8         - 'integration-patch-test-{stream}'
9
10     stream:
11         - beryllium:
12             branch: 'master'
13             csit-list: >
14                 aaa-csit-1node-authn-only-{stream},
15                 aaa-csit-1node-authn-all-{stream},
16                 bgpcep-csit-1node-userfeatures-only-{stream},
17                 bgpcep-csit-1node-userfeatures-all-{stream},
18                 capwap-csit-1node-ac-only-{stream},
19                 capwap-csit-1node-ac-all-{stream},
20                 controller-csit-1node-netconf-only-{stream},
21                 controller-csit-1node-netconf-all-{stream},
22                 controller-csit-3node-clustering-only-{stream},
23                 controller-csit-3node-clustering-all-{stream},
24                 integration-csit-3node-basic-only-{stream},
25                 integration-csit-3node-basic-all-{stream},
26                 integration-distribution-offline-{stream},
27                 l2switch-csit-1node-switch-only-{stream},
28                 l2switch-csit-1node-switch-all-{stream},
29                 l2switch-csit-1node-scalability-only-{stream},
30                 l2switch-csit-1node-scalability-all-{stream},
31                 lispflowmapping-csit-1node-all-only-{stream},
32                 lispflowmapping-csit-1node-all-all-{stream},
33                 nic-csit-1node-basic-all-{stream},
34                 nic-csit-1node-basic-only-{stream},
35                 openflowplugin-csit-1node-flow-services-only-{stream},
36                 openflowplugin-csit-1node-flow-services-all-{stream},
37                 openflowplugin-csit-1node-flow-services-more-only-{stream},
38                 openflowplugin-csit-1node-flow-services-more-all-{stream},
39                 openflowplugin-csit-1node-scalability-only-{stream},
40                 openflowplugin-csit-1node-scalability-all-{stream},
41                 openflowplugin-csit-1node-cbench-performance-only-{stream},
42                 openflowplugin-csit-1node-config-performance-only-{stream},
43                 ovsdb-csit-1node-netvirt-only-{stream},
44                 ovsdb-csit-1node-netvirt-all-{stream},
45                 ovsdb-csit-1node-southbound-only-{stream},
46                 ovsdb-csit-1node-southbound-all-{stream},
47                 snmp-csit-1node-basic-only-{stream},
48                 snmp-csit-1node-basic-all-{stream},
49                 tsdr-csit-1node-h2-datastore-only-{stream},
50                 tsdr-csit-1node-h2-datastore-all-{stream},
51                 tsdr-csit-1node-hbase-datastore-only-{stream},
52                 tsdr-csit-1node-hbase-datastore-all-{stream},
53                 usc-csit-1node-channel-only-{stream},
54                 usc-csit-1node-channel-all-{stream},
55                 vpnservice-csit-1node-vpnservice-only-{stream},
56                 vpnservice-csit-1node-vpnservice-all-{stream},
57                 vtn-csit-1node-manager-only-{stream},
58                 vtn-csit-1node-manager-all-{stream}
59
60         - stable-lithium:
61             branch: 'stable/lithium'
62             csit-list: >
63                 aaa-csit-1node-authn-only-{stream},
64                 aaa-csit-1node-authn-all-{stream},
65                 bgpcep-csit-1node-userfeatures-only-{stream},
66                 bgpcep-csit-1node-userfeatures-all-{stream},
67                 capwap-csit-1node-ac-only-{stream},
68                 capwap-csit-1node-ac-all-{stream},
69                 controller-csit-1node-netconf-only-{stream},
70                 controller-csit-1node-netconf-all-{stream},
71                 controller-csit-3node-clustering-only-{stream},
72                 controller-csit-3node-clustering-all-{stream},
73                 integration-csit-3node-basic-only-{stream},
74                 integration-csit-3node-basic-all-{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-all-only-{stream},
81                 lispflowmapping-csit-1node-all-all-{stream},
82                 nic-csit-1node-basic-all-{stream},
83                 nic-csit-1node-basic-only-{stream},
84                 openflowplugin-csit-1node-flow-services-only-{stream},
85                 openflowplugin-csit-1node-flow-services-all-{stream},
86                 openflowplugin-csit-1node-flow-services-more-only-{stream},
87                 openflowplugin-csit-1node-flow-services-more-all-{stream},
88                 openflowplugin-csit-1node-scalability-only-{stream},
89                 openflowplugin-csit-1node-scalability-all-{stream},
90                 openflowplugin-csit-1node-cbench-performance-only-{stream},
91                 openflowplugin-csit-1node-config-performance-only-{stream},
92                 ovsdb-csit-1node-netvirt-only-{stream},
93                 ovsdb-csit-1node-netvirt-all-{stream},
94                 ovsdb-csit-1node-southbound-only-{stream},
95                 ovsdb-csit-1node-southbound-all-{stream},
96                 snmp-csit-1node-basic-only-{stream},
97                 snmp-csit-1node-basic-all-{stream},
98                 usc-csit-1node-channel-only-{stream},
99                 usc-csit-1node-channel-all-{stream},
100                 vpnservice-csit-1node-vpnservice-only-{stream},
101                 vpnservice-csit-1node-vpnservice-all-{stream},
102                 vtn-csit-1node-manager-only-{stream},
103                 vtn-csit-1node-manager-all-{stream}
104
105         - stable-helium:
106             branch: 'stable/helium'
107             csit-list: >
108                 aaa-csit-1node-imds-authn-only-{stream},
109                 aaa-csit-1node-imds-authn-all-{stream},
110                 controller-csit-1node-imds-netconf-only-{stream},
111                 controller-csit-1node-imds-netconf-all-{stream},
112                 controller-csit-1node-imds-nsf-only-{stream},
113                 controller-csit-1node-imds-nsf-all-{stream},
114                 integration-csit-3node-basic-only-{stream},
115                 integration-csit-3node-basic-all-{stream},
116                 l2switch-csit-1node-imds-switch-only-{stream},
117                 l2switch-csit-1node-imds-switch-all-{stream},
118                 lispflowmapping-csit-1node-imds-all-only-{stream},
119                 lispflowmapping-csit-1node-imds-all-all-{stream},
120                 openflowplugin-csit-1node-imds-flow-services-only-{stream},
121                 openflowplugin-csit-1node-imds-flow-services-all-{stream},
122                 vtn-csit-1node-imds-manager-only-{stream},
123                 vtn-csit-1node-imds-manager-all-{stream}
124
125     jdk: 'openjdk7'
126
127     # Trigger jobs (upstream dependencies)
128     trigger-jobs: >
129         odlparent-distribution-{stream},
130         yangtools-distribution-{stream},
131         controller-distribution-{stream},
132         aaa-distribution-{stream},
133         integration-distribution-merge-{stream}
134
135 # Template: integration-csit-verify-1node-{stream}
136 # Goal: Verify changes in csit folder not covered by projects suite verify jobs (e.g. library or variables)
137 # Operation: This job template performs a base openflow test every time there is a change in the csit folder.
138
139 - job-template:
140     name: 'integration-csit-verify-1node-{stream}'
141
142     project-type: freestyle
143     node: dynamic_robot
144
145     logrotate:
146         daysToKeep: '{build-days-to-keep}'
147         numToKeep: '{build-num-to-keep}'
148         artifactDaysToKeep: '{build-artifact-days-to-keep}'
149         artifactNumToKeep: '{build-artifact-num-to-keep}'
150
151     parameters:
152         - project-parameter:
153             project: 'integration'
154         - integration-branch:
155             branch: '{branch}'
156         - integration-bundleurl:
157             bundleurl: 'last'
158         - integration-controller-scope:
159             controller-scope: 'only'
160         - integration-controller-features:
161             controller-features: 'odl-openflowplugin-flow-services-ui'
162         - integration-test-options:
163             test-options: '-e adsal'
164         - integration-test-plan:
165             test-plan: 'openflowplugin-flow-services.txt'
166
167     scm:
168         - gerrit-trigger-scm:
169             credentials-id: '{ssh-credentials}'
170             refspec: '$GERRIT_REFSPEC'
171             choosing-strategy: 'gerrit'
172
173     wrappers:
174         - build-timeout
175         - integration-jclouds-controller-mininet:
176             controller-vms: 1
177             mininet-image: '{mininet-image}'
178             mininet-vms: '{mininet-vms}'
179         - ssh-agent-credentials:
180             users:
181                 - '{ssh-credentials}'
182
183     triggers:
184         - integration-csit-gerrit-trigger-patch-submitted:
185             name: 'integration'
186             branch: '{branch}'
187
188     builders:
189         - integration-get-slave-addresses
190         - inject:
191             properties-file: 'slave_addresses.txt'
192         - integration-deploy-controller-run-test
193
194     publishers:
195         - integration-robot:
196             unstable-if: 0.0
197             pass-if: 0.0
198         - archive:
199             artifacts: 'karaf.log'
200         - email-notification:
201             email-prefix: '[integration]'
202
203 # Template: integration-distribution-offline-{stream}
204 # Goal: Verify distribution can start with no internet connection
205 # Operation: This daily job template deployes the controller removing any external repository definition
206
207 - job-template:
208     name: 'integration-distribution-offline-{stream}'
209
210     project-type: freestyle
211     node: dynamic_controller
212
213     logrotate:
214         daysToKeep: '{build-days-to-keep}'
215         numToKeep: '{build-num-to-keep}'
216         artifactDaysToKeep: '{build-artifact-days-to-keep}'
217         artifactNumToKeep: '{build-artifact-num-to-keep}'
218
219     parameters:
220         - project-parameter:
221             project: 'integration'
222         - integration-branch:
223             branch: '{branch}'
224         - integration-bundleurl:
225             bundleurl: 'last'
226
227     scm:
228         - git-scm:
229             credentials-id: '{ssh-credentials}'
230             refspec: ''
231             branch: '{branch}'
232
233     wrappers:
234         - build-timeout
235         - ssh-agent-credentials:
236             users:
237                 - '{ssh-credentials}'
238
239     triggers:
240         - reverse:
241             jobs: '{trigger-jobs}'
242             result: 'success'
243
244     builders:
245         - integration-deploy-controller-offline
246
247     publishers:
248         - archive:
249             artifacts: 'karaf.log'
250         - email-notification:
251             email-prefix: '[integration]'
252
253 # Template: integration-distribution-test-{stream}
254 # Goal: Verify a distribution through all system test available
255 # Operation: This daily job template takes a distribution and passes all available system test
256
257 - job-template:
258     name: 'integration-distribution-test-{stream}'
259
260     project-type: freestyle
261     node: dynamic_verify
262
263     logrotate:
264         daysToKeep: '{build-days-to-keep}'
265         numToKeep: '{build-num-to-keep}'
266         artifactDaysToKeep: '{build-artifact-days-to-keep}'
267         artifactNumToKeep: '{build-artifact-num-to-keep}'
268
269     parameters:
270         - integration-bundleurl:
271             bundleurl: 'last'
272
273     triggers:
274         - timed: 'H H * * *'
275
276     builders:
277         - trigger-builds:
278             - project: '{csit-list}'
279               block: true
280               predefined-parameters:
281                   BUNDLEURL=$BUNDLEURL
282
283     publishers:
284         - email-notification:
285             email-prefix: '[integration]'
286
287 # Template: integration-patch-test-{stream}
288 # Goal: Build a patch and run all available system test on a distribution containing the change
289 # Operation: This job teamplate builds a patch, creates a distribution containing the patch, and
290 # triggers the distribution test when test-integration is used in gerrit comments
291
292 - job-template:
293     name: 'integration-patch-test-{stream}'
294
295     project-type: maven
296     node: dynamic_verify
297     jdk: '{jdk}'
298
299     logrotate:
300         daysToKeep: '{build-days-to-keep}'
301         numToKeep: '{build-num-to-keep}'
302         artifactDaysToKeep: '{build-artifact-days-to-keep}'
303         artifactNumToKeep: '{build-artifact-num-to-keep}'
304
305     parameters:
306         - project-parameter:
307             project: '$GERRIT_PROJECT'
308         - integration-distribution-git-url
309
310     scm:
311         - integration-gerrit-scm:
312             credentials-id: '{ssh-credentials}'
313             branch: '{branch}'
314         - integration-distribution-scm:
315             credentials-id: '{ssh-credentials}'
316             branch: '{branch}'
317
318     wrappers:
319         - build-timeout
320         - ssh-agent-credentials:
321             users:
322                 - '{ssh-credentials}'
323
324     triggers:
325         - gerrit:
326             server-name: 'OpenDaylight'
327             trigger-on:
328                 - comment-added-contains-event:
329                     comment-contains-value: 'test-integration'
330             projects:
331               - project-compare-type: 'ANT'
332                 project-pattern: '**'
333                 branches:
334                   - branch-compare-type: 'ANT'
335                     branch-pattern: '**/{branch}'
336             skip-vote:
337                 successful: true
338                 failed: true
339                 unstable: true
340                 notbuilt: true
341
342     prebuilders:
343         - integration-get-bundle-url
344         - inject:
345             properties-file: 'bundle.txt'
346         - wipe-org-opendaylight-repo
347         - maven-target:
348             maven-version: '{mvn33}'
349             pom: '$GERRIT_PROJECT/pom.xml'
350             goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r source:jar javadoc:jar'
351             java-opts:
352                 - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
353             settings: '{integration-settings}'
354             global-settings: '{odl-global-settings}'
355
356     maven:
357         maven-name: '{mvn33}'
358         root-pom: 'distribution/pom.xml'
359         goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r source:jar javadoc:jar'
360         maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
361         settings: '{integration-settings}'
362         global-settings: '{odl-global-settings}'
363         ignore-upstream-changes: true
364         post-step-run-condition: 'SUCCESS'
365
366     postbuilders:
367         - trigger-builds:
368             - project: 'integration-distribution-test-{stream}'
369               block: true
370               predefined-parameters:
371                   BUNDLEURL=$BUNDLEURL
372
373     publishers:
374         - email-notification:
375             email-prefix: '[integration]'