Merge "gitlab trigger: Support new "trigger-open-merge-request-push" options"
This commit is contained in:
@@ -30,6 +30,7 @@ Example::
|
||||
"""
|
||||
|
||||
import logging
|
||||
import pkg_resources
|
||||
import re
|
||||
import xml.etree.ElementTree as XML
|
||||
|
||||
@@ -1059,14 +1060,22 @@ def gitlab_merge_request(parser, xml_parent, data):
|
||||
def gitlab(parser, xml_parent, data):
|
||||
"""yaml: gitlab
|
||||
Makes Jenkins act like a GitlabCI server
|
||||
Requires the Jenkins :jenkins-wiki:`Gitlab Plugin.
|
||||
<Gitlab+Plugin>`.
|
||||
Requires the Jenkins :jenkins-wiki:`GitLab Plugin
|
||||
<GitLab+Plugin>`.
|
||||
|
||||
:arg bool trigger-push: Build on Push Events (default true)
|
||||
:arg bool trigger-merge-request: Build on Merge Request Events (default
|
||||
True)
|
||||
:arg bool trigger-open-merge-request-push: Rebuild open Merge Requests on
|
||||
Push Events (default true)
|
||||
:arg str trigger-open-merge-request-push: Rebuild open Merge Requests
|
||||
on Push Events.
|
||||
|
||||
:trigger-open-merge-request-push values (< 1.1.26):
|
||||
* **true** (default)
|
||||
* **false**
|
||||
:trigger-open-merge-request-push values (>= 1.1.26):
|
||||
* **never** (default)
|
||||
* **source**
|
||||
* **both**
|
||||
:arg bool ci-skip: Enable [ci-skip] (default true)
|
||||
:arg bool set-build-description: Set build description to build cause
|
||||
(eg. Merge request or Git Push ) (default true)
|
||||
@@ -1082,10 +1091,20 @@ def gitlab(parser, xml_parent, data):
|
||||
:arg list exclude-branches: Defined list of branches to exclude
|
||||
(default [])
|
||||
|
||||
Example:
|
||||
Example (version < 1.1.26):
|
||||
|
||||
.. literalinclude::
|
||||
/../../tests/triggers/fixtures/gitlab001.yaml
|
||||
.. literalinclude:: /../../tests/triggers/fixtures/gitlab001.yaml
|
||||
:language: yaml
|
||||
|
||||
Minimal example (version >= 1.1.26):
|
||||
|
||||
.. literalinclude:: /../../tests/triggers/fixtures/gitlab005.yaml
|
||||
:language: yaml
|
||||
|
||||
Full example (version >= 1.1.26):
|
||||
|
||||
.. literalinclude:: /../../tests/triggers/fixtures/gitlab004.yaml
|
||||
:language: yaml
|
||||
"""
|
||||
def _add_xml(elem, name, value):
|
||||
XML.SubElement(elem, name).text = value
|
||||
@@ -1093,29 +1112,37 @@ def gitlab(parser, xml_parent, data):
|
||||
gitlab = XML.SubElement(
|
||||
xml_parent, 'com.dabsquared.gitlabjenkins.GitLabPushTrigger'
|
||||
)
|
||||
plugin_info = parser.registry.get_plugin_info('GitLab Plugin')
|
||||
plugin_ver = pkg_resources.parse_version(plugin_info.get('version', "0"))
|
||||
valid_merge_request = ['never', 'source', 'both']
|
||||
|
||||
bool_mapping = (
|
||||
if plugin_ver >= pkg_resources.parse_version("1.1.26"):
|
||||
mapping = [
|
||||
('trigger-open-merge-request-push',
|
||||
'triggerOpenMergeRequestOnPush', 'never', valid_merge_request)]
|
||||
convert_mapping_to_xml(gitlab, data, mapping, fail_required=True)
|
||||
else:
|
||||
mapping = [
|
||||
('trigger-open-merge-request-push',
|
||||
'triggerOpenMergeRequestOnPush', True)]
|
||||
convert_mapping_to_xml(gitlab, data, mapping, fail_required=True)
|
||||
|
||||
XML.SubElement(gitlab, 'spec').text = ''
|
||||
bool_mapping = [
|
||||
('trigger-push', 'triggerOnPush', True),
|
||||
('trigger-merge-request', 'triggerOnMergeRequest', True),
|
||||
('trigger-open-merge-request-push', 'triggerOpenMergeRequestOnPush',
|
||||
True),
|
||||
('ci-skip', 'ciSkip', True),
|
||||
('set-build-description', 'setBuildDescription', True),
|
||||
('add-note-merge-request', 'addNoteOnMergeRequest', True),
|
||||
('add-vote-merge-request', 'addVoteOnMergeRequest', True),
|
||||
('add-ci-message', 'addCiMessage', False),
|
||||
('allow-all-branches', 'allowAllBranches', False),
|
||||
)
|
||||
]
|
||||
list_mapping = (
|
||||
('include-branches', 'includeBranchesSpec', []),
|
||||
('exclude-branches', 'excludeBranchesSpec', []),
|
||||
)
|
||||
|
||||
XML.SubElement(gitlab, 'spec').text = ''
|
||||
|
||||
for yaml_name, xml_name, default_val in bool_mapping:
|
||||
value = str(data.get(yaml_name, default_val)).lower()
|
||||
_add_xml(gitlab, xml_name, value)
|
||||
convert_mapping_to_xml(gitlab, data, bool_mapping, fail_required=True)
|
||||
|
||||
for yaml_name, xml_name, default_val in list_mapping:
|
||||
value = ', '.join(data.get(yaml_name, default_val))
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<project>
|
||||
<triggers class="vector">
|
||||
<com.dabsquared.gitlabjenkins.GitLabPushTrigger>
|
||||
<triggerOpenMergeRequestOnPush>true</triggerOpenMergeRequestOnPush>
|
||||
<spec/>
|
||||
<triggerOnPush>true</triggerOnPush>
|
||||
<triggerOnMergeRequest>true</triggerOnMergeRequest>
|
||||
<triggerOpenMergeRequestOnPush>true</triggerOpenMergeRequestOnPush>
|
||||
<ciSkip>true</ciSkip>
|
||||
<setBuildDescription>true</setBuildDescription>
|
||||
<addNoteOnMergeRequest>true</addNoteOnMergeRequest>
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<project>
|
||||
<triggers class="vector">
|
||||
<com.dabsquared.gitlabjenkins.GitLabPushTrigger>
|
||||
<triggerOpenMergeRequestOnPush>true</triggerOpenMergeRequestOnPush>
|
||||
<spec/>
|
||||
<triggerOnPush>true</triggerOnPush>
|
||||
<triggerOnMergeRequest>true</triggerOnMergeRequest>
|
||||
<triggerOpenMergeRequestOnPush>true</triggerOpenMergeRequestOnPush>
|
||||
<ciSkip>true</ciSkip>
|
||||
<setBuildDescription>true</setBuildDescription>
|
||||
<addNoteOnMergeRequest>true</addNoteOnMergeRequest>
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<project>
|
||||
<triggers class="vector">
|
||||
<com.dabsquared.gitlabjenkins.GitLabPushTrigger>
|
||||
<triggerOpenMergeRequestOnPush>true</triggerOpenMergeRequestOnPush>
|
||||
<spec/>
|
||||
<triggerOnPush>true</triggerOnPush>
|
||||
<triggerOnMergeRequest>true</triggerOnMergeRequest>
|
||||
<triggerOpenMergeRequestOnPush>true</triggerOpenMergeRequestOnPush>
|
||||
<ciSkip>true</ciSkip>
|
||||
<setBuildDescription>true</setBuildDescription>
|
||||
<addNoteOnMergeRequest>true</addNoteOnMergeRequest>
|
||||
|
||||
3
tests/triggers/fixtures/gitlab004.plugins_info.yaml
Normal file
3
tests/triggers/fixtures/gitlab004.plugins_info.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
- longName: 'GitLab Plugin'
|
||||
shortName: 'gitlab-plugin'
|
||||
version: "1.1.26"
|
||||
19
tests/triggers/fixtures/gitlab004.xml
Normal file
19
tests/triggers/fixtures/gitlab004.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project>
|
||||
<triggers class="vector">
|
||||
<com.dabsquared.gitlabjenkins.GitLabPushTrigger>
|
||||
<triggerOpenMergeRequestOnPush>both</triggerOpenMergeRequestOnPush>
|
||||
<spec/>
|
||||
<triggerOnPush>false</triggerOnPush>
|
||||
<triggerOnMergeRequest>false</triggerOnMergeRequest>
|
||||
<ciSkip>false</ciSkip>
|
||||
<setBuildDescription>false</setBuildDescription>
|
||||
<addNoteOnMergeRequest>false</addNoteOnMergeRequest>
|
||||
<addVoteOnMergeRequest>false</addVoteOnMergeRequest>
|
||||
<addCiMessage>true</addCiMessage>
|
||||
<allowAllBranches>true</allowAllBranches>
|
||||
<includeBranchesSpec>master, master2, local-test</includeBranchesSpec>
|
||||
<excludeBranchesSpec>broken-test, master-foo</excludeBranchesSpec>
|
||||
</com.dabsquared.gitlabjenkins.GitLabPushTrigger>
|
||||
</triggers>
|
||||
</project>
|
||||
18
tests/triggers/fixtures/gitlab004.yaml
Normal file
18
tests/triggers/fixtures/gitlab004.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
triggers:
|
||||
- gitlab:
|
||||
trigger-push: false
|
||||
trigger-merge-request: false
|
||||
trigger-open-merge-request-push: both
|
||||
ci-skip: false
|
||||
set-build-description: false
|
||||
add-note-merge-request: false
|
||||
add-vote-merge-request: false
|
||||
add-ci-message: true
|
||||
allow-all-branches: true
|
||||
include-branches:
|
||||
- 'master'
|
||||
- 'master2'
|
||||
- 'local-test'
|
||||
exclude-branches:
|
||||
- 'broken-test'
|
||||
- 'master-foo'
|
||||
3
tests/triggers/fixtures/gitlab005.plugins_info.yaml
Normal file
3
tests/triggers/fixtures/gitlab005.plugins_info.yaml
Normal file
@@ -0,0 +1,3 @@
|
||||
- longName: 'GitLab Plugin'
|
||||
shortName: 'gitlab-plugin'
|
||||
version: "1.1.26"
|
||||
19
tests/triggers/fixtures/gitlab005.xml
Normal file
19
tests/triggers/fixtures/gitlab005.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project>
|
||||
<triggers class="vector">
|
||||
<com.dabsquared.gitlabjenkins.GitLabPushTrigger>
|
||||
<triggerOpenMergeRequestOnPush>never</triggerOpenMergeRequestOnPush>
|
||||
<spec/>
|
||||
<triggerOnPush>true</triggerOnPush>
|
||||
<triggerOnMergeRequest>true</triggerOnMergeRequest>
|
||||
<ciSkip>true</ciSkip>
|
||||
<setBuildDescription>true</setBuildDescription>
|
||||
<addNoteOnMergeRequest>true</addNoteOnMergeRequest>
|
||||
<addVoteOnMergeRequest>true</addVoteOnMergeRequest>
|
||||
<addCiMessage>false</addCiMessage>
|
||||
<allowAllBranches>false</allowAllBranches>
|
||||
<includeBranchesSpec/>
|
||||
<excludeBranchesSpec/>
|
||||
</com.dabsquared.gitlabjenkins.GitLabPushTrigger>
|
||||
</triggers>
|
||||
</project>
|
||||
2
tests/triggers/fixtures/gitlab005.yaml
Normal file
2
tests/triggers/fixtures/gitlab005.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
triggers:
|
||||
- gitlab
|
||||
Reference in New Issue
Block a user