diff --git a/jenkins_jobs/modules/properties.py b/jenkins_jobs/modules/properties.py index 1b1f4a698..1989331ac 100644 --- a/jenkins_jobs/modules/properties.py +++ b/jenkins_jobs/modules/properties.py @@ -330,6 +330,29 @@ def extended_choice(parser, xml_parent, data): 'default-property-key', '') +def priority_sorter(parser, xml_parent, data): + """yaml: priority-sorter + Allows simple ordering of builds, using a configurable job priority. + + Requires the Jenkins `Priority Sorter Plugin + `_. + + :arg int priority: Priority of the job. Higher value means higher + priority, with 100 as the standard priority. (required) + + Example:: + + properties: + - priority-sorter: + priority: 150 + """ + priority_sorter_tag = XML.SubElement(xml_parent, + 'hudson.queueSorter.' + 'PrioritySorterJobProperty') + XML.SubElement(priority_sorter_tag, 'priority').text = str( + data['priority']) + + class Properties(jenkins_jobs.modules.base.Base): sequence = 20 diff --git a/setup.py b/setup.py index d9969cd30..968a76fa6 100644 --- a/setup.py +++ b/setup.py @@ -83,6 +83,7 @@ setuptools.setup( 'authenticated_build', 'authorization=jenkins_jobs.modules.properties:authorization', 'extended-choice=jenkins_jobs.modules.properties:extended_choice', + 'priority-sorter=jenkins_jobs.modules.properties:priority_sorter', ], 'jenkins_jobs.parameters': [ 'string=jenkins_jobs.modules.parameters:string_param',