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