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