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