gerrit: Support gerrit-trigger >= 2.6.0.
Gerrit-trigger offers different triggers, stored in config file using different formats. During development of version 2.6.0, the following markup was used[1]: <triggerOnPatchsetUploadedEvent>true</triggerOnPatchsetUploadedEvent> <triggerOnChangeMergedEvent>true</triggerOnChangeMergedEvent> <triggerOnCommentAddedEvent>false</triggerOnCommentAddedEvent> <triggerOnRefUpdatedEvent>false</triggerOnRefUpdatedEvent> That markup changed before the release of 2.6.0 [2] to: <triggerOnEvents> <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginPatchsetCreatedEvent/> <com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.events.PluginChangeRestoredEvent/> </triggerOnEvents> Adjust the generated XML tree to match what gerrit-trigger expects. This means that gerrit-trigger versions < 2.6.0 are no longer supported. Trigger on draft published, added in 2.6.0, is now supported. [1] Commit 8bee93a87b59d413ccec0aa84d3da10adb108eb9 [2] Commit 9ba008972a84e3ca8b2a90bd6d21295e7d7f4f94 Change-Id: I7160de1284c53d20f435e5af0d5a64b2e17c4196 Reviewed-on: https://review.openstack.org/24263 Reviewed-by: James E. Blair <corvus@inaugust.com> Reviewed-by: Jeremy Stanley <fungi@yuggoth.org> Reviewed-by: Anita Kuno <akuno@lavabit.com> Approved: Jeremy Stanley <fungi@yuggoth.org> Tested-by: Jenkins
This commit is contained in:
parent
2370375aee
commit
e0787f2815
|
@ -34,15 +34,42 @@ import xml.etree.ElementTree as XML
|
|||
import jenkins_jobs.modules.base
|
||||
|
||||
|
||||
def build_gerrit_triggers(xml_parent, data):
|
||||
available_simple_triggers = {
|
||||
'triggerOnChangeMergedEvent': 'PluginChangeMergedEvent',
|
||||
'triggerOnDraftPublishedEvent': 'PluginDraftPublishedEvent',
|
||||
'triggerOnPatchsetUploadedEvent': 'PluginPatchsetCreatedEvent',
|
||||
'triggerOnRefUpdatedEvent': 'PluginRefUpdatedEvent',
|
||||
}
|
||||
tag_namespace = 'com.sonyericsson.hudson.plugins.gerrit.trigger.' \
|
||||
'hudsontrigger.events'
|
||||
|
||||
trigger_on_events = XML.SubElement(xml_parent, 'triggerOnEvents')
|
||||
for config_key, tag_name in available_simple_triggers.iteritems():
|
||||
if data.get(config_key, False):
|
||||
XML.SubElement(trigger_on_events,
|
||||
'%s.%s' % (tag_namespace, tag_name))
|
||||
|
||||
if data.get('triggerOnCommentAddedEvent', False):
|
||||
cadded = XML.SubElement(trigger_on_events,
|
||||
'%s.%s' % (tag_namespace,
|
||||
'PluginCommentAddedEvent'))
|
||||
XML.SubElement(cadded, 'verdictCategory').text = \
|
||||
data['triggerApprovalCategory']
|
||||
XML.SubElement(cadded, 'commentAddedTriggerApprovalValue').text = \
|
||||
str(data['triggerApprovalValue'])
|
||||
|
||||
|
||||
def gerrit(parser, xml_parent, data):
|
||||
"""yaml: gerrit
|
||||
Trigger on a Gerrit event.
|
||||
Requires the Jenkins `Gerrit Trigger Plugin.
|
||||
<wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger>`_
|
||||
Requires the Jenkins `Gerrit Trigger Plugin
|
||||
<wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger>`_ version >= 2.6.0.
|
||||
|
||||
:arg bool triggerOnPatchsetUploadedEvent: Trigger on patchset upload
|
||||
:arg bool triggerOnChangeMergedEvent: Trigger on change merged
|
||||
:arg bool triggerOnCommentAddedEvent: Trigger on comment added
|
||||
:arg bool triggerOnDraftPublishedEvent: Trigger on draft published event.
|
||||
:arg bool triggerOnRefUpdatedEvent: Trigger on ref-updated
|
||||
:arg str triggerApprovalCategory: Approval category for comment added
|
||||
:arg int triggerApprovalValue: Approval value for comment added
|
||||
|
@ -98,24 +125,12 @@ def gerrit(parser, xml_parent, data):
|
|||
XML.SubElement(gbranch, 'pattern').text = project['branchPattern']
|
||||
XML.SubElement(gtrig, 'silentMode').text = 'false'
|
||||
XML.SubElement(gtrig, 'escapeQuotes').text = 'true'
|
||||
XML.SubElement(gtrig, 'triggerOnPatchsetUploadedEvent').text = \
|
||||
str(data['triggerOnPatchsetUploadedEvent']).lower()
|
||||
XML.SubElement(gtrig, 'triggerOnChangeMergedEvent').text = \
|
||||
str(data['triggerOnChangeMergedEvent']).lower()
|
||||
XML.SubElement(gtrig, 'triggerOnCommentAddedEvent').text = \
|
||||
str(data['triggerOnCommentAddedEvent']).lower()
|
||||
XML.SubElement(gtrig, 'triggerOnRefUpdatedEvent').text = \
|
||||
str(data['triggerOnRefUpdatedEvent']).lower()
|
||||
build_gerrit_triggers(gtrig, data)
|
||||
if 'overrideVotes' in data and data['overrideVotes'] == 'true':
|
||||
XML.SubElement(gtrig, 'gerritBuildSuccessfulVerifiedValue').text = \
|
||||
str(data['gerritBuildSuccessfulVerifiedValue'])
|
||||
XML.SubElement(gtrig, 'gerritBuildFailedVerifiedValue').text = \
|
||||
str(data['gerritBuildFailedVerifiedValue'])
|
||||
if data['triggerOnCommentAddedEvent']:
|
||||
XML.SubElement(gtrig, 'commentAddedTriggerApprovalCategory').text = \
|
||||
data['triggerApprovalCategory']
|
||||
XML.SubElement(gtrig, 'commentAddedTriggerApprovalValue').text = \
|
||||
str(data['triggerApprovalValue'])
|
||||
XML.SubElement(gtrig, 'buildStartMessage')
|
||||
XML.SubElement(gtrig, 'buildFailureMessage').text = data['failureMessage']
|
||||
XML.SubElement(gtrig, 'buildSuccessfulMessage')
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
- gerrit:
|
||||
triggerOnChangeMergedEvent: true
|
||||
triggerOnCommentAddedEvent: true
|
||||
triggerOnDraftPublishedEvent: true
|
||||
triggerOnPatchsetUploadedEvent: true
|
||||
triggerOnRefUpdatedEvent: false
|
||||
triggerApprovalCategory: CRVW
|
||||
|
|
Loading…
Reference in New Issue