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