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