Merge "Remove odlmicro CSIT from AR test"
[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 - project:
53     name: integration-distribution
54     project: integration/test
55     project-name: integration-test
56     jobs:
57       - "integration-distribution-test-{stream}"
58       - "integration-distribution-mri-test-{stream}"
59       - "integration-distribution-weekly-test-trigger-{stream}"
60       - "integration-update-csit-tests-{stream}"
61
62     # CSIT Lists in defaults.yaml
63     stream:
64       - silicon:
65           branch: "master"
66           csit-blocklist: >
67             bier coe controller detnet dluxapps groupbasedpolicy l2switch mdsal nemo
68             odlmicro p4plugin packetcable sfc sxp telemetry tsdr unimgr usc yangtools
69             gate longevity sanity tdd tempest wip
70             bgpcep-csit-3node-bgpclustering-all
71             bgpcep-csit-3node-bgpclustering-ha-only
72             netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-pike
73             netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-itm-direct
74             netvirt-csit-3node-1cmb
75             openflowplugin-csit-1node-bundle-based-reconciliation
76             last-line-is-ignored-so-we-need-something-dummy-here-to-make-sure-the-real-last-line-is-used
77           csit-list: !include: csit-jobs-silicon.lst
78           csit-mri-list: "{csit-mri-list-silicon}"
79           csit-weekly-list: "{csit-weekly-list-silicon}"
80       - aluminium:
81           branch: "stable/aluminium"
82           csit-blocklist: >
83             bier coe controller detnet dluxapps groupbasedpolicy l2switch mdsal nemo
84             odlmicro p4plugin packetcable sfc sxp telemetry tsdr unimgr usc yangtools
85             gate longevity sanity tdd tempest wip
86             bgpcep-csit-3node-bgpclustering-all
87             bgpcep-csit-3node-bgpclustering-ha-only
88             netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-pike
89             netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-itm-direct
90             netvirt-csit-3node-1cmb
91             openflowplugin-csit-1node-bundle-based-reconciliation
92             last-line-is-ignored-so-we-need-something-dummy-here-to-make-sure-the-real-last-line-is-used
93           csit-list: !include: csit-jobs-aluminium.lst
94           csit-mri-list: "{csit-mri-list-aluminium}"
95           csit-weekly-list: "{csit-weekly-list-aluminium}"
96       - magnesium:
97           branch: "stable/magnesium"
98           csit-blocklist: >
99             alto bier coe detnet dluxapps groupbasedpolicy l2switch mdsal nemo
100             p4plugin packetcable sfc sxp telemetry tsdr unimgr usc yangtools
101             gate longevity sanity tdd tempest wip
102             bgpcep-csit-3node-bgpclustering-all
103             bgpcep-csit-3node-bgpclustering-ha-only
104             netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-pike
105             netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-itm-direct
106             netvirt-csit-3node-1cmb
107             openflowplugin-csit-1node-bundle-based-reconciliation
108             last-line-is-ignored-so-we-need-something-dummy-here-to-make-sure-the-real-last-line-is-used
109           csit-list: !include: csit-jobs-magnesium.lst
110           csit-mri-list: "{csit-mri-list-magnesium}"
111           csit-weekly-list: "{csit-weekly-list-magnesium}"
112
113 - project:
114     name: integration-sanity
115     project: integration/test
116     project-name: integration-test
117     jobs:
118       - "integration-sanity-test-{stream}"
119
120     stream:
121       - silicon:
122           branch: "master"
123           karaf-version: odl
124           csit-sanity-list: "{csit-sanity-list-silicon}"
125       - aluminium:
126           branch: "stable/aluminium"
127           karaf-version: odl
128           csit-sanity-list: "{csit-sanity-list-aluminium}"
129       - magnesium:
130           branch: "stable/magnesium"
131           karaf-version: odl
132           csit-sanity-list: "{csit-sanity-list-magnesium}"
133
134 - job-template:
135     name: "integration-merge-dashboard"
136     project-type: freestyle
137     node: centos7-builder-2c-1g
138
139     properties:
140       - opendaylight-infra-properties:
141           build-days-to-keep: "{build-days-to-keep}"
142
143     parameters:
144       - opendaylight-infra-parameters:
145           os-cloud: "{os-cloud}"
146           project: "{project}"
147           branch: "master"
148           refspec: "refs/heads/master"
149           artifacts: "{archive-artifacts}"
150
151     scm:
152       - integration-gerrit-scm:
153           basedir: "test"
154           refspec: "$GERRIT_REFSPEC"
155           branch: "master"
156
157     wrappers:
158       - opendaylight-infra-wrappers:
159           build-timeout: "{build-timeout}"
160
161     triggers:
162       - gerrit-trigger-patch-merged:
163           gerrit-server-name: "{gerrit-server-name}"
164           name: "{project}"
165           branch: "master"
166           files: "dashboard/**"
167           forbidden-files: ""
168
169     builders:
170       - lf-infra-pre-build
171       - config-file-provider:
172           files:
173             - file-id: odl-elastic-cloud
174               target: "$HOME/.netrc"
175       - integration-install-robotframework
176       # yamllint disable-line rule:line-length
177       - shell: python3 $WORKSPACE/test/csit/scripts/push_dashboard.py a4ff38b99ef2c7626450543021b4c134.us-east-1.aws.found.io:9243
178
179     publishers:
180       - lf-infra-publish
181       - email-notification:
182           email-recipients: "{email-recipients}"
183           email-prefix: "[{project-name}]"
184
185 - job-template:
186     name: "integration-distribution-test-{stream}"
187     # Goal: Verify a distribution through all system test available
188     # Operation: This template takes a distribution and passes all available system test
189
190     project-type: freestyle
191     node: queue-disttest-2c-1g
192
193     properties:
194       - opendaylight-infra-properties:
195           build-days-to-keep: "{build-days-to-keep}"
196
197     parameters:
198       - integration-bundle-url:
199           bundle-url: "{bundle-url}"
200       - distribution-karaf-version:
201           karaf-version: "{karaf-version}"
202
203     builders:
204       - lf-infra-pre-build
205       - trigger-builds:
206           - project: "{csit-list}"
207             block: true
208             predefined-parameters: |
209               BUNDLE_URL=$BUNDLE_URL
210               KARAF_VERSION=$KARAF_VERSION
211
212     wrappers:
213       - lf-infra-wrappers:
214           build-timeout: 1440
215           jenkins-ssh-credential: "{jenkins-ssh-credential}"
216
217     publishers:
218       - opendaylight-infra-generate-csit-status-report
219       - email-notification:
220           email-recipients: "{email-recipients}"
221           email-prefix: "[integration]"
222       - lf-infra-publish
223
224 - job-template:
225     name: "integration-sanity-test-{stream}"
226     # Goal: Verify a distribution through sanity test
227     # Operation: This template takes a distribution and passes sanity test
228     # This jobs works for both managed & unmanaged distro.
229
230     project-type: freestyle
231     node: queue-intque-2c-1g
232
233     properties:
234       - opendaylight-infra-properties:
235           build-days-to-keep: "{build-days-to-keep}"
236
237     parameters:
238       - integration-bundle-url:
239           bundle-url: "{bundle-url}"
240       - distribution-karaf-version:
241           karaf-version: "{karaf-version}"
242
243     triggers:
244       - timed: "{schedule-daily}"
245
246     builders:
247       - lf-infra-pre-build
248       - trigger-builds:
249           - project: "{csit-sanity-list}"
250             block: true
251             predefined-parameters: |
252               BUNDLE_URL=$BUNDLE_URL
253               KARAF_VERSION=$KARAF_VERSION
254
255     publishers:
256       - email-notification:
257           email-recipients: "{email-recipients}"
258           email-prefix: "[integration]"
259
260 - job-template:
261     name: "integration-patch-test-{stream}"
262     # Template: integration-patch-test-{stream}
263     # Goal: Build a patch and run all available system test on a distribution containing the change
264     # Operation: This job template builds a patch, creates a distribution containing the patch, and
265     # triggers the distribution test when test-integration is used in gerrit comments
266
267     project-type: freestyle
268     node: centos7-builder-2c-8g
269
270     properties:
271       - opendaylight-infra-properties:
272           build-days-to-keep: "{build-days-to-keep}"
273
274     parameters:
275       - opendaylight-infra-parameters:
276           os-cloud: "{os-cloud}"
277           project: "$GERRIT_PROJECT"
278           branch: "{branch}"
279           refspec: "$GERRIT_REFSPEC"
280           artifacts: "{archive-artifacts}"
281       - integration-distribution-branch:
282           branch: "{branch}"
283       - distribution-karaf-version:
284           karaf-version: "{karaf-version}"
285       - integration-distribution-git-url:
286           git-url: "{git-url}"
287       - maven-exec:
288           maven-version: mvn35
289
290     scm:
291       - integration-gerrit-scm:
292           basedir: "$GERRIT_PROJECT"
293           refspec: "$GERRIT_REFSPEC"
294           branch: "{branch}"
295       - integration-distribution-scm:
296           branch: "{branch}"
297
298     wrappers:
299       - opendaylight-infra-wrappers:
300           build-timeout: "720"
301
302     triggers:
303       - gerrit:
304           server-name: "{gerrit-server-name}"
305           trigger-on:
306             - comment-added-contains-event:
307                 comment-contains-value: "test-integration"
308           projects:
309             - project-compare-type: "ANT"
310               project-pattern: "**"
311               branches:
312                 - branch-compare-type: "ANT"
313                   branch-pattern: "**/{branch}"
314           skip-vote:
315             successful: true
316             failed: true
317             unstable: true
318             notbuilt: true
319
320     builders:
321       - lf-infra-pre-build
322       - integration-rebase-gerrit-patch
323       - wipe-org-opendaylight-repo
324       - lf-provide-maven-settings:
325           global-settings-file: "global-settings"
326           settings-file: "integration-settings"
327       - lf-update-java-alternatives:
328           java-version: "{java-version}"
329       - maven-target:
330           maven-version: "mvn35"
331           pom: "$GERRIT_PROJECT/pom.xml"
332           goals: |
333             clean install dependency:tree -DoutputFile=dependency_tree.txt
334             -Pq
335             -Dstream={stream}
336             {opendaylight-infra-mvn-opts}
337           # {opendaylight-infra-parallel-mvn-opts} is bad when there are multiple big features in SFT.
338           java-opts:
339             - "-Xmx4096m -Dmaven.compile.fork=true"
340           settings: integration-settings
341           settings-type: cfp
342           global-settings: global-settings
343           global-settings-type: cfp
344       - maven-target:
345           maven-version: mvn35
346           pom: distribution/pom.xml
347           goals: |
348             clean install dependency:tree -DoutputFile=dependency_tree.txt
349             {opendaylight-infra-mvn-opts}
350           # {opendaylight-infra-parallel-mvn-opts} is bad when there are multiple big features in SFT.
351           java-opts:
352             - "-Xmx1024m -Dmaven.compile.fork=true"
353           settings: integration-settings
354           settings-type: cfp
355           global-settings: global-settings
356           global-settings-type: cfp
357       - integration-upload-distribution:
358           dist-pom: distribution/pom.xml
359       - trigger-builds:
360           - project: "{csit-list}"
361             block: true
362             predefined-parameters: |
363               BUNDLE_URL=$BUNDLE_URL
364               KARAF_VERSION=$KARAF_VERSION
365
366     publishers:
367       - lf-infra-publish
368       - email-notification:
369           email-recipients: "{email-recipients}"
370           email-prefix: "[$GERRIT_PROJECT]"
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