Add support for batch_tasks.
Change-Id: I6cb6050322f07e90eadff88acab61c9ed66221fe
This commit is contained in:
parent
4ac4b88e5a
commit
2cad551ce5
@ -428,6 +428,40 @@ def build_blocker(parser, xml_parent, data):
|
|||||||
XML.SubElement(blocker, 'blockingJobs').text = jobs
|
XML.SubElement(blocker, 'blockingJobs').text = jobs
|
||||||
|
|
||||||
|
|
||||||
|
def batch_tasks(parser, xml_parent, data):
|
||||||
|
"""yaml: batch-tasks
|
||||||
|
Batch tasks can be tasks for events like releases, integration, archiving,
|
||||||
|
etc. In this way, anyone in the project team can execute them in a way that
|
||||||
|
leaves a record.
|
||||||
|
|
||||||
|
A batch task consists of a shell script and a name. When you execute
|
||||||
|
a build, the shell script gets run on the workspace, just like a build.
|
||||||
|
Batch tasks and builds "lock" the workspace, so when one of those
|
||||||
|
activities is in progress, all the others will block in the queue.
|
||||||
|
|
||||||
|
Requires the Jenkins `Batch Task Plugin.
|
||||||
|
<https://wiki.jenkins-ci.org/display/JENKINS/Batch+Task+Plugin>`_
|
||||||
|
|
||||||
|
:arg list batch-tasks: Batch tasks.
|
||||||
|
|
||||||
|
:Task: * **name** (`str`) Task name.
|
||||||
|
* **script** (`str`) Task script.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
.. literalinclude:: ../../tests/properties/fixtures/batch-task.yaml
|
||||||
|
|
||||||
|
"""
|
||||||
|
pdef = XML.SubElement(xml_parent,
|
||||||
|
'hudson.plugins.batch__task.BatchTaskProperty')
|
||||||
|
tasks = XML.SubElement(pdef, 'tasks')
|
||||||
|
for task in data:
|
||||||
|
batch_task = XML.SubElement(tasks,
|
||||||
|
'hudson.plugins.batch__task.BatchTask')
|
||||||
|
XML.SubElement(batch_task, 'name').text = task['name']
|
||||||
|
XML.SubElement(batch_task, 'script').text = task['script']
|
||||||
|
|
||||||
|
|
||||||
class Properties(jenkins_jobs.modules.base.Base):
|
class Properties(jenkins_jobs.modules.base.Base):
|
||||||
sequence = 20
|
sequence = 20
|
||||||
|
|
||||||
|
1
setup.py
1
setup.py
@ -80,6 +80,7 @@ setuptools.setup(
|
|||||||
('authenticated-build=jenkins_jobs.modules.properties:'
|
('authenticated-build=jenkins_jobs.modules.properties:'
|
||||||
'authenticated_build'),
|
'authenticated_build'),
|
||||||
'authorization=jenkins_jobs.modules.properties:authorization',
|
'authorization=jenkins_jobs.modules.properties:authorization',
|
||||||
|
'batch-tasks=jenkins_jobs.modules.properties:batch_tasks',
|
||||||
'build-blocker=jenkins_jobs.modules.properties:build_blocker',
|
'build-blocker=jenkins_jobs.modules.properties:build_blocker',
|
||||||
'extended-choice=jenkins_jobs.modules.properties:extended_choice',
|
'extended-choice=jenkins_jobs.modules.properties:extended_choice',
|
||||||
'github=jenkins_jobs.modules.properties:github',
|
'github=jenkins_jobs.modules.properties:github',
|
||||||
|
17
tests/properties/fixtures/batch-task.xml
Normal file
17
tests/properties/fixtures/batch-task.xml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" ?>
|
||||||
|
<project>
|
||||||
|
<properties>
|
||||||
|
<hudson.plugins.batch__task.BatchTaskProperty>
|
||||||
|
<tasks>
|
||||||
|
<hudson.plugins.batch__task.BatchTask>
|
||||||
|
<name>release</name>
|
||||||
|
<script>mvn -B release:prepare release:perform</script>
|
||||||
|
</hudson.plugins.batch__task.BatchTask>
|
||||||
|
<hudson.plugins.batch__task.BatchTask>
|
||||||
|
<name>say hello</name>
|
||||||
|
<script>echo "Hello world"</script>
|
||||||
|
</hudson.plugins.batch__task.BatchTask>
|
||||||
|
</tasks>
|
||||||
|
</hudson.plugins.batch__task.BatchTaskProperty>
|
||||||
|
</properties>
|
||||||
|
</project>
|
6
tests/properties/fixtures/batch-task.yaml
Normal file
6
tests/properties/fixtures/batch-task.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
properties:
|
||||||
|
- batch-tasks:
|
||||||
|
- name: release
|
||||||
|
script: mvn -B release:prepare release:perform
|
||||||
|
- name: say hello
|
||||||
|
script: echo "Hello world"
|
Loading…
Reference in New Issue
Block a user