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