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