Add support for Managed Script Plugin

https://wiki.jenkins-ci.org/display/JENKINS/Managed+Script+Plugin

Change-Id: Ic37f02886f242f5ff31a7421e699b85227c5264f
This commit is contained in:
Dzmitry Horbach 2014-06-10 17:49:27 +03:00
parent 3696fdaba2
commit 15282bdd3d
6 changed files with 85 additions and 0 deletions

@ -1174,3 +1174,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

@ -51,6 +51,7 @@ jenkins_jobs.builders =
gradle=jenkins_jobs.modules.builders:gradle
grails=jenkins_jobs.modules.builders:grails
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

@ -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>

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

@ -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>

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