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