Merge "NETVIRT-1599: Add support for group-add-mod-enabled parm"
[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       - 'inttest-multipatch'
9       - 'integration-merge-dashboard'
10       - '{project-name}-rtd-jobs':
11           build-node: centos7-builder-2c-2g
12           project-pattern: integration/test
13           rtd-build-url: https://readthedocs.org/api/v2/webhook/odl-integrationtest/32934/
14           rtd-token: 70766f97941a74ef80b84749ac4799e5ddeee99a
15       - gerrit-tox-verify:
16           branch: master
17           stream: master
18
19     # CSIT Lists in defaults.yaml
20     stream:
21       - aluminium:
22           branch: 'master'
23           mvn-version: 'mvn35'
24           java-version: 'openjdk11'
25           csit-list: !include: csit-jobs-aluminium.lst
26           build-order: >
27               odlparent yangtools mdsal controller infrautils serviceutils aaa netconf
28               daexim jsonrpc ovsdb neutron openflowplugin genius lispflowmapping netvirt
29               bgpcep integration/distribution
30
31       - magnesium:
32           branch: 'stable/magnesium'
33           mvn-version: 'mvn35'
34           java-version: 'openjdk11'
35           csit-list: !include: csit-jobs-magnesium.lst
36           build-order: >
37               odlparent yangtools mdsal infrautils controller serviceutils aaa netconf
38               daexim jsonrpc ovsdb neutron openflowplugin genius lispflowmapping netvirt
39               bgpcep integration/distribution
40
41       - sodium:
42           branch: 'stable/sodium'
43           mvn-version: 'mvn35'
44           csit-list: !include: csit-jobs-sodium.lst
45           build-order: >
46               odlparent yangtools mdsal infrautils controller serviceutils aaa netconf
47               daexim ovsdb neutron openflowplugin coe genius lispflowmapping sfc netvirt
48               bgpcep integration/distribution
49
50 - project:
51     name: integration-distribution
52     project: integration/test
53     project-name: integration-test
54     jobs:
55       - 'integration-distribution-test-{stream}'
56       - 'integration-distribution-mri-test-{stream}'
57       - 'integration-distribution-weekly-test-trigger-{stream}'
58       - 'integration-update-csit-tests-{stream}'
59
60     # CSIT Lists in defaults.yaml
61     stream:
62       - aluminium:
63           branch: 'master'
64           csit-blacklist: >
65               alto bier coe detnet dluxapps groupbasedpolicy l2switch mdsal nemo
66               p4plugin packetcable sfc sxp telemetry tsdr unimgr usc yangtools
67               gate longevity sanity tdd tempest wip
68               bgpcep-csit-3node-bgpclustering-all
69               bgpcep-csit-3node-bgpclustering-ha-only
70               netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-pike
71               netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-itm-direct
72               netvirt-csit-3node-1cmb
73               openflowplugin-csit-1node-bundle-based-reconciliation
74               last-line-is-ignored-so-we-need-something-dummy-here-to-make-sure-the-real-last-line-is-used
75           csit-list: !include: csit-jobs-aluminium.lst
76           csit-mri-list: '{csit-mri-list-aluminium}'
77           csit-weekly-list: '{csit-weekly-list-aluminium}'
78       - magnesium:
79           branch: 'stable/magnesium'
80           csit-blacklist: >
81               alto bier coe detnet dluxapps groupbasedpolicy l2switch mdsal nemo
82               p4plugin packetcable sfc sxp telemetry tsdr unimgr usc yangtools
83               gate longevity sanity tdd tempest wip
84               bgpcep-csit-3node-bgpclustering-all
85               bgpcep-csit-3node-bgpclustering-ha-only
86               netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-pike
87               netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-itm-direct
88               netvirt-csit-3node-1cmb
89               openflowplugin-csit-1node-bundle-based-reconciliation
90               last-line-is-ignored-so-we-need-something-dummy-here-to-make-sure-the-real-last-line-is-used
91           csit-list: !include: csit-jobs-magnesium.lst
92           csit-mri-list: '{csit-mri-list-magnesium}'
93           csit-weekly-list: '{csit-weekly-list-magnesium}'
94       - sodium:
95           branch: 'stable/sodium'
96           csit-blacklist: >
97               alto bier dluxapps groupbasedpolicy jsonrpc l2switch mdsal nemo
98               p4plugin packetcable sxp telemetry tsdr unimgr usc yangtools
99               gate longevity sanity tdd tempest wip
100               bgpcep-csit-3node-bgpclustering-all
101               bgpcep-csit-3node-bgpclustering-ha-only
102               netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-pike
103               netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-itm-direct
104               netvirt-csit-3node-1cmb
105               openflowplugin-csit-1node-bundle-based-reconciliation
106               last-line-is-ignored-so-we-need-something-dummy-here-to-make-sure-the-real-last-line-is-used
107           csit-list: !include: csit-jobs-sodium.lst
108           csit-mri-list: '{csit-mri-list-sodium}'
109           csit-weekly-list: '{csit-weekly-list-sodium}'
110
111 - project:
112     name: integration-sanity
113     project: integration/test
114     project-name: integration-test
115     jobs:
116       - 'integration-sanity-test-{stream}'
117
118     stream:
119       - aluminium:
120           branch: 'master'
121           karaf-version: odl
122           csit-sanity-list: '{csit-sanity-list-aluminium}'
123       - magnesium:
124           branch: 'stable/magnesium'
125           karaf-version: odl
126           csit-sanity-list: '{csit-sanity-list-magnesium}'
127       - sodium:
128           branch: 'stable/sodium'
129           karaf-version: odl
130           csit-sanity-list: '{csit-sanity-list-sodium}'
131
132 - job-template:
133     name: 'integration-merge-dashboard'
134     project-type: freestyle
135     node: centos7-builder-2c-1g
136
137     properties:
138       - opendaylight-infra-properties:
139           build-days-to-keep: '{build-days-to-keep}'
140
141     parameters:
142       - opendaylight-infra-parameters:
143           os-cloud: '{os-cloud}'
144           project: '{project}'
145           branch: 'master'
146           refspec: 'refs/heads/master'
147           artifacts: '{archive-artifacts}'
148
149     scm:
150       - integration-gerrit-scm:
151           basedir: 'test'
152           refspec: '$GERRIT_REFSPEC'
153           branch: 'master'
154
155     wrappers:
156       - opendaylight-infra-wrappers:
157           build-timeout: '{build-timeout}'
158
159     triggers:
160       - gerrit-trigger-patch-merged:
161           gerrit-server-name: '{gerrit-server-name}'
162           name: '{project}'
163           branch: 'master'
164           files: 'dashboard/**'
165           forbidden-files: ''
166
167     builders:
168       - lf-infra-pre-build
169       - config-file-provider:
170           files:
171             - file-id: odl-elastic-cloud
172               target: '$HOME/.netrc'
173       - integration-install-robotframework
174       # yamllint disable-line rule:line-length
175       - shell: python3 $WORKSPACE/test/csit/scripts/push_dashboard.py a4ff38b99ef2c7626450543021b4c134.us-east-1.aws.found.io:9243
176
177     publishers:
178       - lf-infra-publish
179       - email-notification:
180           email-recipients: '{email-recipients}'
181           email-prefix: '[{project-name}]'
182
183 - job-template:
184     name: 'integration-distribution-test-{stream}'
185     # Goal: Verify a distribution through all system test available
186     # Operation: This template takes a distribution and passes all available system test
187
188     project-type: freestyle
189     node: queue-disttest-2c-1g
190
191     properties:
192       - opendaylight-infra-properties:
193           build-days-to-keep: '{build-days-to-keep}'
194
195     parameters:
196       - integration-bundle-url:
197           bundle-url: '{bundle-url}'
198       - distribution-karaf-version:
199           karaf-version: '{karaf-version}'
200
201     builders:
202       - lf-infra-pre-build
203       - trigger-builds:
204           - project: '{csit-list}'
205             block: true
206             predefined-parameters: |
207               BUNDLE_URL=$BUNDLE_URL
208               KARAF_VERSION=$KARAF_VERSION
209
210     wrappers:
211       - lf-infra-wrappers:
212           build-timeout: 1440
213           jenkins-ssh-credential: '{jenkins-ssh-credential}'
214
215     publishers:
216       - opendaylight-infra-generate-csit-status-report
217       - email-notification:
218           email-recipients: '{email-recipients}'
219           email-prefix: '[integration]'
220       - lf-infra-publish
221
222 - job-template:
223     name: 'integration-sanity-test-{stream}'
224     # Goal: Verify a distribution through sanity test
225     # Operation: This template takes a distribution and passes sanity test
226     # This jobs works for both managed & unmanaged distro.
227
228     project-type: freestyle
229     node: queue-intque-2c-1g
230
231     properties:
232       - opendaylight-infra-properties:
233           build-days-to-keep: '{build-days-to-keep}'
234
235     parameters:
236       - integration-bundle-url:
237           bundle-url: '{bundle-url}'
238       - distribution-karaf-version:
239           karaf-version: '{karaf-version}'
240
241     triggers:
242       - timed: '{schedule-daily}'
243
244     builders:
245       - lf-infra-pre-build
246       - trigger-builds:
247           - project: '{csit-sanity-list}'
248             block: true
249             predefined-parameters: |
250               BUNDLE_URL=$BUNDLE_URL
251               KARAF_VERSION=$KARAF_VERSION
252
253     publishers:
254       - email-notification:
255           email-recipients: '{email-recipients}'
256           email-prefix: '[integration]'
257
258 - job-template:
259     name: 'integration-patch-test-{stream}'
260     # Template: integration-patch-test-{stream}
261     # Goal: Build a patch and run all available system test on a distribution containing the change
262     # Operation: This job template builds a patch, creates a distribution containing the patch, and
263     # triggers the distribution test when test-integration is used in gerrit comments
264
265     project-type: freestyle
266     node: centos7-builder-2c-8g
267
268     properties:
269       - opendaylight-infra-properties:
270           build-days-to-keep: '{build-days-to-keep}'
271
272     parameters:
273       - opendaylight-infra-parameters:
274           os-cloud: '{os-cloud}'
275           project: '$GERRIT_PROJECT'
276           branch: '{branch}'
277           refspec: '$GERRIT_REFSPEC'
278           artifacts: '{archive-artifacts}'
279       - integration-distribution-branch:
280           branch: '{branch}'
281       - distribution-karaf-version:
282           karaf-version: '{karaf-version}'
283       - integration-distribution-git-url:
284           git-url: '{git-url}'
285       - maven-exec:
286           maven-version: mvn35
287
288     scm:
289       - integration-gerrit-scm:
290           basedir: '$GERRIT_PROJECT'
291           refspec: '$GERRIT_REFSPEC'
292           branch: '{branch}'
293       - integration-distribution-scm:
294           branch: '{branch}'
295
296     wrappers:
297       - opendaylight-infra-wrappers:
298           build-timeout: '720'
299
300     triggers:
301       - gerrit:
302           server-name: '{gerrit-server-name}'
303           trigger-on:
304             - comment-added-contains-event:
305                 comment-contains-value: 'test-integration'
306           projects:
307             - project-compare-type: 'ANT'
308               project-pattern: '**'
309               branches:
310                 - branch-compare-type: 'ANT'
311                   branch-pattern: '**/{branch}'
312           skip-vote:
313             successful: true
314             failed: true
315             unstable: true
316             notbuilt: true
317
318     builders:
319       - lf-infra-pre-build
320       - integration-rebase-gerrit-patch
321       - wipe-org-opendaylight-repo
322       - lf-provide-maven-settings:
323           global-settings-file: 'global-settings'
324           settings-file: 'integration-settings'
325       - lf-update-java-alternatives:
326           java-version: '{java-version}'
327       - maven-target:
328           maven-version: 'mvn35'
329           pom: '$GERRIT_PROJECT/pom.xml'
330           goals: |
331               clean install dependency:tree -DoutputFile=dependency_tree.txt
332               -Pq
333               -Dstream={stream}
334               {opendaylight-infra-mvn-opts}
335           # {opendaylight-infra-parallel-mvn-opts} is bad when there are multiple big features in SFT.
336           java-opts:
337             - '-Xmx4096m -Dmaven.compile.fork=true'
338           settings: integration-settings
339           settings-type: cfp
340           global-settings: global-settings
341           global-settings-type: cfp
342       - maven-target:
343           maven-version: mvn35
344           pom: distribution/pom.xml
345           goals: |
346               clean install dependency:tree -DoutputFile=dependency_tree.txt
347               {opendaylight-infra-mvn-opts}
348           # {opendaylight-infra-parallel-mvn-opts} is bad when there are multiple big features in SFT.
349           java-opts:
350             - '-Xmx1024m -Dmaven.compile.fork=true'
351           settings: integration-settings
352           settings-type: cfp
353           global-settings: global-settings
354           global-settings-type: cfp
355       - integration-upload-distribution:
356           dist-pom: distribution/pom.xml
357       - trigger-builds:
358           - project: '{csit-list}'
359             block: true
360             predefined-parameters: |
361               BUNDLE_URL=$BUNDLE_URL
362               KARAF_VERSION=$KARAF_VERSION
363
364     publishers:
365       - lf-infra-publish
366       - email-notification:
367           email-recipients: '{email-recipients}'
368           email-prefix: '[$GERRIT_PROJECT]'
369
370
371 - job-template:
372     name: '{prefix}integration-multipatch-test-{stream}'
373     # Goal: Build one or more patches and run all available system test on a distribution containing the change.
374     # Operation: This job template checks out and builds in order each patch provided in job parameters, finally
375     # it creates a distribution containing all patches and triggers the distribution test job which includes most
376     # (if not all) available CSIT jobs.
377
378     id: inttest-multipatch
379     project-type: freestyle
380     node: centos7-builder-8c-8g
381     concurrent: true
382
383     properties:
384       - opendaylight-infra-properties:
385           build-days-to-keep: '{build-days-to-keep}'
386
387     parameters:
388       - string:
389           name: PATCHES_TO_BUILD
390           default: '$PATCHES_TO_BUILD'
391           description: |
392               Ordered list of patches to build in the format of project=changeset (checkout) or
393               project:changeset (cherry-pick) for example: genius=32/53632/9,netvirt:59/50259/47.
394       - string:
395           name: BUILD_ORDER
396           default: '{build-order}'
397           description: 'Build order for multipatch test when topic is used'
398       - string:
399           name: BUILD_FAST
400           default: 'true'
401           description: 'Set true to build fast -Pq'
402       - string:
403           name: BUILD_NORMAL
404           default: ''
405           description: 'List of projects to build normal (no -Pq) when BUILD_FAST=true'
406       - string:
407           name: RUN_TEST
408           default: 'false'
409           description: 'Set true to run test after build'
410       - integration-distribution-branch:
411           branch: '{branch}'
412       - integration-distribution-stream:
413           stream: '{stream}'
414       - distribution-karaf-version:
415           karaf-version: '{karaf-version}'
416       - opendaylight-infra-parameters:
417           os-cloud: '{os-cloud}'
418           project: 'integration/distribution'
419           branch: '{branch}'
420           refspec: 'refs/heads/{branch}'
421           artifacts: '{archive-artifacts}'
422       - lf-infra-maven-parameters:
423           mvn-opts: ''
424           mvn-params: ''
425           mvn-version: mvn35
426           staging-profile-id: ''  # Staging repos do not make sense for this job
427
428     wrappers:
429       - opendaylight-infra-wrappers:
430           build-timeout: '1200'
431
432     triggers:
433       - gerrit:
434           server-name: '{gerrit-server-name}'
435           trigger-on:
436             - comment-added-contains-event:
437                 comment-contains-value: 'multipatch-build'
438           projects:
439             - project-compare-type: ANT
440               project-pattern: '**'
441               branches:
442                 - branch-compare-type: ANT
443                   branch-pattern: '**/{branch}'
444
445     builders:
446       - lf-infra-pre-build
447       - wipe-org-opendaylight-repo
448       - lf-maven-install:
449           mvn-version: '{mvn-version}'
450       - lf-provide-maven-settings:
451           global-settings-file: 'global-settings'
452           settings-file: 'integration-distribution-settings'
453       - lf-update-java-alternatives:
454           java-version: '{java-version}'
455       - integration-multipatch-builder
456       - integration-upload-distribution:
457           dist-pom: patch_tester/distribution/pom.xml
458       - conditional-step:
459           condition-kind: boolean-expression
460           condition-expression: $RUN_TEST
461           steps:
462             - trigger-builds:
463                 - project: >
464                       integration-distribution-test-{stream},
465                       integration-distribution-mri-test-{stream}
466                   predefined-parameters: |
467                     BUNDLE_URL=$BUNDLE_URL
468                     KARAF_VERSION=$KARAF_VERSION
469
470     publishers:
471       - lf-infra-publish
472       - email-notification:
473           email-recipients: '{email-recipients}'
474           email-prefix: '[int/dist]'
475
476 - job-template:
477     name: 'integration-distribution-mri-test-{stream}'
478
479     project-type: freestyle
480     node: queue-intque-2c-1g
481
482     properties:
483       - opendaylight-infra-properties:
484           build-days-to-keep: '{build-days-to-keep}'
485
486     parameters:
487       - integration-bundle-url:
488           bundle-url: '{bundle-url}'
489       - distribution-karaf-version:
490           karaf-version: '{karaf-version}'
491
492     triggers:
493       - timed: '{schedule-weekly}'
494
495     builders:
496       - trigger-builds:
497           - project: '{csit-mri-list}'
498             block: true
499             predefined-parameters: |
500               BUNDLE_URL=$BUNDLE_URL
501               KARAF_VERSION=$KARAF_VERSION
502
503     publishers:
504       - email-notification:
505           email-recipients: '{email-recipients}'
506           email-prefix: '[integration]'
507
508 - job-template:
509     name: 'integration-distribution-weekly-test-trigger-{stream}'
510
511     project-type: freestyle
512     node: queue-intque-2c-1g
513
514     properties:
515       - opendaylight-infra-properties:
516           build-days-to-keep: '{build-days-to-keep}'
517
518     parameters:
519       - integration-bundle-url:
520           bundle-url: '{bundle-url}'
521       - distribution-karaf-version:
522           karaf-version: '{karaf-version}'
523
524     triggers:
525       - timed: '{schedule-weekly}'
526
527     builders:
528       - trigger-builds:
529           - project: '{csit-weekly-list}'
530             block: true
531             predefined-parameters: |
532               BUNDLE_URL=$BUNDLE_URL
533               KARAF_VERSION=$KARAF_VERSION
534
535     publishers:
536       - email-notification:
537           email-recipients: '{email-recipients}'
538           email-prefix: '[integration]'
539
540 - job-template:
541     name: 'integration-update-csit-tests-{stream}'
542
543     # This job's purpose is to update csit
544     # tests to run in integration-distribution-test-{stream}
545     # by updating integration files: csit-list-{stream}.inc
546     # These files can be used as !include in int-dist-test-{stream}
547
548     ######################
549     # Default parameters #
550     ######################
551
552     git-url: '$GIT_URL/$PROJECT'
553     submodule-disable: false
554     submodule-recursive: true
555     submodule-timeout: 10
556
557     #####################
558     # Job Configuration #
559     #####################
560
561     project-type: freestyle
562     node: centos7-builder-2c-2g
563
564     properties:
565       - lf-infra-properties:
566           build-days-to-keep: 7
567
568     parameters:
569       - lf-infra-parameters:
570           project: releng/builder  # Hardcode as this job needs to pull releng/builder
571           stream: '{stream}'
572           branch: master  # Hardcode as releng/builder only has master
573           lftools-version: '{lftools-version}'
574       - string:
575           name: CSIT_BLACKLIST
576           default: '{csit-blacklist}'
577           description: Space separated list of jobs strings to blacklist.
578
579     scm:
580       - lf-infra-gerrit-scm:
581           jenkins-ssh-credential: '{jenkins-ssh-credential}'
582           git-url: '{git-url}'
583           refspec: '$GERRIT_REFSPEC'
584           branch: '$GERRIT_BRANCH'
585           submodule-disable: '{submodule-disable}'
586           submodule-recursive: '{submodule-recursive}'
587           submodule-timeout: '{submodule-timeout}'
588           choosing-strategy: default
589
590     wrappers:
591       - lf-infra-wrappers:
592           build-timeout: 10
593           jenkins-ssh-credential: '{jenkins-ssh-credential}'
594
595     triggers:
596       - reverse:
597           jobs: builder-jjb-merge
598
599     builders:
600       - lf-infra-pre-build
601       - shell: !include-raw-escape: update-csit-tests.sh
602       - shell: |
603           git status
604           git add jjb/integration/*.lst
605       - lf-infra-push-gerrit-patch:
606           project: 'releng/builder'
607           gerrit-user: 'jenkins-$SILO'
608           gerrit-host: 'git.opendaylight.org'
609           gerrit-topic: 'auto-update-csit-jobs-{stream}'
610           gerrit-commit-message: 'Auto Update CSIT Jobs to run for {stream}'
611           reviewers-email: 'jluhrsen@gmail.com'
612
613     publishers:
614       - lf-infra-publish
615
616 - project:
617     name: integration-view
618     views:
619       - project-view
620     project-name: integration