Magnesium branch cut
[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
19     # CSIT Lists in defaults.yaml
20     stream:
21       - aluminium:
22           branch: 'master'
23           mvn-version: 'mvn35'
24           java-version: 'openjdk11'
25           csit-list: !include: csit-jobs-aluminium.lst
26           build-order: >
27               odlparent yangtools mdsal infrautils controller serviceutils aaa netconf
28               daexim jsonrpc ovsdb neutron openflowplugin genius lispflowmapping netvirt
29               bgpcep integration/distribution
30
31       - magnesium:
32           branch: 'stable/magnesium'
33           mvn-version: 'mvn35'
34           java-version: 'openjdk11'
35           csit-list: !include: csit-jobs-magnesium.lst
36           build-order: >
37               odlparent yangtools mdsal infrautils controller serviceutils aaa netconf
38               daexim jsonrpc ovsdb neutron openflowplugin genius lispflowmapping netvirt
39               bgpcep integration/distribution
40
41       - sodium:
42           branch: 'stable/sodium'
43           mvn-version: 'mvn35'
44           csit-list: !include: csit-jobs-sodium.lst
45           build-order: >
46               odlparent yangtools mdsal infrautils controller serviceutils aaa netconf
47               daexim ovsdb neutron openflowplugin coe genius lispflowmapping sfc netvirt
48               bgpcep integration/distribution
49
50       - neon:
51           branch: 'stable/neon'
52           mvn-version: 'mvn35'
53           csit-list: !include: csit-jobs-neon.lst
54           build-order: >
55               odlparent yangtools mdsal infrautils controller serviceutils aaa netconf
56               daexim ovsdb neutron openflowplugin coe genius lispflowmapping sfc netvirt
57               bgpcep integration/distribution
58
59 - project:
60     name: integration-distribution
61     project: integration/test
62     project-name: integration-test
63     jobs:
64       - 'integration-distribution-test-{stream}'
65       - 'integration-distribution-weekly-test-trigger-{stream}'
66       - 'integration-update-csit-tests-{stream}'
67
68     # CSIT Lists in defaults.yaml
69     stream:
70       - magnesium:
71           branch: 'master'
72           csit-blacklist: >
73               alto bier coe didm dluxapps groupbasedpolicy l2switch nemo
74               of-config p4plugin packetcable sfc sxp telemetry tsdr unimgr usc
75               gate longevity sanity tdd tempest wip
76               netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-pike
77               netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-itm-direct
78               netvirt-csit-3node-1cmb
79               last-line-is-ignored-so-we-need-something-dummy-here-to-make-sure-the-real-last-line-is-used
80           csit-list: !include: csit-jobs-magnesium.lst
81           csit-weekly-list: '{csit-weekly-list-magnesium}'
82       - sodium:
83           branch: 'stable/sodium'
84           csit-blacklist: >
85               alto bier didm dluxapps groupbasedpolicy jsonrpc l2switch nemo
86               of-config p4plugin packetcable sxp telemetry tsdr unimgr usc
87               gate longevity sanity tdd tempest wip
88               netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-pike
89               netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-itm-direct
90               netvirt-csit-3node-1cmb
91               last-line-is-ignored-so-we-need-something-dummy-here-to-make-sure-the-real-last-line-is-used
92           csit-list: !include: csit-jobs-sodium.lst
93           csit-weekly-list: '{csit-weekly-list-sodium}'
94       - neon:
95           branch: 'stable/neon'
96           csit-blacklist: >
97               alto bier didm dluxapps groupbasedpolicy jsonrpc l2switch nemo
98               of-config p4plugin packetcable sxp telemetry tsdr unimgr usc
99               gate longevity sanity tdd tempest wip
100               netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-pike
101               netvirt-csit-1node-1cmb-0ctl-0cmp-openstack-queens-upstream-stateful-itm-direct
102               netvirt-csit-3node-1cmb
103               last-line-is-ignored-so-we-need-something-dummy-here-to-make-sure-the-real-last-line-is-used
104           csit-list: !include: csit-jobs-neon.lst
105           csit-weekly-list: '{csit-weekly-list-neon}'
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       - magnesium:
116           branch: 'master'
117           karaf-version: odl
118           csit-sanity-list: '{csit-sanity-list-magnesium}'
119       - sodium:
120           branch: 'stable/sodium'
121           karaf-version: odl
122           csit-sanity-list: '{csit-sanity-list-sodium}'
123       - neon:
124           branch: 'stable/neon'
125           karaf-version: odl
126           csit-sanity-list: '{csit-sanity-list-neon}'
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
367 - job-template:
368     name: '{prefix}integration-multipatch-test-{stream}'
369     # Goal: Build one or more patches and run all available system test on a distribution containing the change.
370     # Operation: This job template checks out and builds in order each patch provided in job parameters, finally
371     # it creates a distribution containing all patches and triggers the distribution test job which includes most
372     # (if not all) available CSIT jobs.
373
374     id: inttest-multipatch
375     project-type: freestyle
376     node: centos7-builder-8c-8g
377     concurrent: true
378
379     properties:
380       - opendaylight-infra-properties:
381           build-days-to-keep: '{build-days-to-keep}'
382
383     parameters:
384       - string:
385           name: PATCHES_TO_BUILD
386           default: '$PATCHES_TO_BUILD'
387           description: |
388               Ordered list of patches to build in the format of project=changeset (checkout) or
389               project:changeset (cherry-pick) for example: genius=32/53632/9,netvirt:59/50259/47.
390       - string:
391           name: BUILD_ORDER
392           default: '{build-order}'
393           description: 'Build order for multipatch test when topic is used'
394       - string:
395           name: BUILD_FAST
396           default: 'true'
397           description: 'Set true to build fast -Pq'
398       - string:
399           name: BUILD_NORMAL
400           default: ''
401           description: 'List of projects to build normal (no -Pq) when BUILD_FAST=true'
402       - string:
403           name: RUN_TEST
404           default: 'false'
405           description: 'Set true to run test after build'
406       - integration-distribution-branch:
407           branch: '{branch}'
408       - integration-distribution-stream:
409           stream: '{stream}'
410       - distribution-karaf-version:
411           karaf-version: '{karaf-version}'
412       - opendaylight-infra-parameters:
413           os-cloud: '{os-cloud}'
414           project: 'integration/distribution'
415           branch: '{branch}'
416           refspec: 'refs/heads/{branch}'
417           artifacts: '{archive-artifacts}'
418       - lf-infra-maven-parameters:
419           mvn-opts: ''
420           mvn-params: ''
421           mvn-version: mvn35
422           staging-profile-id: ''  # Staging repos do not make sense for this job
423
424     wrappers:
425       - opendaylight-infra-wrappers:
426           build-timeout: '1200'
427
428     triggers:
429       - gerrit:
430           server-name: '{gerrit-server-name}'
431           trigger-on:
432             - comment-added-contains-event:
433                 comment-contains-value: 'multipatch-build'
434           projects:
435             - project-compare-type: ANT
436               project-pattern: '**'
437               branches:
438                 - branch-compare-type: ANT
439                   branch-pattern: '**/{branch}'
440
441     builders:
442       - lf-infra-pre-build
443       - wipe-org-opendaylight-repo
444       - lf-maven-install:
445           mvn-version: '{mvn-version}'
446       - lf-provide-maven-settings:
447           global-settings-file: 'global-settings'
448           settings-file: 'integration-distribution-settings'
449       - lf-update-java-alternatives:
450           java-version: '{java-version}'
451       - integration-multipatch-builder
452       - integration-upload-distribution:
453           dist-pom: patch_tester/distribution/pom.xml
454       - conditional-step:
455           condition-kind: boolean-expression
456           condition-expression: $RUN_TEST
457           steps:
458             - trigger-builds:
459                 - project: '{csit-list}'
460                   block: true
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-weekly-test-trigger-{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-weekly-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: 'integration-update-csit-tests-{stream}'
505
506     # This job's purpose is to update csit
507     # tests to run in integration-distribution-test-{stream}
508     # by updating integration files: csit-list-{stream}.inc
509     # These files can be used as !include in int-dist-test-{stream}
510
511     ######################
512     # Default parameters #
513     ######################
514
515     git-url: '$GIT_URL/$PROJECT'
516     submodule-disable: false
517     submodule-recursive: true
518     submodule-timeout: 10
519
520     #####################
521     # Job Configuration #
522     #####################
523
524     project-type: freestyle
525     node: centos7-builder-2c-2g
526
527     properties:
528       - lf-infra-properties:
529           build-days-to-keep: 7
530
531     parameters:
532       - lf-infra-parameters:
533           project: releng/builder  # Hardcode as this job needs to pull releng/builder
534           stream: '{stream}'
535           branch: master  # Hardcode as releng/builder only has master
536           lftools-version: '{lftools-version}'
537       - string:
538           name: CSIT_BLACKLIST
539           default: '{csit-blacklist}'
540           description: Space separated list of jobs strings to blacklist.
541
542     scm:
543       - lf-infra-gerrit-scm:
544           jenkins-ssh-credential: '{jenkins-ssh-credential}'
545           git-url: '{git-url}'
546           refspec: '$GERRIT_REFSPEC'
547           branch: '$GERRIT_BRANCH'
548           submodule-disable: '{submodule-disable}'
549           submodule-recursive: '{submodule-recursive}'
550           submodule-timeout: '{submodule-timeout}'
551           choosing-strategy: default
552
553     wrappers:
554       - lf-infra-wrappers:
555           build-timeout: 10
556           jenkins-ssh-credential: '{jenkins-ssh-credential}'
557
558     triggers:
559       - reverse:
560           jobs: builder-jjb-merge
561
562     builders:
563       - lf-infra-pre-build
564       - shell: !include-raw-escape: update-csit-tests.sh
565       - shell: |
566           git status
567           git add jjb/integration/*.lst
568       - lf-infra-push-gerrit-patch:
569           project: 'releng/builder'
570           gerrit-user: 'jenkins-$SILO'
571           gerrit-host: 'git.opendaylight.org'
572           gerrit-topic: 'auto-update-csit-jobs-{stream}'
573           gerrit-commit-message: 'Auto Update CSIT Jobs to run for {stream}'
574           reviewers-email: 'jluhrsen@gmail.com'
575
576     publishers:
577       - lf-infra-publish
578
579 - project:
580     name: integration-view
581     views:
582       - project-view
583     project-name: integration
584
585 - view:
586     name: csit-stable-ne
587     description: 'List of stable integration jobs for managed projects'
588     job-name:
589       - aaa-csit-1node-authn-all-neon
590       - bgpcep-csit-1node-throughpcep-all-neon
591       - controller-csit-1node-akka1-all-neon
592       - controller-csit-1node-benchmark-all-neon
593       - controller-csit-1node-notifications-longevity-only-neon
594       - controller-csit-1node-rest-cars-perf-all-neon
595       - controller-csit-3node-benchmark-all-neon
596       - controller-csit-3node-drb-precedence-longevity-only-neon
597       - controller-csit-3node-rest-clust-cars-perf-ask-only-neon
598       - controller-csit-3node-rest-clust-cars-perf-tell-only-neon
599       - daexim-csit-1node-basic-only-neon
600       - daexim-csit-3node-clustering-basic-only-neon
601       - distribution-csit-1node-userfeatures-all-neon
602       - genius-csit-1node-upstream-only-neon
603       - genius-csit-3node-upstream-only-neon
604       - lispflowmapping-csit-1node-msmr-all-neon
605       - netconf-csit-1node-callhome-only-neon
606       - netconf-csit-1node-userfeatures-all-neon
607       - netvirt-csit-1node-0cmb-1ctl-2cmp-openstack-queens-upstream-stateful-neon
608       - openflowplugin-csit-1node-flow-services-all-neon
609       - openflowplugin-csit-1node-longevity-only-neon
610       - openflowplugin-csit-1node-perf-bulkomatic-only-neon
611       - openflowplugin-csit-1node-perf-stats-collection-only-neon
612       - openflowplugin-csit-1node-sanity-only-neon
613       - openflowplugin-csit-1node-scale-link-only-neon
614       - openflowplugin-csit-1node-scale-only-neon
615       - openflowplugin-csit-1node-scale-switch-only-neon
616       - openflowplugin-csit-3node-clustering-bulkomatic-only-neon
617       - openflowplugin-csit-3node-clustering-only-neon
618       - ovsdb-csit-3node-upstream-clustering-only-neon
619     view-type: list
620     filter-executors: false
621     filter-queue: false
622     columns:
623       - status
624       - weather
625       - job
626       - last-success
627       - last-failure
628       - last-duration
629       - build-button
630       - jacoco
631       - find-bugs
632       - robot-list
633     recurse: false