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