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