gitlab trigger: Update Gitlab to >=1.3.0

Related config changes:
1.1.26: Change triggerOpenMergeRequestOnPush to enum (721fcfdbf81493c8c05893f87048d458524d684d)
1.1.27: Adds addVoteOnMergeRequest and acceptMergeRequestOnSuccess
1.1.28<1.2.0: Adds addCiMessage
1.1.29: Change allowAllBranches to branchFilterName (4da58e696b03273a2c48a3b8c223512bd70bbc80)
1.2.0: Change branchFilterName to branchFilterType (92b79677d2ee4e592686fa39f9d3e253486e40fc)
1.2.4: Adds triggerOnNoteRequest, noteRegex and skipWorkInProgressMergeRequest

Change-Id: Ic3b29cfe43a37554b7e0ae5432ddaf8ef987793e
This commit is contained in:
Christian Fetzer 2016-07-31 15:21:59 +02:00
parent 1780551b8e
commit 7b61b011b8
9 changed files with 145 additions and 9 deletions

View File

@ -1066,13 +1066,13 @@ def gitlab_merge_request(parser, xml_parent, data):
def gitlab(parser, xml_parent, data):
"""yaml: gitlab
Makes Jenkins act like a GitlabCI server
Makes Jenkins act like a GitLab CI server.
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)
true)
:arg str trigger-open-merge-request-push: Rebuild open Merge Requests
on Push Events.
@ -1083,20 +1083,56 @@ def gitlab(parser, xml_parent, data):
* **never** (default)
* **source**
* **both**
:arg bool ci-skip: Enable [ci-skip] (default true)
:arg bool trigger-note: Build when comment is added with defined phrase
(>= 1.2.4) (default true)
:arg str note-regex: Phrase that triggers the build (>= 1.2.4) (default
'Jenkins please retry a build')
:arg bool ci-skip: Enable skipping builds of commits that contain
[ci-skip] in the commit message (default true)
:arg bool wip-skip: Enable skipping builds of WIP Merge Requests (>= 1.2.4)
(default false)
:arg bool set-build-description: Set build description to build cause
(eg. Merge request or Git Push ) (default true)
(eg. Merge request or Git Push) (default true)
:arg bool add-note-merge-request: Add note with build status on
merge requests (default true)
:arg bool add-vote-merge-request: Vote added to note with build status
on merge requests (default true)
:arg bool add-ci-message: Add CI build status (default false)
on merge requests (>= 1.1.27) (default true)
:arg bool accept-merge-request-on-success: Automatically accept the Merge
Request if the build is successful (>= 1.1.27) (default false)
:arg bool add-ci-message: Add CI build status (1.1.28 - 1.2.0) (default
false)
:arg bool allow-all-branches: Allow all branches (Ignoring Filtered
Branches) (default false)
Branches) (< 1.1.29) (default false)
:arg str branch-filter-type: Filter branches that can trigger a build.
Valid values and their additional attributes are described in the
`branch filter type`_ table (>= 1.1.29) (default 'All').
:arg list include-branches: Defined list of branches to include
(default [])
:arg list exclude-branches: Defined list of branches to exclude
(default [])
:arg str target-branch-regex: Regular expression to select branches
.. _`branch filter type`:
================== ====================================================
Branch filter type Description
================== ====================================================
All All branches are allowed to trigger this job.
NameBasedFilter Filter branches by name.
List source branches that are allowed to trigger a
build from a Push event or a Merge Request event. If
both fields are left empty, all branches are allowed
to trigger this job. For Merge Request events only
the target branch name is filtered out by the
**include-branches** and **exclude-branches** lists.
RegexBasedFilter Filter branches by regex
The target branch regex allows to limit the
execution of this job to certain branches. Any
branch matching the specified pattern in
**target-branch-regex** triggers the job. No
filtering is performed if the field is left empty.
================== ====================================================
Example (version < 1.1.26):
@ -1134,22 +1170,42 @@ def gitlab(parser, xml_parent, data):
'triggerOpenMergeRequestOnPush', True)]
convert_mapping_to_xml(gitlab, data, mapping, fail_required=True)
if plugin_ver == pkg_resources.parse_version('1.1.29'):
if data.get('branch-filter-type', '') == 'All':
data['branch-filter-type'] = ''
valid_filters = ['', 'NameBasedFilter', 'RegexBasedFilter']
mapping = [
('branch-filter-type', 'branchFilterName', '', valid_filters)]
convert_mapping_to_xml(gitlab, data, mapping, fail_required=True)
else:
valid_filters = ['All', 'NameBasedFilter', 'RegexBasedFilter']
mapping = [
('branch-filter-type', 'branchFilterType', 'All', valid_filters)]
convert_mapping_to_xml(gitlab, data, mapping, fail_required=True)
XML.SubElement(gitlab, 'spec').text = ''
bool_mapping = [
mapping = [
('trigger-push', 'triggerOnPush', True),
('trigger-merge-request', 'triggerOnMergeRequest', True),
('trigger-note', 'triggerOnNoteRequest', True),
('note-regex', 'noteRegex', 'Jenkins please retry a build'),
('ci-skip', 'ciSkip', True),
('wip-skip', 'skipWorkInProgressMergeRequest', True),
('set-build-description', 'setBuildDescription', True),
('add-note-merge-request', 'addNoteOnMergeRequest', True),
('add-vote-merge-request', 'addVoteOnMergeRequest', True),
('accept-merge-request-on-success', 'acceptMergeRequestOnSuccess',
False),
('add-ci-message', 'addCiMessage', False),
('allow-all-branches', 'allowAllBranches', False),
('target-branch-regex', 'targetBranchRegex', '')
]
list_mapping = (
('include-branches', 'includeBranchesSpec', []),
('exclude-branches', 'excludeBranchesSpec', []),
)
convert_mapping_to_xml(gitlab, data, bool_mapping, fail_required=True)
convert_mapping_to_xml(gitlab, data, mapping, fail_required=True)
for yaml_name, xml_name, default_val in list_mapping:
value = ', '.join(data.get(yaml_name, default_val))

View File

@ -3,15 +3,21 @@
<triggers class="vector">
<com.dabsquared.gitlabjenkins.GitLabPushTrigger>
<triggerOpenMergeRequestOnPush>true</triggerOpenMergeRequestOnPush>
<branchFilterType>All</branchFilterType>
<spec/>
<triggerOnPush>true</triggerOnPush>
<triggerOnMergeRequest>true</triggerOnMergeRequest>
<triggerOnNoteRequest>true</triggerOnNoteRequest>
<noteRegex>Jenkins please retry a build</noteRegex>
<ciSkip>true</ciSkip>
<skipWorkInProgressMergeRequest>true</skipWorkInProgressMergeRequest>
<setBuildDescription>true</setBuildDescription>
<addNoteOnMergeRequest>true</addNoteOnMergeRequest>
<addVoteOnMergeRequest>true</addVoteOnMergeRequest>
<acceptMergeRequestOnSuccess>false</acceptMergeRequestOnSuccess>
<addCiMessage>true</addCiMessage>
<allowAllBranches>true</allowAllBranches>
<targetBranchRegex/>
<includeBranchesSpec>master, master2, local-test</includeBranchesSpec>
<excludeBranchesSpec>broken-test, master-foo</excludeBranchesSpec>
</com.dabsquared.gitlabjenkins.GitLabPushTrigger>

View File

@ -3,15 +3,21 @@
<triggers class="vector">
<com.dabsquared.gitlabjenkins.GitLabPushTrigger>
<triggerOpenMergeRequestOnPush>true</triggerOpenMergeRequestOnPush>
<branchFilterType>All</branchFilterType>
<spec/>
<triggerOnPush>true</triggerOnPush>
<triggerOnMergeRequest>true</triggerOnMergeRequest>
<triggerOnNoteRequest>true</triggerOnNoteRequest>
<noteRegex>Jenkins please retry a build</noteRegex>
<ciSkip>true</ciSkip>
<skipWorkInProgressMergeRequest>true</skipWorkInProgressMergeRequest>
<setBuildDescription>true</setBuildDescription>
<addNoteOnMergeRequest>true</addNoteOnMergeRequest>
<addVoteOnMergeRequest>true</addVoteOnMergeRequest>
<acceptMergeRequestOnSuccess>false</acceptMergeRequestOnSuccess>
<addCiMessage>false</addCiMessage>
<allowAllBranches>false</allowAllBranches>
<targetBranchRegex/>
<includeBranchesSpec>master</includeBranchesSpec>
<excludeBranchesSpec>feature</excludeBranchesSpec>
</com.dabsquared.gitlabjenkins.GitLabPushTrigger>

View File

@ -3,15 +3,21 @@
<triggers class="vector">
<com.dabsquared.gitlabjenkins.GitLabPushTrigger>
<triggerOpenMergeRequestOnPush>true</triggerOpenMergeRequestOnPush>
<branchFilterType>All</branchFilterType>
<spec/>
<triggerOnPush>true</triggerOnPush>
<triggerOnMergeRequest>true</triggerOnMergeRequest>
<triggerOnNoteRequest>true</triggerOnNoteRequest>
<noteRegex>Jenkins please retry a build</noteRegex>
<ciSkip>true</ciSkip>
<skipWorkInProgressMergeRequest>true</skipWorkInProgressMergeRequest>
<setBuildDescription>true</setBuildDescription>
<addNoteOnMergeRequest>true</addNoteOnMergeRequest>
<addVoteOnMergeRequest>true</addVoteOnMergeRequest>
<acceptMergeRequestOnSuccess>false</acceptMergeRequestOnSuccess>
<addCiMessage>false</addCiMessage>
<allowAllBranches>false</allowAllBranches>
<targetBranchRegex/>
<includeBranchesSpec>master</includeBranchesSpec>
<excludeBranchesSpec>baz, foo, fnord</excludeBranchesSpec>
</com.dabsquared.gitlabjenkins.GitLabPushTrigger>

View File

@ -3,15 +3,21 @@
<triggers class="vector">
<com.dabsquared.gitlabjenkins.GitLabPushTrigger>
<triggerOpenMergeRequestOnPush>both</triggerOpenMergeRequestOnPush>
<branchFilterType>All</branchFilterType>
<spec/>
<triggerOnPush>false</triggerOnPush>
<triggerOnMergeRequest>false</triggerOnMergeRequest>
<triggerOnNoteRequest>true</triggerOnNoteRequest>
<noteRegex>Jenkins please retry a build</noteRegex>
<ciSkip>false</ciSkip>
<skipWorkInProgressMergeRequest>true</skipWorkInProgressMergeRequest>
<setBuildDescription>false</setBuildDescription>
<addNoteOnMergeRequest>false</addNoteOnMergeRequest>
<addVoteOnMergeRequest>false</addVoteOnMergeRequest>
<acceptMergeRequestOnSuccess>false</acceptMergeRequestOnSuccess>
<addCiMessage>true</addCiMessage>
<allowAllBranches>true</allowAllBranches>
<targetBranchRegex/>
<includeBranchesSpec>master, master2, local-test</includeBranchesSpec>
<excludeBranchesSpec>broken-test, master-foo</excludeBranchesSpec>
</com.dabsquared.gitlabjenkins.GitLabPushTrigger>

View File

@ -3,15 +3,21 @@
<triggers class="vector">
<com.dabsquared.gitlabjenkins.GitLabPushTrigger>
<triggerOpenMergeRequestOnPush>never</triggerOpenMergeRequestOnPush>
<branchFilterType>All</branchFilterType>
<spec/>
<triggerOnPush>true</triggerOnPush>
<triggerOnMergeRequest>true</triggerOnMergeRequest>
<triggerOnNoteRequest>true</triggerOnNoteRequest>
<noteRegex>Jenkins please retry a build</noteRegex>
<ciSkip>true</ciSkip>
<skipWorkInProgressMergeRequest>true</skipWorkInProgressMergeRequest>
<setBuildDescription>true</setBuildDescription>
<addNoteOnMergeRequest>true</addNoteOnMergeRequest>
<addVoteOnMergeRequest>true</addVoteOnMergeRequest>
<acceptMergeRequestOnSuccess>false</acceptMergeRequestOnSuccess>
<addCiMessage>false</addCiMessage>
<allowAllBranches>false</allowAllBranches>
<targetBranchRegex/>
<includeBranchesSpec/>
<excludeBranchesSpec/>
</com.dabsquared.gitlabjenkins.GitLabPushTrigger>

View File

@ -0,0 +1,3 @@
- longName: 'GitLab Plugin'
shortName: 'gitlab-plugin'
version: "1.2.4"

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<triggers class="vector">
<com.dabsquared.gitlabjenkins.GitLabPushTrigger>
<triggerOpenMergeRequestOnPush>both</triggerOpenMergeRequestOnPush>
<branchFilterType>RegexBasedFilter</branchFilterType>
<spec/>
<triggerOnPush>false</triggerOnPush>
<triggerOnMergeRequest>false</triggerOnMergeRequest>
<triggerOnNoteRequest>true</triggerOnNoteRequest>
<noteRegex>Retrigger</noteRegex>
<ciSkip>false</ciSkip>
<skipWorkInProgressMergeRequest>false</skipWorkInProgressMergeRequest>
<setBuildDescription>false</setBuildDescription>
<addNoteOnMergeRequest>false</addNoteOnMergeRequest>
<addVoteOnMergeRequest>false</addVoteOnMergeRequest>
<acceptMergeRequestOnSuccess>true</acceptMergeRequestOnSuccess>
<addCiMessage>true</addCiMessage>
<allowAllBranches>false</allowAllBranches>
<targetBranchRegex>(.*debug.*|.*release.*)</targetBranchRegex>
<includeBranchesSpec>include1, include2</includeBranchesSpec>
<excludeBranchesSpec>exclude1, exclude2</excludeBranchesSpec>
</com.dabsquared.gitlabjenkins.GitLabPushTrigger>
</triggers>
</project>

View File

@ -0,0 +1,22 @@
triggers:
- gitlab:
trigger-push: false
trigger-merge-request: false
trigger-open-merge-request-push: both
trigger-note-request: false
note-regex: Retrigger
ci-skip: false
wip-skip: false
set-build-description: false
add-note-merge-request: false
add-vote-merge-request: false
accept-merge-request-on-success: true
add-ci-message: true
branch-filter-type: RegexBasedFilter
include-branches:
- include1
- include2
exclude-branches:
- exclude1
- exclude2
target-branch-regex: '(.*debug.*|.*release.*)'