2 name: integration-branch
7 description: 'Distribution GIT branch'
10 name: integration-bundleurl
14 default: '{bundleurl}'
15 description: 'URL to karaf distribution zip'
18 name: integration-jdk-version
22 default: '{jdkversion}'
23 description: 'Parameter to indicate JAVA Version'
26 name: integration-controller-scope
30 default: '{controller-scope}'
31 description: 'Feature Only or Feature All test'
34 name: integration-controller-features
37 name: CONTROLLERFEATURES
38 default: '{controller-features}'
39 description: 'Features to install in the controller separated by comma'
42 name: integration-distribution-stream
47 description: 'Distribution stream string, for suites to know which behavior to expect'
50 name: integration-stream-test-plan
54 default: '{stream-test-plan}'
55 description: 'Stream-specific test plan we will run'
58 name: integration-test-plan
62 default: '{test-plan}'
63 description: 'General test plan we will run unless stream-specific one is found'
66 name: integration-test-options
70 default: '{test-options}'
71 description: 'Robot command options'
74 name: integration-distribution-git-url
78 default: '{git-url}/integration/distribution'
79 description: 'Distribution GIT URL (do not modify)'
82 name: integration-patch-refspec
87 description: 'Integration Patch Refspec'
89 # Macro: integration-gerrit-scm
90 # Operation: this macro downloads a project gerrit
91 # Used by: all csit jobs
94 name: integration-gerrit-scm
97 credentials-id: 'opendaylight-jenkins-ssh'
104 choosing-strategy: 'gerrit'
106 # Macro: integration-distribution-scm
107 # Operation: this macro downloads the integration/distribution repo using distribution as basedir
108 # Used by: integration-patch-test-{stream} job template
111 name: integration-distribution-scm
114 credentials-id: 'opendaylight-jenkins-ssh'
115 basedir: 'distribution'
122 # Macro: integration-trigger-patch-submitted
123 # This is a single macro to use for all csit jobs who vote on every (relevant) patch set.
124 # Only 'recheck' trigger word is supported, it always triggers the full set of relevant jobs,
125 # in order to prevent Jenkins from starting only a subset and still voting Verified+1.
126 # Contrary to gerrit-trigger-patch-submitted, this votes +1 also on unstable runs.
128 # server: name of gerrit server to listen to
129 # project: pattern to match triggering projects
130 # branch: triggering branch name
131 # files: pattern to match triggering filepaths
133 name: integration-trigger-patch-submitted
136 server-name: '{server}'
138 - patchset-created-event:
139 exclude-drafts: 'true'
140 exclude-trivial-rebase: 'false'
141 exclude-no-code-change: 'true'
142 - draft-published-event
143 - comment-added-contains-event:
144 comment-contains-value: 'recheck'
146 gerrit-build-unstable-verified-value: +1
147 gerrit-build-unstable-codereview-value: 0
149 - project-compare-type: 'ANT'
150 project-pattern: '{project}'
152 - branch-compare-type: 'ANT'
153 branch-pattern: '**/{branch}'
155 - compare-type: 'ANT'
158 # Macro: integration-openstack-controller-mininet
159 # Operation: this macro will spin the controller and mininet vms
160 # Used by: {project}-csit-* job templates
163 name: integration-openstack-controller-mininet
167 - cloud-name: 'ODLRPC'
168 template-name: '{controller-image}'
169 count: '{controller-vms}'
170 - cloud-name: 'ODLRPC'
171 template-name: '{mininet-image}'
172 count: '{mininet-vms}'
174 # Macro: integration-openstack-controller-devstack
175 # Operation: this macro will spin the controller and devstack vms
176 # Used by: {project}-csit-openstack job templates
178 name: integration-openstack-controller-devstack
182 - cloud-name: 'ODLRPC'
183 template-name: '{controller-image}'
184 count: '{controller-vms}'
185 - cloud-name: 'ODLRPC'
186 template-name: '{openstack-image}'
187 count: '{openstack-vms}'
193 # Macro: integration-infra-stack
194 # Operation: Sets environment and then calls opendaylight-infra-stack to spin
195 # up csit lab using openstack-heat.
196 # Used by: {project}-csit-* job templates
199 name: integration-infra-stack
201 - integration-cleanup-workspace
204 # Setup openstack envirnoment file for use by
205 # the opendaylight-infra-stack macro
206 cat > $WORKSPACE/opendaylight-infra-environment.yaml << EOF
208 vm_0_count: {vm_0_count}
209 vm_0_flavor: {vm_0_flavor}
210 vm_0_image: {vm_0_image}
211 vm_1_count: {vm_1_count}
212 vm_1_flavor: {vm_1_flavor}
213 vm_1_image: {vm_1_image}
215 echo "Contents of opendaylight-infra-environment.yaml ..."
216 cat $WORKSPACE/opendaylight-infra-environment.yaml
217 - opendaylight-infra-stack:
218 stack-template: '{stack-template}'
220 # Macro: integration-get-slave-addresses
221 # Operation: this macro gets the IP addresses of the dynamic vms
222 # Used by: {project}-csit-* job templates
225 name: integration-get-slave-addresses
229 - include-raw-integration-get-slave-addresses.sh
231 # Macro: integration-get-bundle-vars
232 # Operation: this macro gets all bundle related variables
233 # Used by: {project}-csit-3node-* job templates
236 name: integration-get-bundle-vars
240 - include-raw-integration-get-bundle-vars.sh
242 # Macro: integration-distribution-check
243 # Operation: this macro deploys the controller with all fetures
244 # Used by: {project}-distribution-check-{stream} job template
247 name: integration-distribution-check
251 - include-raw-integration-distribution-check.sh
253 # Macro: integration-deploy-controller-verify
254 # Operation: this macro deploys the controller with all fetures
255 # Used by: integration-distribution-deploy-{stream} job template
258 name: integration-deploy-controller-verify
262 - include-raw-integration-deploy-controller-verify.sh
264 # Macro: integration-deploy-controller-offline
265 # Operation: this macro deploys the controller with no external repo configuration
266 # Used by: integration-distrbution-offline-{stream} job template
269 name: integration-deploy-controller-offline
273 - include-raw-integration-deploy-controller-offline.sh
275 # Macro: integration-deply-controller-run-test
276 # Operation: this macro deploys single contoller and runs test
277 # Used by: {project}-csit-1node-* job templates
280 name: integration-deploy-controller-run-test
284 - include-raw-integration-deploy-controller-run-test.sh
286 # Macro: integration-configure-clustering
287 # Operation: this macro configures the clustering
288 # Used by: {project}-csit-3node-* job templates
291 name: integration-configure-clustering
295 - include-raw-integration-configure-clustering.sh
297 # Macro: integration-start-cluster-run-test
298 # Operation: this macro starts the 3-node cluster and runs test
299 # Used by: {project}-csit-3node-* job templates
302 name: integration-start-cluster-run-test
306 - include-raw-integration-start-cluster-run-test.sh
308 # Macro: integration-get-bundle-url
309 # Operation: this macro gets the job generated distribution URL from distribution pom.xml
310 # Used by: integration-patch-test-{stream} job template
313 name: integration-get-bundle-url
317 - include-raw-integration-get-bundle-url.sh
319 # Macro: integration-get-bundle-url-root
320 # Operation: this macro gets the job generated distribution URL from root pom.xml
321 # Used by: integration-distribution-verify-{stream} job template
324 name: integration-get-bundle-url-root
328 - include-raw-integration-get-bundle-url-root.sh
330 # Macro: integration-install-robotframework
331 # Operation: Installs robotframework using pip to a virtualenv
332 # Used by: {project}-csit-* job templates
335 name: integration-install-robotframework
339 - include-raw-integration-install-robotframework.sh
341 # Macro: integration-cleanup-tmp
342 # Operation: Cleans up temporary files created by build
343 # Used by: {project}-csit-* job templates
346 name: integration-cleanup-tmp
350 - include-raw-integration-cleanup-tmp.sh
352 # Macro: integration-multipatch-builder
353 # Operation: checks out multiple patches and builds custom distribution
354 # Used by: integration-multipatch-test-* job templates
357 name: integration-multipatch-builder
361 - include-raw-integration-multipatch-distribution-test.sh
363 # Macro: integration-cleanup-workspace
364 # Operation: Cleans up files possibly left there by the previous build
365 # Used by: {project}-csit-* job templates
368 name: integration-cleanup-workspace
372 - include-raw-integration-cleanup-workspace.sh
374 # Macro: integration-rebase-patch
375 # Operation: For cloned project, rebase checked-out Gerrit patch onto $BRANCH.
376 # Used by: integration-patch-distribution-* job template
379 name: integration-rebase-gerrit-patch
383 - include-raw-integration-rebase-gerrit-patch.sh
386 name: integration-deploy-openstack-run-test
390 - include-raw-integration-deploy-openstack-run-test.sh
392 # Macro: integration-list-jobs
393 # Operation: queries Jenkins jobs from jenkins.opendaylight.org and
394 # writes a list of the jobs corresponding to the search terms to a file.
395 # Used by: builder-merge job template
397 # This script requires the following JJB variables to be passed in:
398 # {search_string} Job type to act as a primary filter (e.g. csit)
399 # {blacklist} List of sub-projects to filter out (e.g. longevity)
400 # {stream} Development release name (e.g. boron)
401 # {jobs-filename} Filename to write list into (e.g. carbon-jobs.lst)
404 name: integration-list-jobs
408 - include-raw-integration-list-jobs.sh
410 # Macro: integration-replace-block-text
411 # Operation: using starting and ending regex to
412 # replace a block of text in a file with the text in
413 # another file. Regex should be basic and work with sed
414 # Used by: builder-merge job template
416 # This script requires the following JJB variables to be passed in:
419 # {file-with-changes-to-insert}
423 name: integration-replace-block-text
427 - include-raw-integration-replace-block-text.sh
433 # Macro: integration-robot
434 # Operation: this macro publishes robot results
435 # Used by: {project}-csit-* job templates
438 name: integration-robot
443 unstable-threshold: '{unstable-if}'
444 pass-threshold: '{pass-if}'
448 name: integration-robot-tempest
453 - tempest_results.html
454 unstable-threshold: '{unstable-if}'
455 pass-threshold: '{pass-if}'
459 name: integration-csit-archive-build
465 mkdir -p $WORKSPACE/archives
466 curl --output robot-plugin.zip "$BUILD_URL/robot/report/*zip*/robot-plugin.zip"
467 unzip -d $WORKSPACE/archives robot-plugin.zip
468 mv *log* *.log *.log.gz *.csv *.png $WORKSPACE/archives || true # Don't fail if file missing
469 script-only-if-succeeded: False
470 script-only-if-failed: False
471 mark-unstable-if-failed: True