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