Use restconf-noauth in bgp longevity
[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     test-branch: master
7     jobs:
8       - '{project-name}-verify-tox-master'
9       - 'integration-csit-verify-1node-library'
10       - 'integration-distribution-test-{stream}'
11       - 'integration-sanity-test-{stream}'
12       - 'integration-patch-test-{stream}'
13       - 'integration-multipatch-test-{stream}'
14       - 'integration-distribution-weekly-test-trigger-{stream}'
15       - 'integration-distribution-high-frequency-test-trigger-{stream}'
16
17     # CSIT Lists in releng-defaults.yaml
18     stream:
19       - nitrogen:
20           branch: 'master'
21           karaf-version: karaf3
22           jre: 'openjdk8'
23           csit-list: '{csit-list-nitrogen}'
24           csit-sanity-list: '{csit-sanity-list-nitrogen}'
25           csit-weekly-list: '{csit-weekly-list-nitrogen}'
26           schedule-weekly: 'H 12 * * 0'
27           csit-high-frequency-list: ''
28           schedule-high-frequency: ''
29
30       - carbon:
31           branch: 'stable/carbon'
32           karaf-version: karaf3
33           jdk: 'openjdk8'
34           jre: 'openjdk8'
35           csit-list: '{csit-list-carbon}'
36           csit-sanity-list: '{csit-sanity-list-carbon}'
37           csit-weekly-list: '{csit-weekly-list-carbon}'
38           schedule-weekly: 'H 12 * * 0'
39           csit-high-frequency-list: '{csit-high-frequency-list-carbon}'
40           schedule-high-frequency: 'H H/4 * * *'
41
42       - boron:
43           branch: 'stable/boron'
44           karaf-version: karaf3
45           jdk: 'openjdk8'
46           jre: 'openjdk8'
47           csit-list: '{csit-list-boron}'
48           csit-sanity-list: '{csit-sanity-list-boron}'
49           csit-weekly-list: '{csit-weekly-list-boron}'
50           schedule-weekly: 'H 12 * * 0'
51           csit-high-frequency-list: ''
52           schedule-high-frequency: ''
53
54       - beryllium:
55           branch: 'stable/beryllium'
56           karaf-version: karaf3
57           jdk: 'openjdk7'
58           jre: 'openjdk7'
59           csit-list: '{csit-list-beryllium}'
60           csit-sanity-list: ''
61           csit-weekly-list: ''
62           schedule-weekly: 'H 12 * * 0'
63           csit-high-frequency-list: ''
64           schedule-high-frequency: ''
65
66     # tools system image
67     tools_system_image: Ubuntu 14.04 - mininet-ovs-25 - 20170210-0300
68
69 # Template: integration-csit-verify-1node-library
70 # Goal: Verify changes in csit folder not covered by projects suite verify jobs (e.g. libraries or variables)
71 # Operation: This job template performs a base openflow test when there is a change in the libraries folder
72
73 - job-template:
74     name: 'integration-csit-verify-1node-library'
75
76     project-type: freestyle
77     node: centos7-robot-2c-2g
78
79     # {stream} is already defined as a composite object, it cannot be overriden.
80     dist-stream: boron
81     # This is not a template, so define branch, scope and jre for distribution to test with.
82     branch: stable/boron
83     scope: only
84     jre: openjdk8
85
86     properties:
87       - opendaylight-infra-properties:
88           build-days-to-keep: '{build-days-to-keep}'
89
90     parameters:
91       - opendaylight-infra-parameters:
92           os-cloud: '{os-cloud}'
93           project: '{project}'
94           branch: '{test-branch}'
95           refspec: 'refs/heads/{test-branch}'
96           artifacts: '{archive-artifacts}'
97       - integration-distribution-branch:
98           branch: '{verify-branch}'
99       - integration-distribution-stream:
100           stream: '{verify-stream}'
101       - integration-bundle-url:
102           bundle-url: '{bundle-url}'
103       - integration-controller-scope:
104           controller-scope: '{scope}'
105       - integration-controller-features:
106           controller-features: >
107               odl-clustering-test-app,
108               odl-openflowplugin-flow-services-ui,
109               odl-openflowplugin-app-table-miss-enforcer,
110               odl-bgpcep-pcep,
111               odl-bgpcep-bgp,
112               odl-netconf-connector-all
113       # when upgrading to carbon you should replace odl-netconf-connector-all with odl-netconf-topology
114       # and change USE_NETCONF_CONNECTOR to False in test-options
115       - integration-test-options:
116           test-options: '-v TIMEOUT_BUG_4220:10s -v USE_NETCONF_CONNECTOR:True'
117       - integration-stream-test-plan:
118           stream-test-plan: 'test-libraries-{verify-stream}.txt'
119       - integration-test-plan:
120           test-plan: 'test-libraries.txt'
121       - integration-patch-refspec:
122           branch: '$GERRIT_REFSPEC'
123       - integration-jdk-version:
124           jdkversion: '{jre}'
125       - distribution-karaf-version:
126           karaf-version: '{verify-karaf-version}'
127
128     scm:
129       - integration-gerrit-scm:
130           basedir: 'test'
131           refspec: '$PATCHREFSPEC'
132           branch: '{test-branch}'
133
134     wrappers:
135       - opendaylight-infra-wrappers:
136           build-timeout: '{build-timeout}'
137
138     triggers:
139       - integration-trigger-patch-submitted:
140           server: '{server-name}'
141           project: '{project}'
142           branch: '{test-branch}'
143           files: 'csit/libraries/*'
144
145     builders:
146       - integration-infra-stack:
147           stack-template: '{stack-template}'
148           vm_0_count: '1'
149           vm_0_flavor: '{odl_system_flavor}'
150           vm_0_image: '{odl_system_image}'
151           vm_1_count: '{tools_system_count}'
152           vm_1_flavor: '{tools_system_flavor}'
153           vm_1_image: '{tools_system_image}'
154       - integration-install-robotframework
155       - inject:
156           properties-file: 'env.properties'
157       - integration-get-slave-addresses
158       - inject:
159           properties-file: 'slave_addresses.txt'
160       - integration-detect-variables
161       - integration-deploy-controller-run-test
162       - integration-cleanup-tmp
163
164     publishers:
165       - integration-robot:
166           unstable-if: 0.0
167           pass-if: 100.0
168       - email-notification:
169           email-recipients: '{email-recipients}'
170           email-prefix: '[integration]'
171       - integration-csit-archive-build
172       - opendaylight-infra-shiplogs:
173           maven-version: 'mvn33'
174
175 # Template: integration-distribution-test-{stream}
176 # Goal: Verify a distribution through all system test available
177 # Operation: This template takes a distribution and passes all available system test
178
179 - job-template:
180     name: 'integration-distribution-test-{stream}'
181
182     project-type: freestyle
183     node: centos7-robot-2c-2g
184
185     properties:
186       - opendaylight-infra-properties:
187           build-days-to-keep: '{build-days-to-keep}'
188
189     parameters:
190       - integration-bundle-url:
191           bundle-url: '{bundle-url}'
192
193     builders:
194       - trigger-builds:
195           - project: '{csit-list}'
196             block: true
197             predefined-parameters:
198               BUNDLE_URL=$BUNDLE_URL
199
200     publishers:
201       - email-notification:
202           email-recipients: '{email-recipients}'
203           email-prefix: '[integration]'
204
205 # Template: integration-sanity-test-{stream}
206 # Goal: Verify a distribution through sanity test
207 # Operation: This template takes a distribution and passes sanity test
208
209 - job-template:
210     name: 'integration-sanity-test-{stream}'
211
212     project-type: freestyle
213     node: centos7-robot-2c-2g
214
215     properties:
216       - opendaylight-infra-properties:
217           build-days-to-keep: '{build-days-to-keep}'
218
219     parameters:
220       - integration-bundle-url:
221           bundle-url: '{bundle-url}'
222
223     builders:
224       - trigger-builds:
225           - project: '{csit-sanity-list}'
226             block: true
227             predefined-parameters:
228               BUNDLE_URL=$BUNDLE_URL
229
230     publishers:
231       - email-notification:
232           email-recipients: '{email-recipients}'
233           email-prefix: '[integration]'
234
235 # Template: integration-patch-test-{stream}
236 # Goal: Build a patch and run all available system test on a distribution containing the change
237 # Operation: This job template builds a patch, creates a distribution containing the patch, and
238 # triggers the distribution test when test-integration is used in gerrit comments
239
240 - job-template:
241     name: 'integration-patch-test-{stream}'
242
243     project-type: freestyle
244     node: centos7-java-builder-2c-8g
245
246     properties:
247       - opendaylight-infra-properties:
248           build-days-to-keep: '{build-days-to-keep}'
249
250     parameters:
251       - opendaylight-infra-parameters:
252           os-cloud: '{os-cloud}'
253           project: '$GERRIT_PROJECT'
254           branch: '{branch}'
255           refspec: '$GERRIT_REFSPEC'
256           artifacts: '{archive-artifacts} **/dependency_tree.txt'
257       - integration-distribution-branch:
258           branch: '{branch}'
259       - distribution-karaf-version:
260           karaf-version: '{karaf-version}'
261       - integration-distribution-git-url:
262           git-url: '{git-url}'
263       - maven-exec:
264           maven-version: mvn33
265
266     scm:
267       - integration-gerrit-scm:
268           basedir: '$GERRIT_PROJECT'
269           refspec: '$GERRIT_REFSPEC'
270           branch: '{branch}'
271       - integration-distribution-scm:
272           branch: '{branch}'
273
274     wrappers:
275       - opendaylight-infra-wrappers:
276           build-timeout: '720'
277
278     triggers:
279       - gerrit:
280           server-name: '{server-name}'
281           trigger-on:
282             - comment-added-contains-event:
283                 comment-contains-value: 'test-integration'
284           projects:
285             - project-compare-type: 'ANT'
286               project-pattern: '**'
287               branches:
288                 - branch-compare-type: 'ANT'
289                   branch-pattern: '**/{branch}'
290           skip-vote:
291             successful: true
292             failed: true
293             unstable: true
294             notbuilt: true
295
296     builders:
297       - integration-rebase-gerrit-patch
298       - wipe-org-opendaylight-repo
299       - provide-maven-settings:
300           global-settings-file: 'odl-global-settings'
301           settings-file: 'integration-settings'
302       - maven-target:
303           maven-version: 'mvn33'
304           pom: '$GERRIT_PROJECT/pom.xml'
305           goals: |
306               clean install dependency:tree -DoutputFile=dependency_tree.txt
307               -Pq
308               -Dstream={stream}
309               {opendaylight-infra-mvn-opts}
310           java-opts:
311             - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
312           settings: integration-settings
313           settings-type: cfp
314           global-settings: odl-global-settings
315           global-settings-type: cfp
316       - maven-target:
317           maven-version: mvn33
318           pom: distribution/pom.xml
319           goals: |
320               clean install dependency:tree -DoutputFile=dependency_tree.txt
321               {opendaylight-infra-mvn-opts}
322           java-opts:
323             - '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
324           settings: integration-settings
325           settings-type: cfp
326           global-settings: odl-global-settings
327           global-settings-type: cfp
328       - integration-upload-distribution:
329           dist-pom: distribution/pom.xml
330       - trigger-builds:
331           - project: '{csit-list}'
332             block: true
333             predefined-parameters: |
334               BUNDLE_URL=$BUNDLE_URL
335               KARAF_VERSION=$KARAF_VERSION
336
337     publishers:
338       - opendaylight-infra-shiplogs:
339           maven-version: 'mvn33'
340       - email-notification:
341           email-recipients: '{email-recipients}'
342           email-prefix: '[$GERRIT_PROJECT]'
343
344
345 - job-template:
346     name: 'integration-multipatch-test-{stream}'
347     # Goal: Build one or more patches and run all available system test on a distribution containing the change.
348     # Operation: This job template checks out and builds each patch provided in job parameters, creates a distribution
349     # containing these patches, and triggers the distribution test job which includes most (if not all) available
350     # CSIT jobs
351     # TODO: Move the following to appropriate readthedocs document.
352     # Recommended Sandbox usage:
353     # 0. Create this job and a CSIT job you want to run on the new .zip in Sandbox (disable timed triggers).
354     # 1. Copy the csit job name to clipboard.
355     # 2. Navigate to Sandbox page of this job.
356     # 3. Click "Configure".
357     # 4. Locate "Trigger/call builds on other projects" (under "Post Steps" tab).
358     # 5. Delete the long value of "Projects to build" field and paste the job name from clipboard (ctrl+a, ctrl+v).
359     # 6. Click "Save" button.
360     # 7. Click "Build with Parameters".
361     # yamllint disable-line rule:line-length
362     # 8. Start the job with your parameters, see https://wiki.opendaylight.org/view/Integration/Test/Running_System_Tests#Running_System_Tests_Using_Custom_Distribution_Built_From_Multiple_Patches
363     # 9. The multipatch job waits for the csit job to finish, so abort csit if you see something went wrong.
364     # 10. Navigate to Sandbox page of the csit job, click the run triggered from multipatch.
365     # 11. Click Parameters and copy the long value of BUNDLE_URL field to clipboard.
366     # 12. Run the same csit job woth different patchset or test options, or other csit jobs, with this BUNDLE_URL value
367     #     so you do not have to wait for multipatch build. Repeat step 12.
368     # 13. Currently, the .zip lasts 24 hours (?) so you may need to jump to step 2 (or 0) after some time.
369
370     project-type: freestyle
371     node: centos7-java-builder-8c-8g
372     jdk: '{jdk}'
373
374     properties:
375       - opendaylight-infra-properties:
376           build-days-to-keep: '{build-days-to-keep}'
377
378     parameters:
379       - patches-to-build-parameter:
380           patches_to_build: '$PATCHES_TO_BUILD'
381       - run-test-parameter:
382           run-test: 'false'
383       - integration-distribution-branch:
384           branch: '{branch}'
385       - distribution-karaf-version:
386           karaf-version: '{karaf-version}'
387       - opendaylight-infra-parameters:
388           os-cloud: '{os-cloud}'
389           project: 'integration/distribution'
390           branch: '{branch}'
391           refspec: 'refs/heads/{branch}'
392           artifacts: '{archive-artifacts} **/dependency_tree.txt'
393       - maven-exec:
394           maven-version: mvn33
395
396     wrappers:
397       - opendaylight-infra-wrappers:
398           build-timeout: '1200'
399
400     builders:
401       - wipe-org-opendaylight-repo
402       - integration-multipatch-builder
403       - provide-maven-settings:
404           global-settings-file: 'odl-global-settings'
405           settings-file: 'yangtools-settings'
406       - maven-target:
407           maven-version: mvn33
408           pom: patch_tester/pom.xml
409           # TODO: Make Maven options configurable. Currently tests are not skipped, everything else is.
410           goals: |
411               clean install dependency:tree -DoutputFile=dependency_tree.txt
412               -Pq
413               -Dstream={stream}
414               {opendaylight-infra-mvn-opts}
415           java-opts:
416             - '-Xmx7168m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
417           settings: integration-settings
418           settings-type: cfp
419           global-settings: odl-global-settings
420           global-settings-type: cfp
421       - integration-upload-distribution:
422           dist-pom: patch_tester/distribution/pom.xml
423       - conditional-step:
424           condition-kind: boolean-expression
425           condition-expression: $RUNTEST
426           steps:
427             - trigger-builds:
428                 - project: '{csit-list}'
429                   block: true
430                   predefined-parameters: |
431                     BUNDLE_URL=$BUNDLE_URL
432                     KARAF_VERSION=$KARAF_VERSION
433
434     publishers:
435       - opendaylight-infra-shiplogs:
436           maven-version: 'mvn33'
437       - email-notification:
438           email-recipients: '{email-recipients}'
439           email-prefix: '[int/dist]'
440
441 - job-template:
442     name: 'integration-distribution-weekly-test-trigger-{stream}'
443
444     project-type: freestyle
445     node: centos7-robot-2c-2g
446
447     properties:
448       - opendaylight-infra-properties:
449           build-days-to-keep: '{build-days-to-keep}'
450
451     parameters:
452       - integration-bundle-url:
453           bundle-url: '{bundle-url}'
454
455     triggers:
456       - timed: '{schedule-weekly}'
457
458     builders:
459       - trigger-builds:
460           - project: '{csit-weekly-list}'
461             block: true
462             predefined-parameters:
463               BUNDLE_URL=$BUNDLE_URL
464
465     publishers:
466       - email-notification:
467           email-recipients: '{email-recipients}'
468           email-prefix: '[integration]'
469
470 - job-template:
471     name: 'integration-distribution-high-frequency-test-trigger-{stream}'
472
473     project-type: freestyle
474     node: centos7-robot-2c-2g
475
476     properties:
477       - opendaylight-infra-properties:
478           build-days-to-keep: '{build-days-to-keep}'
479
480     parameters:
481       - integration-bundle-url:
482           bundle-url: '{bundle-url}'
483       - integration-jdk-version:
484           jdkversion: '{jre}'
485
486     triggers:
487       - timed: '{schedule-high-frequency}'
488
489     builders:
490       - trigger-builds:
491           - project: '{csit-high-frequency-list}'
492             block: true
493             predefined-parameters:
494               BUNDLE_URL=$BUNDLE_URL
495
496     publishers:
497       - email-notification:
498           email-recipients: '{email-recipients}'
499           email-prefix: '[integration]'