Remove all ODL Boron Jobs
[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-distribution-test-{stream}'
10       - 'integration-sanity-test-{stream}'
11       - 'integration-patch-test-{stream}'
12       - 'integration-multipatch-test-{stream}'
13       - 'integration-distribution-weekly-test-trigger-{stream}'
14       - 'integration-distribution-high-frequency-test-trigger-{stream}'
15       - 'integration-update-csit-tests-{stream}'
16
17     # CSIT Lists in releng-defaults.yaml
18     stream:
19       - oxygen:
20           branch: 'master'
21           jdk: 'openjdk8'
22           csit-blacklist: longevity gate sanity capwap centinel coe didm iotdm jsonrpc lacp netide tsdr
23           csit-list: !include: csit-jobs-oxygen.lst
24           csit-sanity-list: '{csit-sanity-list-oxygen}'
25           csit-weekly-list: '{csit-weekly-list-oxygen}'
26           csit-high-frequency-list: '{csit-high-frequency-list-oxygen}'
27
28       - nitrogen:
29           branch: 'stable/nitrogen'
30           jre: 'openjdk8'
31           csit-blacklist: longevity gate sanity capwap centinel coe didm iotdm jsonrpc lacp netide tsdr
32           csit-list: !include: csit-jobs-nitrogen.lst
33           csit-sanity-list: '{csit-sanity-list-nitrogen}'
34           csit-weekly-list: '{csit-weekly-list-nitrogen}'
35           csit-high-frequency-list: '{csit-high-frequency-list-nitrogen}'
36
37       - carbon:
38           branch: 'stable/carbon'
39           karaf-version: karaf3
40           jdk: 'openjdk8'
41           jre: 'openjdk8'
42           csit-blacklist: longevity gate sanity capwap centinel coe jsonrpc
43           csit-list: !include: csit-jobs-carbon.lst
44           csit-sanity-list: '{csit-sanity-list-carbon}'
45           csit-weekly-list: '{csit-weekly-list-carbon}'
46           csit-high-frequency-list: '{csit-high-frequency-list-carbon}'
47
48     # tools system image
49     tools_system_image: Ubuntu 16.04 - mininet-ovs-25 - 20170808-0158
50
51 # Template: integration-distribution-test-{stream}
52 # Goal: Verify a distribution through all system test available
53 # Operation: This template takes a distribution and passes all available system test
54
55 - job-template:
56     name: 'integration-distribution-test-{stream}'
57
58     project-type: freestyle
59     node: centos7-robot-2c-2g
60
61     properties:
62       - opendaylight-infra-properties:
63           build-days-to-keep: '{build-days-to-keep}'
64
65     parameters:
66       - integration-bundle-url:
67           bundle-url: '{bundle-url}'
68       - distribution-karaf-version:
69           karaf-version: '{karaf-version}'
70
71     builders:
72       - trigger-builds:
73           - project: '{csit-list}'
74             block: true
75             predefined-parameters: |
76               BUNDLE_URL=$BUNDLE_URL
77               KARAF_VERSION=$KARAF_VERSION
78
79     publishers:
80       - opendaylight-infra-generate-csit-status-report
81       - email-notification:
82           email-recipients: '{email-recipients}'
83           email-prefix: '[integration]'
84       - lf-infra-publish
85
86 # Template: integration-sanity-test-{stream}
87 # Goal: Verify a distribution through sanity test
88 # Operation: This template takes a distribution and passes sanity test
89
90 - job-template:
91     name: 'integration-sanity-test-{stream}'
92
93     project-type: freestyle
94     node: centos7-robot-2c-2g
95
96     properties:
97       - opendaylight-infra-properties:
98           build-days-to-keep: '{build-days-to-keep}'
99
100     parameters:
101       - integration-bundle-url:
102           bundle-url: '{bundle-url}'
103       - distribution-karaf-version:
104           karaf-version: '{karaf-version}'
105
106     builders:
107       - trigger-builds:
108           - project: '{csit-sanity-list}'
109             block: true
110             predefined-parameters: |
111               BUNDLE_URL=$BUNDLE_URL
112               KARAF_VERSION=$KARAF_VERSION
113
114     publishers:
115       - email-notification:
116           email-recipients: '{email-recipients}'
117           email-prefix: '[integration]'
118
119 # Template: integration-patch-test-{stream}
120 # Goal: Build a patch and run all available system test on a distribution containing the change
121 # Operation: This job template builds a patch, creates a distribution containing the patch, and
122 # triggers the distribution test when test-integration is used in gerrit comments
123
124 - job-template:
125     name: 'integration-patch-test-{stream}'
126
127     project-type: freestyle
128     node: centos7-java-builder-2c-8g
129
130     properties:
131       - opendaylight-infra-properties:
132           build-days-to-keep: '{build-days-to-keep}'
133
134     parameters:
135       - opendaylight-infra-parameters:
136           os-cloud: '{os-cloud}'
137           project: '$GERRIT_PROJECT'
138           branch: '{branch}'
139           refspec: '$GERRIT_REFSPEC'
140           artifacts: '{archive-artifacts}'
141       - integration-distribution-branch:
142           branch: '{branch}'
143       - distribution-karaf-version:
144           karaf-version: '{karaf-version}'
145       - integration-distribution-git-url:
146           git-url: '{git-url}'
147       - maven-exec:
148           maven-version: mvn33
149
150     scm:
151       - integration-gerrit-scm:
152           basedir: '$GERRIT_PROJECT'
153           refspec: '$GERRIT_REFSPEC'
154           branch: '{branch}'
155       - integration-distribution-scm:
156           branch: '{branch}'
157
158     wrappers:
159       - opendaylight-infra-wrappers:
160           build-timeout: '720'
161
162     triggers:
163       - gerrit:
164           server-name: '{server-name}'
165           trigger-on:
166             - comment-added-contains-event:
167                 comment-contains-value: 'test-integration'
168           projects:
169             - project-compare-type: 'ANT'
170               project-pattern: '**'
171               branches:
172                 - branch-compare-type: 'ANT'
173                   branch-pattern: '**/{branch}'
174           skip-vote:
175             successful: true
176             failed: true
177             unstable: true
178             notbuilt: true
179
180     builders:
181       - integration-rebase-gerrit-patch
182       - wipe-org-opendaylight-repo
183       - provide-maven-settings:
184           global-settings-file: 'global-settings'
185           settings-file: 'integration-settings'
186       - maven-target:
187           maven-version: 'mvn33'
188           pom: '$GERRIT_PROJECT/pom.xml'
189           goals: |
190               clean install dependency:tree -DoutputFile=dependency_tree.txt
191               -Pq
192               -Dstream={stream}
193               {opendaylight-infra-mvn-opts}
194           java-opts:
195             - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true'
196           settings: integration-settings
197           settings-type: cfp
198           global-settings: global-settings
199           global-settings-type: cfp
200       - maven-target:
201           maven-version: mvn33
202           pom: distribution/pom.xml
203           goals: |
204               clean install dependency:tree -DoutputFile=dependency_tree.txt
205               {opendaylight-infra-mvn-opts}
206           java-opts:
207             - '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true'
208           settings: integration-settings
209           settings-type: cfp
210           global-settings: global-settings
211           global-settings-type: cfp
212       - integration-upload-distribution:
213           dist-pom: distribution/pom.xml
214       - trigger-builds:
215           - project: '{csit-list}'
216             block: true
217             predefined-parameters: |
218               BUNDLE_URL=$BUNDLE_URL
219               KARAF_VERSION=$KARAF_VERSION
220
221     publishers:
222       - lf-infra-publish
223       - email-notification:
224           email-recipients: '{email-recipients}'
225           email-prefix: '[$GERRIT_PROJECT]'
226
227
228 - job-template:
229     name: 'integration-multipatch-test-{stream}'
230     # Goal: Build one or more patches and run all available system test on a distribution containing the change.
231     # Operation: This job template checks out and builds each patch provided in job parameters, creates a distribution
232     # containing these patches, and triggers the distribution test job which includes most (if not all) available
233     # CSIT jobs
234     # TODO: Move the following to appropriate readthedocs document.
235     # Recommended Sandbox usage:
236     # 0. Create this job and a CSIT job you want to run on the new .zip in Sandbox (disable timed triggers).
237     # 1. Copy the csit job name to clipboard.
238     # 2. Navigate to Sandbox page of this job.
239     # 3. Click "Configure".
240     # 4. Locate "Trigger/call builds on other projects" (under "Post Steps" tab).
241     # 5. Delete the long value of "Projects to build" field and paste the job name from clipboard (ctrl+a, ctrl+v).
242     # 6. Click "Save" button.
243     # 7. Click "Build with Parameters".
244     # yamllint disable-line rule:line-length
245     # 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
246     # 9. The multipatch job waits for the csit job to finish, so abort csit if you see something went wrong.
247     # 10. Navigate to Sandbox page of the csit job, click the run triggered from multipatch.
248     # 11. Click Parameters and copy the long value of BUNDLE_URL field to clipboard.
249     # 12. Run the same csit job woth different patchset or test options, or other csit jobs, with this BUNDLE_URL value
250     #     so you do not have to wait for multipatch build. Repeat step 12.
251     # 13. Currently, the .zip lasts 24 hours (?) so you may need to jump to step 2 (or 0) after some time.
252
253     project-type: freestyle
254     node: centos7-java-builder-8c-8g
255     jdk: '{jdk}'
256
257     properties:
258       - opendaylight-infra-properties:
259           build-days-to-keep: '{build-days-to-keep}'
260
261     parameters:
262       - patches-to-build-parameter:
263           patches_to_build: '$PATCHES_TO_BUILD'
264       - run-test-parameter:
265           run-test: 'false'
266       - integration-distribution-branch:
267           branch: '{branch}'
268       - distribution-karaf-version:
269           karaf-version: '{karaf-version}'
270       - opendaylight-infra-parameters:
271           os-cloud: '{os-cloud}'
272           project: 'integration/distribution'
273           branch: '{branch}'
274           refspec: 'refs/heads/{branch}'
275           artifacts: '{archive-artifacts}'
276       - maven-exec:
277           maven-version: mvn33
278
279     wrappers:
280       - opendaylight-infra-wrappers:
281           build-timeout: '1200'
282
283     builders:
284       - wipe-org-opendaylight-repo
285       - integration-multipatch-builder
286       - provide-maven-settings:
287           global-settings-file: 'global-settings'
288           settings-file: 'yangtools-settings'
289       - maven-target:
290           maven-version: mvn33
291           pom: patch_tester/pom.xml
292           # TODO: Make Maven options configurable. Currently tests are not skipped, everything else is.
293           goals: |
294               clean install dependency:tree -DoutputFile=dependency_tree.txt
295               -Pq
296               -Dstream={stream}
297               -Dsft.heap.max=4g
298               {opendaylight-infra-mvn-opts}
299           java-opts:
300             - '-Xmx3072m -Dmaven.compile.fork=true'
301           settings: integration-settings
302           settings-type: cfp
303           global-settings: global-settings
304           global-settings-type: cfp
305       - integration-upload-distribution:
306           dist-pom: patch_tester/distribution/pom.xml
307       - conditional-step:
308           condition-kind: boolean-expression
309           condition-expression: $RUNTEST
310           steps:
311             - trigger-builds:
312                 - project: '{csit-list}'
313                   block: true
314                   predefined-parameters: |
315                     BUNDLE_URL=$BUNDLE_URL
316                     KARAF_VERSION=$KARAF_VERSION
317
318     publishers:
319       - lf-infra-publish
320       - email-notification:
321           email-recipients: '{email-recipients}'
322           email-prefix: '[int/dist]'
323
324 - job-template:
325     name: 'integration-distribution-weekly-test-trigger-{stream}'
326
327     project-type: freestyle
328     node: centos7-robot-2c-2g
329
330     properties:
331       - opendaylight-infra-properties:
332           build-days-to-keep: '{build-days-to-keep}'
333
334     parameters:
335       - integration-bundle-url:
336           bundle-url: '{bundle-url}'
337       - distribution-karaf-version:
338           karaf-version: '{karaf-version}'
339
340     triggers:
341       - timed: '{schedule-weekly}'
342
343     builders:
344       - trigger-builds:
345           - project: '{csit-weekly-list}'
346             block: true
347             predefined-parameters: |
348               BUNDLE_URL=$BUNDLE_URL
349               KARAF_VERSION=$KARAF_VERSION
350
351     publishers:
352       - email-notification:
353           email-recipients: '{email-recipients}'
354           email-prefix: '[integration]'
355
356 - job-template:
357     name: 'integration-distribution-high-frequency-test-trigger-{stream}'
358
359     project-type: freestyle
360     node: centos7-robot-2c-2g
361
362     properties:
363       - opendaylight-infra-properties:
364           build-days-to-keep: '{build-days-to-keep}'
365
366     parameters:
367       - integration-bundle-url:
368           bundle-url: '{bundle-url}'
369       - distribution-karaf-version:
370           karaf-version: '{karaf-version}'
371
372     triggers:
373       - timed: '{schedule-high-frequency}'
374
375     builders:
376       - trigger-builds:
377           - project: '{csit-high-frequency-list}'
378             block: true
379             predefined-parameters: |
380               BUNDLE_URL=$BUNDLE_URL
381               KARAF_VERSION=$KARAF_VERSION
382
383     publishers:
384       - email-notification:
385           email-recipients: '{email-recipients}'
386           email-prefix: '[integration]'
387
388 - job-template:
389     name: 'integration-update-csit-tests-{stream}'
390
391     # This job's purpose is to update csit
392     # tests to run in integration-distribution-test-{stream}
393     # by updating integration files: csit-list-carbon.inc,
394     # csit-list-boron.inc, csit-list-beryllium.inc
395     # These files can be used as !include in int-dist-test-{stream}
396
397     ######################
398     # Default parameters #
399     ######################
400
401     git-url: '$GIT_URL/$PROJECT'
402     submodule-recursive: true
403
404     #####################
405     # Job Configuration #
406     #####################
407
408     project-type: freestyle
409     node: centos7-java-builder-2c-4g
410
411     properties:
412       - lf-infra-properties:
413           build-days-to-keep: 7
414
415     parameters:
416       - lf-infra-parameters:
417           project: releng/builder  # Hardcode as this job needs to pull releng/builder
418           stream: '{stream}'
419           branch: master  # Hardcode as releng/builder only has master
420           lftools-version: '{lftools-version}'
421       - string:
422           name: CSIT_BLACKLIST
423           default: '{csit-blacklist}'
424           description: Space separated list of jobs strings to blacklist.
425
426     scm:
427       - lf-infra-gerrit-scm:
428           jenkins-ssh-credential: '{jenkins-ssh-credential}'
429           git-url: '{git-url}'
430           refspec: '$GERRIT_REFSPEC'
431           branch: '$GERRIT_BRANCH'
432           submodule-recursive: '{submodule-recursive}'
433           choosing-strategy: default
434
435     wrappers:
436       - lf-infra-wrappers:
437           build-timeout: 10
438           jenkins-ssh-credential: '{jenkins-ssh-credential}'
439
440     triggers:
441       - reverse:
442           jobs: builder-jjb-merge
443
444     builders:
445       - shell: !include-raw-escape: update-csit-tests.sh
446       - shell: |
447           git status
448           git add jjb/integration/*.lst
449       - opendaylight-infra-push-gerrit-patch:
450           project: "releng/builder"
451           gerrit-topic: "auto-update-csit-jobs-{stream}"
452           gerrit-commit-message: "Auto Update CSIT Jobs to run for {stream}"
453
454     publishers:
455       - lf-infra-publish