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