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