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