Merge "Add support for Managed Script Plugin"

This commit is contained in:
Jenkins 2014-07-10 16:36:49 +00:00 committed by Gerrit Code Review
commit 4e2e22959f
6 changed files with 85 additions and 0 deletions

View File

@ -1290,3 +1290,49 @@ def shining_panda(parser, xml_parent, data):
XML.SubElement(t, 'command').text = data.get("command", "")
ignore_exit_code = data.get('ignore-exit-code', False)
XML.SubElement(t, 'ignoreExitCode').text = str(ignore_exit_code).lower()
def managed_script(parser, xml_parent, data):
"""yaml: managed-script
This step allows to reference and execute a centrally managed
script within your build. Requires the Jenkins `Managed Script Plugin.
<https://wiki.jenkins-ci.org/display/JENKINS/Managed+Script+Plugin>`_
:arg str script-id: Id of script to execute (Required)
:arg str type: Type of managed file (default: script)
:type values:
* **batch**: Execute managed windows batch
* **script**: Execute managed script
:arg list args: Arguments to be passed to referenced script
Example:
.. literalinclude:: /../../tests/builders/fixtures/managed-script.yaml
:language: yaml
.. literalinclude:: /../../tests/builders/fixtures/managed-winbatch.yaml
:language: yaml
"""
step_type = data.get('type', 'script').lower()
if step_type == 'script':
step = 'ScriptBuildStep'
script_tag = 'buildStepId'
elif step_type == 'batch':
step = 'WinBatchBuildStep'
script_tag = 'command'
else:
raise JenkinsJobsException("type entered is not valid must be "
"one of: script or batch")
ms = XML.SubElement(xml_parent,
'org.jenkinsci.plugins.managedscripts.' + step)
try:
script_id = data['script-id']
except KeyError:
raise JenkinsJobsException("A script-id is required for "
"managed-script")
XML.SubElement(ms, script_tag).text = script_id
args = XML.SubElement(ms, 'buildStepArgs')
for arg in data.get('args', []):
XML.SubElement(args, 'string').text = arg

View File

@ -52,6 +52,7 @@ jenkins_jobs.builders =
grails=jenkins_jobs.modules.builders:grails
groovy=jenkins_jobs.modules.builders:groovy
inject=jenkins_jobs.modules.builders:inject
managed-script=jenkins_jobs.modules.builders:managed_script
maven-target=jenkins_jobs.modules.builders:maven_target
msbuild=jenkins_jobs.modules.builders:msbuild
multijob=jenkins_jobs.modules.builders:multijob

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<builders>
<org.jenkinsci.plugins.managedscripts.ScriptBuildStep>
<buildStepId>org.jenkinsci.plugins.managedscripts.ScriptConfig1401886156431</buildStepId>
<buildStepArgs>
<string>arg1</string>
<string>arg2</string>
</buildStepArgs>
</org.jenkinsci.plugins.managedscripts.ScriptBuildStep>
</builders>
</project>

View File

@ -0,0 +1,7 @@
builders:
- managed-script:
script-id: org.jenkinsci.plugins.managedscripts.ScriptConfig1401886156431
type: script
args:
- arg1
- arg2

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<builders>
<org.jenkinsci.plugins.managedscripts.WinBatchBuildStep>
<command>org.jenkinsci.plugins.managedscripts.WinBatchConfig1402391729132</command>
<buildStepArgs>
<string>arg1</string>
<string>arg2</string>
</buildStepArgs>
</org.jenkinsci.plugins.managedscripts.WinBatchBuildStep>
</builders>
</project>

View File

@ -0,0 +1,7 @@
builders:
- managed-script:
script-id: org.jenkinsci.plugins.managedscripts.WinBatchConfig1402391729132
type: batch
args:
- arg1
- arg2