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