Configuration for Testing Live Migration
[releng/builder.git] / jjb / integration / integration-test-jobs.yaml
1 ---
2 - project:
3     name: integration-test
4     project: integration/test
5     project-name: integration-test
6     jobs:
7       - 'integration-patch-test-{stream}'
8       - 'integration-multipatch-test-{stream}'
9       - '{project-name}-rtd-jobs':
10           build-node: centos7-builder-2c-2g
11           project-pattern: integration/test
12           rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-integrationtest/32934/
13           rtd-token: 70766f97941a74ef80b84749ac4799e5ddeee99a
14       - gerrit-tox-verify:
15           branch: master
16           stream: master
17
18     # CSIT Lists in releng-defaults.yaml
19     stream:
20       - fluorine:
21           branch: 'master'
22           mvn-version: 'mvn35'
23           csit-list: !include: csit-jobs-fluorine.lst
24           build-order: >
25               infrautils mdsal controller aaa netconf daexim bgpcep ovsdb neutron
26               lispflowmapping openflowplugin coe genius sfc netvirt
27
28       - oxygen:
29           branch: 'stable/oxygen'
30           mvn-version: 'mvn35'
31           csit-list: !include: csit-jobs-oxygen.lst
32           build-order: >
33               infrautils mdsal controller aaa netconf daexim bgpcep ovsdb neutron
34               lispflowmapping openflowplugin coe genius sfc netvirt
35
36       - nitrogen:
37           branch: 'stable/nitrogen'
38           mvn-version: 'mvn35'
39           csit-list: !include: csit-jobs-nitrogen.lst
40           build-order: >
41               infrautils mdsal controller aaa netconf daexim bgpcep ovsdb neutron
42               lispflowmapping openflowplugin coe genius sfc netvirt
43
44 - project:
45     name: integration-distribution
46     project: integration/test
47     project-name: integration-test
48     jobs:
49       - 'integration-distribution-test-{stream}'
50       - 'integration-distribution-weekly-test-trigger-{stream}'
51       - 'integration-distribution-high-frequency-test-trigger-{stream}'
52       - 'integration-update-csit-tests-{stream}'
53
54     # CSIT Lists in releng-defaults.yaml
55     stream:
56       - fluorine:
57           branch: 'master'
58           csit-blacklist: >
59               alto bier capwap centinel coe didm dluxapps groupbasedpolicy iotdm jsonrpc lacp
60               l2switch messaging4transport nemo netide nic ocpplugin of-config p4plugin packetcable
61               sdninterfaceapp sxp tsdr unimgr usc usecplugin vtn gate longevity sanity tdd wip
62           csit-list: !include: csit-jobs-fluorine.lst
63           csit-weekly-list: '{csit-weekly-list-fluorine}'
64           csit-high-frequency-list: '{csit-high-frequency-list-fluorine}'
65       - oxygen:
66           branch: 'stable/oxygen'
67           csit-blacklist: >
68               capwap centinel coe didm iotdm jsonrpc lacp messaging4transport netide nic
69               ocpplugin sdninterfaceapp unimgr usecplugin gate longevity sanity tdd wip
70           csit-list: !include: csit-jobs-oxygen.lst
71           csit-weekly-list: '{csit-weekly-list-oxygen}'
72           csit-high-frequency-list: '{csit-high-frequency-list-oxygen}'
73
74       - nitrogen:
75           branch: 'stable/nitrogen'
76           csit-blacklist: capwap centinel coe didm iotdm jsonrpc lacp netide tsdr gate longevity sanity tdd wip
77           csit-list: !include: csit-jobs-nitrogen.lst
78           csit-weekly-list: '{csit-weekly-list-nitrogen}'
79           csit-high-frequency-list: '{csit-high-frequency-list-nitrogen}'
80
81 - project:
82     name: integration-sanity
83     project: integration/test
84     project-name: integration-test
85     jobs:
86       - 'integration-sanity-test-{stream}'
87
88     stream:
89       - fluorine:
90           branch: 'master'
91           karaf-version: odl
92           csit-sanity-list: '{csit-sanity-list-fluorine}'
93       - oxygen:
94           branch: 'stable/oxygen'
95           karaf-version: karaf4
96           csit-sanity-list: '{csit-sanity-list-oxygen}'
97       - nitrogen:
98           branch: 'stable/nitrogen'
99           karaf-version: karaf4
100           csit-sanity-list: '{csit-sanity-list-nitrogen}'
101
102 - job-template:
103     name: 'integration-distribution-test-{stream}'
104     # Goal: Verify a distribution through all system test available
105     # Operation: This template takes a distribution and passes all available system test
106
107     project-type: freestyle
108     node: queue-disttest-2c-1g
109
110     properties:
111       - opendaylight-infra-properties:
112           build-days-to-keep: '{build-days-to-keep}'
113
114     parameters:
115       - integration-bundle-url:
116           bundle-url: '{bundle-url}'
117       - distribution-karaf-version:
118           karaf-version: '{karaf-version}'
119
120     builders:
121       - trigger-builds:
122           - project: '{csit-list}'
123             block: true
124             predefined-parameters: |
125               BUNDLE_URL=$BUNDLE_URL
126               KARAF_VERSION=$KARAF_VERSION
127
128     publishers:
129       - opendaylight-infra-generate-csit-status-report
130       - email-notification:
131           email-recipients: '{email-recipients}'
132           email-prefix: '[integration]'
133       - lf-infra-publish
134
135 - job-template:
136     name: 'integration-sanity-test-{stream}'
137     # Goal: Verify a distribution through sanity test
138     # Operation: This template takes a distribution and passes sanity test
139     # This jobs works for both managed & unmanaged distro.
140
141     project-type: freestyle
142     node: queue-intque-2c-1g
143
144     properties:
145       - opendaylight-infra-properties:
146           build-days-to-keep: '{build-days-to-keep}'
147
148     parameters:
149       - integration-bundle-url:
150           bundle-url: '{bundle-url}'
151       - distribution-karaf-version:
152           karaf-version: '{karaf-version}'
153
154     triggers:
155       - timed: '{schedule-daily}'
156
157     builders:
158       - trigger-builds:
159           - project: '{csit-sanity-list}'
160             block: true
161             predefined-parameters: |
162               BUNDLE_URL=$BUNDLE_URL
163               KARAF_VERSION=$KARAF_VERSION
164
165     publishers:
166       - email-notification:
167           email-recipients: '{email-recipients}'
168           email-prefix: '[integration]'
169
170 - job-template:
171     name: 'integration-patch-test-{stream}'
172     # Template: integration-patch-test-{stream}
173     # Goal: Build a patch and run all available system test on a distribution containing the change
174     # Operation: This job template builds a patch, creates a distribution containing the patch, and
175     # triggers the distribution test when test-integration is used in gerrit comments
176
177     project-type: freestyle
178     node: centos7-builder-2c-8g
179
180     properties:
181       - opendaylight-infra-properties:
182           build-days-to-keep: '{build-days-to-keep}'
183
184     parameters:
185       - opendaylight-infra-parameters:
186           os-cloud: '{os-cloud}'
187           project: '$GERRIT_PROJECT'
188           branch: '{branch}'
189           refspec: '$GERRIT_REFSPEC'
190           artifacts: '{archive-artifacts}'
191       - integration-distribution-branch:
192           branch: '{branch}'
193       - distribution-karaf-version:
194           karaf-version: '{karaf-version}'
195       - integration-distribution-git-url:
196           git-url: '{git-url}'
197       - maven-exec:
198           maven-version: mvn35
199
200     scm:
201       - integration-gerrit-scm:
202           basedir: '$GERRIT_PROJECT'
203           refspec: '$GERRIT_REFSPEC'
204           branch: '{branch}'
205       - integration-distribution-scm:
206           branch: '{branch}'
207
208     wrappers:
209       - opendaylight-infra-wrappers:
210           build-timeout: '720'
211
212     triggers:
213       - gerrit:
214           server-name: '{gerrit-server-name}'
215           trigger-on:
216             - comment-added-contains-event:
217                 comment-contains-value: 'test-integration'
218           projects:
219             - project-compare-type: 'ANT'
220               project-pattern: '**'
221               branches:
222                 - branch-compare-type: 'ANT'
223                   branch-pattern: '**/{branch}'
224           skip-vote:
225             successful: true
226             failed: true
227             unstable: true
228             notbuilt: true
229
230     builders:
231       - integration-rebase-gerrit-patch
232       - wipe-org-opendaylight-repo
233       - provide-maven-settings:
234           global-settings-file: 'global-settings'
235           settings-file: 'integration-settings'
236       - maven-target:
237           maven-version: 'mvn35'
238           pom: '$GERRIT_PROJECT/pom.xml'
239           goals: |
240               clean install dependency:tree -DoutputFile=dependency_tree.txt
241               -Pq
242               -Dstream={stream}
243               {opendaylight-infra-mvn-opts}
244           # {opendaylight-infra-parallel-mvn-opts} is bad when there are multiple big features in SFT.
245           java-opts:
246             - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
247           settings: integration-settings
248           settings-type: cfp
249           global-settings: global-settings
250           global-settings-type: cfp
251       - maven-target:
252           maven-version: mvn35
253           pom: distribution/pom.xml
254           goals: |
255               clean install dependency:tree -DoutputFile=dependency_tree.txt
256               {opendaylight-infra-mvn-opts}
257           # {opendaylight-infra-parallel-mvn-opts} is bad when there are multiple big features in SFT.
258           java-opts:
259             - '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
260           settings: integration-settings
261           settings-type: cfp
262           global-settings: global-settings
263           global-settings-type: cfp
264       - integration-upload-distribution:
265           dist-pom: distribution/pom.xml
266       - trigger-builds:
267           - project: '{csit-list}'
268             block: true
269             predefined-parameters: |
270               BUNDLE_URL=$BUNDLE_URL
271               KARAF_VERSION=$KARAF_VERSION
272
273     publishers:
274       - lf-infra-publish
275       - email-notification:
276           email-recipients: '{email-recipients}'
277           email-prefix: '[$GERRIT_PROJECT]'
278
279
280 - job-template:
281     name: 'integration-multipatch-test-{stream}'
282     # Goal: Build one or more patches and run all available system test on a distribution containing the change.
283     # Operation: This job template checks out and builds in order each patch provided in job parameters, finally
284     # it creates a distribution containing all patches and triggers the distribution test job which includes most
285     # (if not all) available CSIT jobs.
286
287     project-type: freestyle
288     node: centos7-builder-8c-8g
289     concurrent: true
290     jdk: '{java-version}'
291
292     properties:
293       - opendaylight-infra-properties:
294           build-days-to-keep: '{build-days-to-keep}'
295
296     parameters:
297       - patches-to-build-parameter:
298           patches_to_build: '$PATCHES_TO_BUILD'
299       - build-order-parameter:
300           build-order: '{build-order}'
301       - build-fast-parameter:
302           build-fast: 'false'
303       - run-test-parameter:
304           run-test: 'false'
305       - integration-distribution-branch:
306           branch: '{branch}'
307       - integration-distribution-stream:
308           stream: '{stream}'
309       - distribution-karaf-version:
310           karaf-version: '{karaf-version}'
311       - opendaylight-infra-parameters:
312           os-cloud: '{os-cloud}'
313           project: 'integration/distribution'
314           branch: '{branch}'
315           refspec: 'refs/heads/{branch}'
316           artifacts: '{archive-artifacts}'
317       - lf-infra-maven-parameters:
318           mvn-opts: ''
319           mvn-params: ''
320           mvn-version: mvn35
321           staging-profile-id: ''  # Staging repos do not make sense for this job
322
323     wrappers:
324       - opendaylight-infra-wrappers:
325           build-timeout: '1200'
326
327     triggers:
328       - gerrit:
329           server-name: '{gerrit-server-name}'
330           trigger-on:
331             - comment-added-contains-event:
332                 comment-contains-value: 'multipatch-build'
333           projects:
334             - project-compare-type: ANT
335               project-pattern: '**'
336               branches:
337                 - branch-compare-type: ANT
338                   branch-pattern: '**/{branch}'
339
340     builders:
341       - wipe-org-opendaylight-repo
342       - lf-maven-install:
343           mvn-version: '{mvn-version}'
344       - provide-maven-settings:
345           global-settings-file: 'global-settings'
346           settings-file: 'integration-distribution-settings'
347       - integration-multipatch-builder
348       - integration-upload-distribution:
349           dist-pom: patch_tester/distribution/pom.xml
350       - conditional-step:
351           condition-kind: boolean-expression
352           condition-expression: $RUN_TEST
353           steps:
354             - trigger-builds:
355                 - project: '{csit-list}'
356                   block: true
357                   predefined-parameters: |
358                     BUNDLE_URL=$BUNDLE_URL
359                     KARAF_VERSION=$KARAF_VERSION
360
361     publishers:
362       - lf-infra-publish
363       - email-notification:
364           email-recipients: '{email-recipients}'
365           email-prefix: '[int/dist]'
366
367 - job-template:
368     name: 'integration-distribution-weekly-test-trigger-{stream}'
369
370     project-type: freestyle
371     node: queue-intque-2c-1g
372
373     properties:
374       - opendaylight-infra-properties:
375           build-days-to-keep: '{build-days-to-keep}'
376
377     parameters:
378       - integration-bundle-url:
379           bundle-url: '{bundle-url}'
380       - distribution-karaf-version:
381           karaf-version: '{karaf-version}'
382
383     triggers:
384       - timed: '{schedule-weekly}'
385
386     builders:
387       - trigger-builds:
388           - project: '{csit-weekly-list}'
389             block: true
390             predefined-parameters: |
391               BUNDLE_URL=$BUNDLE_URL
392               KARAF_VERSION=$KARAF_VERSION
393
394     publishers:
395       - email-notification:
396           email-recipients: '{email-recipients}'
397           email-prefix: '[integration]'
398
399 - job-template:
400     name: 'integration-distribution-high-frequency-test-trigger-{stream}'
401
402     project-type: freestyle
403     node: queue-intque-2c-1g
404
405     properties:
406       - opendaylight-infra-properties:
407           build-days-to-keep: '{build-days-to-keep}'
408
409     parameters:
410       - integration-bundle-url:
411           bundle-url: '{bundle-url}'
412       - distribution-karaf-version:
413           karaf-version: '{karaf-version}'
414
415     triggers:
416       - timed: '{schedule-high-frequency}'
417
418     builders:
419       - trigger-builds:
420           - project: '{csit-high-frequency-list}'
421             block: true
422             predefined-parameters: |
423               BUNDLE_URL=$BUNDLE_URL
424               KARAF_VERSION=$KARAF_VERSION
425
426     publishers:
427       - email-notification:
428           email-recipients: '{email-recipients}'
429           email-prefix: '[integration]'
430
431 - job-template:
432     name: 'integration-update-csit-tests-{stream}'
433
434     # This job's purpose is to update csit
435     # tests to run in integration-distribution-test-{stream}
436     # by updating integration files: csit-list-{stream}.inc
437     # These files can be used as !include in int-dist-test-{stream}
438
439     ######################
440     # Default parameters #
441     ######################
442
443     git-url: '$GIT_URL/$PROJECT'
444     submodule-recursive: true
445
446     #####################
447     # Job Configuration #
448     #####################
449
450     project-type: freestyle
451     node: centos7-builder-2c-8g
452
453     properties:
454       - lf-infra-properties:
455           build-days-to-keep: 7
456
457     parameters:
458       - lf-infra-parameters:
459           project: releng/builder  # Hardcode as this job needs to pull releng/builder
460           stream: '{stream}'
461           branch: master  # Hardcode as releng/builder only has master
462           lftools-version: '{lftools-version}'
463       - string:
464           name: CSIT_BLACKLIST
465           default: '{csit-blacklist}'
466           description: Space separated list of jobs strings to blacklist.
467
468     scm:
469       - lf-infra-gerrit-scm:
470           jenkins-ssh-credential: '{jenkins-ssh-credential}'
471           git-url: '{git-url}'
472           refspec: '$GERRIT_REFSPEC'
473           branch: '$GERRIT_BRANCH'
474           submodule-recursive: '{submodule-recursive}'
475           choosing-strategy: default
476
477     wrappers:
478       - lf-infra-wrappers:
479           build-timeout: 10
480           jenkins-ssh-credential: '{jenkins-ssh-credential}'
481
482     triggers:
483       - reverse:
484           jobs: builder-jjb-merge
485
486     builders:
487       - shell: !include-raw-escape: update-csit-tests.sh
488       - shell: |
489           git status
490           git add jjb/integration/*.lst
491       - lf-infra-push-gerrit-patch:
492           project: 'releng/builder'
493           gerrit-user: 'jenkins-$SILO'
494           gerrit-host: 'git.opendaylight.org'
495           gerrit-topic: 'auto-update-csit-jobs-{stream}'
496           gerrit-commit-message: 'Auto Update CSIT Jobs to run for {stream}'
497           reviewers-email: 'integration-dev@lists.opendaylight.org'
498
499     publishers:
500       - lf-infra-publish