New permissions option for GitHub PR Comment Build plugin
In version 78.v2dcf62ba199b GitHub Pull Request Comment Build Plugin introduced permissions check for users triggering jobs with comments. This added a new checkbox/XML element that allows untrusted users to trigger builds. (see https://github.com/jenkinsci/github-pr-comment-build-plugin/pull/46) This commit adds support for this option by allowing dictionary syntax for GH PR Comment Build plugin: ``` - trigger-build-on-pr-review: allow-untrusted-users: true ``` while preserving support for currently existing syntax: ``` - trigger-build-on-pr-review: true ``` Change-Id: I554129c779161b47cba4566f7821ef7590a242e0
This commit is contained in:
parent
a4052b1388
commit
da55990736
|
@ -86,7 +86,7 @@ import jenkins_jobs.modules.helpers as helpers
|
||||||
import six
|
import six
|
||||||
|
|
||||||
from jenkins_jobs.modules.scm import git_extensions
|
from jenkins_jobs.modules.scm import git_extensions
|
||||||
from jenkins_jobs.errors import InvalidAttributeError
|
from jenkins_jobs.errors import InvalidAttributeError, MissingAttributeError
|
||||||
from jenkins_jobs.errors import JenkinsJobsException
|
from jenkins_jobs.errors import JenkinsJobsException
|
||||||
from jenkins_jobs.xml_config import remove_ignorable_whitespace
|
from jenkins_jobs.xml_config import remove_ignorable_whitespace
|
||||||
|
|
||||||
|
@ -1468,25 +1468,37 @@ def property_strategies(xml_parent, data):
|
||||||
max-survivability (optional)
|
max-survivability (optional)
|
||||||
Requires the :jenkins-plugins:`Pipeline Multibranch Plugin
|
Requires the :jenkins-plugins:`Pipeline Multibranch Plugin
|
||||||
<workflow-multibranch>`
|
<workflow-multibranch>`
|
||||||
* **trigger-build-on-pr-comment** (str): The comment body to
|
* **trigger-build-on-pr-comment** (str or dict): The comment body to
|
||||||
trigger a new build for a PR job when it is received. This
|
trigger a new build for a PR job when it is received. This
|
||||||
is compiled as a case insensitive regular expression, so
|
is compiled as a case-insensitive regular expression, so
|
||||||
use ``".*"`` to trigger a build on any comment whatsoever.
|
use ``".*"`` to trigger a build on any comment whatsoever.
|
||||||
(optional)
|
(optional)
|
||||||
|
If dictionary syntax is used, the option requires 2 fields:
|
||||||
|
``comment`` with the comment body and ``allow-untrusted-users``
|
||||||
|
(bool) causing the plugin to skip checking if the comment author
|
||||||
|
is a collaborator of the GitHub project.
|
||||||
Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
|
Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
|
||||||
<github-pr-comment-build>`
|
<github-pr-comment-build>`
|
||||||
* **trigger-build-on-pr-review** (bool): This property will
|
* **trigger-build-on-pr-review** (bool or dict): This property will
|
||||||
cause a job for a pull request ``(PR-*)`` to be triggered
|
cause a job for a pull request ``(PR-*)`` to be triggered
|
||||||
immediately when a review is made on the PR in GitHub.
|
immediately when a review is made on the PR in GitHub.
|
||||||
This has no effect on jobs that are not for pull requests.
|
This has no effect on jobs that are not for pull requests.
|
||||||
(optional)
|
(optional)
|
||||||
|
If dictionary syntax is used, the option requires
|
||||||
|
``allow-untrusted-users`` (bool) causing the plugin to skip
|
||||||
|
checking if the review author is a collaborator of the GitHub
|
||||||
|
project.
|
||||||
Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
|
Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
|
||||||
<github-pr-comment-build>`
|
<github-pr-comment-build>`
|
||||||
* **trigger-build-on-pr-update** (bool): This property will
|
* **trigger-build-on-pr-update** (bool or dict): This property will
|
||||||
cause a job for a pull request ``(PR-*)`` to be triggered
|
cause a job for a pull request ``(PR-*)`` to be triggered
|
||||||
immediately when the PR title or description is edited in
|
immediately when the PR title or description is edited in
|
||||||
GitHub. This has no effect on jobs that are not for pull
|
GitHub. This has no effect on jobs that are not for pull
|
||||||
requests. (optional)
|
requests. (optional)
|
||||||
|
If dictionary syntax is used, the option requires
|
||||||
|
``allow-untrusted-users`` (bool) causing the plugin to skip
|
||||||
|
checking if the update author is a collaborator of the GitHub
|
||||||
|
project.
|
||||||
Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
|
Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
|
||||||
<github-pr-comment-build>`
|
<github-pr-comment-build>`
|
||||||
* **named-branches** (dict): Named branches get different properties.
|
* **named-branches** (dict): Named branches get different properties.
|
||||||
|
@ -1505,25 +1517,38 @@ def property_strategies(xml_parent, data):
|
||||||
max-survivability (optional)
|
max-survivability (optional)
|
||||||
Requires the :jenkins-plugins:`Pipeline Multibranch Plugin
|
Requires the :jenkins-plugins:`Pipeline Multibranch Plugin
|
||||||
<workflow-multibranch>`
|
<workflow-multibranch>`
|
||||||
* **trigger-build-on-pr-comment** (str): The comment body to
|
* **trigger-build-on-pr-comment** (str or dict): The comment body to
|
||||||
trigger a new build for a PR job when it is received. This
|
trigger a new build for a PR job when it is received. This
|
||||||
is compiled as a case insensitive regular expression, so
|
is compiled as a case-insensitive regular expression, so
|
||||||
use ``".*"`` to trigger a build on any comment whatsoever.
|
use ``".*"`` to trigger a build on any comment whatsoever.
|
||||||
(optional)
|
(optional)
|
||||||
|
If dictionary syntax is used, the option accepts 2 fields:
|
||||||
|
``comment`` (str, required) with the comment body and
|
||||||
|
``allow-untrusted-users`` (bool, optional) causing the plugin
|
||||||
|
to skip checking if the comment author is a collaborator of
|
||||||
|
the GitHub project.
|
||||||
Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
|
Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
|
||||||
<github-pr-comment-build>`
|
<github-pr-comment-build>`
|
||||||
* **trigger-build-on-pr-review** (bool): This property will
|
* **trigger-build-on-pr-review** (bool or dict): This property will
|
||||||
cause a job for a pull request ``(PR-*)`` to be triggered
|
cause a job for a pull request ``(PR-*)`` to be triggered
|
||||||
immediately when a review is made on the PR in GitHub.
|
immediately when a review is made on the PR in GitHub.
|
||||||
This has no effect on jobs that are not for pull requests.
|
This has no effect on jobs that are not for pull requests.
|
||||||
(optional)
|
(optional)
|
||||||
|
If dictionary syntax is used, the option requires
|
||||||
|
``allow-untrusted-users`` (bool) causing the plugin to skip
|
||||||
|
checking if the review author is a collaborator of the GitHub
|
||||||
|
project.
|
||||||
Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
|
Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
|
||||||
<github-pr-comment-build>`
|
<github-pr-comment-build>`
|
||||||
* **trigger-build-on-pr-update** (bool): This property will
|
* **trigger-build-on-pr-update** (bool or dict): This property will
|
||||||
cause a job for a pull request ``(PR-*)`` to be triggered
|
cause a job for a pull request ``(PR-*)`` to be triggered
|
||||||
immediately when the PR title or description is edited in
|
immediately when the PR title or description is edited in
|
||||||
GitHub. This has no effect on jobs that are not for pull
|
GitHub. This has no effect on jobs that are not for pull
|
||||||
requests. (optional)
|
requests. (optional)
|
||||||
|
If dictionary syntax is used, the option requires
|
||||||
|
``allow-untrusted-users`` (bool) causing the plugin to skip
|
||||||
|
checking if the update author is a collaborator of the GitHub
|
||||||
|
project.
|
||||||
Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
|
Requires the :jenkins-plugins:`GitHub PR Comment Build Plugin
|
||||||
<github-pr-comment-build>`
|
<github-pr-comment-build>`
|
||||||
|
|
||||||
|
@ -1736,14 +1761,34 @@ def apply_property_strategies(props_elem, props_list):
|
||||||
"".join([pr_comment_build, ".TriggerPRCommentBranchProperty"]),
|
"".join([pr_comment_build, ".TriggerPRCommentBranchProperty"]),
|
||||||
{"plugin": "github-pr-comment-build"},
|
{"plugin": "github-pr-comment-build"},
|
||||||
)
|
)
|
||||||
XML.SubElement(tbopc_elem, "commentBody").text = tbopc_val
|
if isinstance(tbopc_val, dict):
|
||||||
|
if "comment" not in tbopc_val:
|
||||||
|
raise MissingAttributeError(
|
||||||
|
"trigger-build-on-pr-comment[comment]"
|
||||||
|
)
|
||||||
|
XML.SubElement(tbopc_elem, "commentBody").text = tbopc_val["comment"]
|
||||||
|
if tbopc_val.get("allow-untrusted-users", False):
|
||||||
|
XML.SubElement(tbopc_elem, "allowUntrusted").text = "true"
|
||||||
|
elif isinstance(tbopc_val, str):
|
||||||
|
XML.SubElement(tbopc_elem, "commentBody").text = tbopc_val
|
||||||
|
else:
|
||||||
|
raise InvalidAttributeError("trigger-build-on-pr-comment", tbopc_val)
|
||||||
for opt in pcb_bool_opts:
|
for opt in pcb_bool_opts:
|
||||||
if dbs_list.get(opt, False):
|
opt_value = dbs_list.get(opt, None)
|
||||||
XML.SubElement(
|
if opt_value:
|
||||||
|
opt_elem = XML.SubElement(
|
||||||
props_elem,
|
props_elem,
|
||||||
"".join([pr_comment_build, pcb_bool_opts.get(opt)]),
|
"".join([pr_comment_build, pcb_bool_opts.get(opt)]),
|
||||||
{"plugin": "github-pr-comment-build"},
|
{"plugin": "github-pr-comment-build"},
|
||||||
)
|
)
|
||||||
|
if isinstance(opt_value, dict):
|
||||||
|
if opt_value.get("allow-untrusted-users", False):
|
||||||
|
XML.SubElement(opt_elem, "allowUntrusted").text = "true"
|
||||||
|
elif isinstance(opt_value, bool):
|
||||||
|
# no sub-elements in this case
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
raise InvalidAttributeError(opt, opt_value)
|
||||||
|
|
||||||
|
|
||||||
def add_filter_branch_pr_behaviors(traits, data):
|
def add_filter_branch_pr_behaviors(traits, data):
|
||||||
|
|
|
@ -129,12 +129,12 @@ def check_folder(scenario, jjb_config, input):
|
||||||
def check_generator(scenario, input, expected_output, jjb_config, registry, project):
|
def check_generator(scenario, input, expected_output, jjb_config, registry, project):
|
||||||
registry.set_parser_data({})
|
registry.set_parser_data({})
|
||||||
|
|
||||||
if project:
|
|
||||||
xml = project.root_xml(input)
|
|
||||||
else:
|
|
||||||
xml = XML.Element("project")
|
|
||||||
|
|
||||||
def check(Generator):
|
def check(Generator):
|
||||||
|
if project:
|
||||||
|
xml = project.root_xml(input)
|
||||||
|
else:
|
||||||
|
xml = XML.Element("project")
|
||||||
|
|
||||||
generator = Generator(registry)
|
generator = Generator(registry)
|
||||||
generator.gen_xml(xml, input)
|
generator.gen_xml(xml, input)
|
||||||
check_folder(scenario, jjb_config, input)
|
check_folder(scenario, jjb_config, input)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
'['test']' is an invalid value for attribute name.trigger-build-on-pr-comment
|
|
@ -0,0 +1,17 @@
|
||||||
|
name: 'demo-multibranch-github-min'
|
||||||
|
project-type: multibranch
|
||||||
|
scm:
|
||||||
|
- github:
|
||||||
|
repo: 'foo'
|
||||||
|
repo-owner: 'johndoe'
|
||||||
|
|
||||||
|
property-strategies:
|
||||||
|
all-branches:
|
||||||
|
- suppress-scm-triggering: true
|
||||||
|
- pipeline-branch-durability-override: max-survivability
|
||||||
|
- trigger-build-on-pr-comment:
|
||||||
|
- test
|
||||||
|
- trigger-build-on-pr-review:
|
||||||
|
allow-untrusted-users: false
|
||||||
|
- trigger-build-on-pr-update:
|
||||||
|
allow-untrusted-users: false
|
|
@ -0,0 +1 @@
|
||||||
|
'['test']' is an invalid value for attribute name.trigger-build-on-pr-review
|
|
@ -0,0 +1,17 @@
|
||||||
|
name: 'demo-multibranch-github-min'
|
||||||
|
project-type: multibranch
|
||||||
|
scm:
|
||||||
|
- github:
|
||||||
|
repo: 'foo'
|
||||||
|
repo-owner: 'johndoe'
|
||||||
|
|
||||||
|
property-strategies:
|
||||||
|
all-branches:
|
||||||
|
- suppress-scm-triggering: true
|
||||||
|
- pipeline-branch-durability-override: max-survivability
|
||||||
|
- trigger-build-on-pr-comment:
|
||||||
|
comment: "CI build!"
|
||||||
|
- trigger-build-on-pr-review:
|
||||||
|
- test
|
||||||
|
- trigger-build-on-pr-update:
|
||||||
|
allow-untrusted-users: false
|
|
@ -0,0 +1 @@
|
||||||
|
'['test']' is an invalid value for attribute name.trigger-build-on-pr-update
|
|
@ -0,0 +1,17 @@
|
||||||
|
name: 'demo-multibranch-github-min'
|
||||||
|
project-type: multibranch
|
||||||
|
scm:
|
||||||
|
- github:
|
||||||
|
repo: 'foo'
|
||||||
|
repo-owner: 'johndoe'
|
||||||
|
|
||||||
|
property-strategies:
|
||||||
|
all-branches:
|
||||||
|
- suppress-scm-triggering: true
|
||||||
|
- pipeline-branch-durability-override: max-survivability
|
||||||
|
- trigger-build-on-pr-comment:
|
||||||
|
comment: "CI build!"
|
||||||
|
- trigger-build-on-pr-review:
|
||||||
|
allow-untrusted-users: false
|
||||||
|
- trigger-build-on-pr-update:
|
||||||
|
- test
|
|
@ -0,0 +1 @@
|
||||||
|
'true' is an invalid value for attribute name.trigger-build-on-pr-update
|
|
@ -0,0 +1,16 @@
|
||||||
|
name: 'demo-multibranch-github-min'
|
||||||
|
project-type: multibranch
|
||||||
|
scm:
|
||||||
|
- github:
|
||||||
|
repo: 'foo'
|
||||||
|
repo-owner: 'johndoe'
|
||||||
|
|
||||||
|
property-strategies:
|
||||||
|
all-branches:
|
||||||
|
- suppress-scm-triggering: true
|
||||||
|
- pipeline-branch-durability-override: max-survivability
|
||||||
|
- trigger-build-on-pr-comment:
|
||||||
|
comment: "CI build!"
|
||||||
|
- trigger-build-on-pr-review:
|
||||||
|
allow-untrusted-users: false
|
||||||
|
- trigger-build-on-pr-update: "true"
|
|
@ -0,0 +1 @@
|
||||||
|
Missing trigger-build-on-pr-comment[comment] from an instance of 'name'
|
|
@ -0,0 +1,17 @@
|
||||||
|
name: 'demo-multibranch-github-min'
|
||||||
|
project-type: multibranch
|
||||||
|
scm:
|
||||||
|
- github:
|
||||||
|
repo: 'foo'
|
||||||
|
repo-owner: 'johndoe'
|
||||||
|
|
||||||
|
property-strategies:
|
||||||
|
all-branches:
|
||||||
|
- suppress-scm-triggering: true
|
||||||
|
- pipeline-branch-durability-override: max-survivability
|
||||||
|
- trigger-build-on-pr-comment:
|
||||||
|
allow-untrusted-users: false
|
||||||
|
- trigger-build-on-pr-review:
|
||||||
|
allow-untrusted-users: false
|
||||||
|
- trigger-build-on-pr-update:
|
||||||
|
allow-untrusted-users: false
|
|
@ -0,0 +1,78 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject plugin="workflow-multibranch">
|
||||||
|
<properties/>
|
||||||
|
<views>
|
||||||
|
<hudson.model.AllView>
|
||||||
|
<name>All</name>
|
||||||
|
<filterExecutors>false</filterExecutors>
|
||||||
|
<filterQueue>false</filterQueue>
|
||||||
|
<properties class="hudson.model.View$PropertyList"/>
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../../.."/>
|
||||||
|
</hudson.model.AllView>
|
||||||
|
</views>
|
||||||
|
<viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
|
||||||
|
<folderViews class="jenkins.branch.MultiBranchProjectViewHolder" plugin="branch-api">
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
</folderViews>
|
||||||
|
<healthMetrics>
|
||||||
|
<com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric plugin="cloudbees-folder">
|
||||||
|
<nonRecursive>false</nonRecursive>
|
||||||
|
</com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric>
|
||||||
|
</healthMetrics>
|
||||||
|
<icon class="jenkins.branch.MetadataActionFolderIcon" plugin="branch-api">
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
</icon>
|
||||||
|
<orphanedItemStrategy class="com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy" plugin="cloudbees-folder">
|
||||||
|
<pruneDeadBranches>true</pruneDeadBranches>
|
||||||
|
<daysToKeep>-1</daysToKeep>
|
||||||
|
<numToKeep>-1</numToKeep>
|
||||||
|
<abortBuilds>false</abortBuilds>
|
||||||
|
</orphanedItemStrategy>
|
||||||
|
<triggers/>
|
||||||
|
<sources class="jenkins.branch.MultiBranchProject$BranchSourceList" plugin="branch-api">
|
||||||
|
<data>
|
||||||
|
<jenkins.branch.BranchSource>
|
||||||
|
<source class="org.jenkinsci.plugins.github_branch_source.GitHubSCMSource" plugin="github-branch-source">
|
||||||
|
<id>gh-johndoe-foo</id>
|
||||||
|
<repoOwner>johndoe</repoOwner>
|
||||||
|
<repository>foo</repository>
|
||||||
|
<traits>
|
||||||
|
<org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait>
|
||||||
|
<strategyId>1</strategyId>
|
||||||
|
</org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait>
|
||||||
|
<org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait>
|
||||||
|
<strategyId>1</strategyId>
|
||||||
|
<trust class="org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustContributors"/>
|
||||||
|
</org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait>
|
||||||
|
<org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait>
|
||||||
|
<strategyId>1</strategyId>
|
||||||
|
</org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait>
|
||||||
|
<jenkins.plugins.git.traits.WipeWorkspaceTrait>
|
||||||
|
<extension class="hudson.plugins.git.extensions.impl.WipeWorkspace"/>
|
||||||
|
</jenkins.plugins.git.traits.WipeWorkspaceTrait>
|
||||||
|
</traits>
|
||||||
|
</source>
|
||||||
|
<strategy class="jenkins.branch.DefaultBranchPropertyStrategy">
|
||||||
|
<properties class="java.util.Arrays$ArrayList">
|
||||||
|
<a class="jenkins.branch.BranchProperty-array">
|
||||||
|
<jenkins.branch.NoTriggerBranchProperty/>
|
||||||
|
<org.jenkinsci.plugins.workflow.multibranch.DurabilityHintBranchProperty plugin="workflow-multibranch">
|
||||||
|
<hint>MAX_SURVIVABILITY</hint>
|
||||||
|
</org.jenkinsci.plugins.workflow.multibranch.DurabilityHintBranchProperty>
|
||||||
|
<com.adobe.jenkins.github__pr__comment__build.TriggerPRCommentBranchProperty plugin="github-pr-comment-build">
|
||||||
|
<commentBody>Ci build!</commentBody>
|
||||||
|
</com.adobe.jenkins.github__pr__comment__build.TriggerPRCommentBranchProperty>
|
||||||
|
<com.adobe.jenkins.github__pr__comment__build.TriggerPRReviewBranchProperty plugin="github-pr-comment-build"/>
|
||||||
|
<com.adobe.jenkins.github__pr__comment__build.TriggerPRUpdateBranchProperty plugin="github-pr-comment-build"/>
|
||||||
|
</a>
|
||||||
|
</properties>
|
||||||
|
</strategy>
|
||||||
|
</jenkins.branch.BranchSource>
|
||||||
|
</data>
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
</sources>
|
||||||
|
<factory class="org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory">
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
<scriptPath>Jenkinsfile</scriptPath>
|
||||||
|
</factory>
|
||||||
|
</org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject>
|
|
@ -0,0 +1,14 @@
|
||||||
|
name: 'demo-multibranch-github-min'
|
||||||
|
project-type: multibranch
|
||||||
|
scm:
|
||||||
|
- github:
|
||||||
|
repo: 'foo'
|
||||||
|
repo-owner: 'johndoe'
|
||||||
|
|
||||||
|
property-strategies:
|
||||||
|
all-branches:
|
||||||
|
- suppress-scm-triggering: true
|
||||||
|
- pipeline-branch-durability-override: max-survivability
|
||||||
|
- trigger-build-on-pr-comment: "Ci build!"
|
||||||
|
- trigger-build-on-pr-review: true
|
||||||
|
- trigger-build-on-pr-update: true
|
|
@ -0,0 +1,76 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject plugin="workflow-multibranch">
|
||||||
|
<properties/>
|
||||||
|
<views>
|
||||||
|
<hudson.model.AllView>
|
||||||
|
<name>All</name>
|
||||||
|
<filterExecutors>false</filterExecutors>
|
||||||
|
<filterQueue>false</filterQueue>
|
||||||
|
<properties class="hudson.model.View$PropertyList"/>
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../../.."/>
|
||||||
|
</hudson.model.AllView>
|
||||||
|
</views>
|
||||||
|
<viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
|
||||||
|
<folderViews class="jenkins.branch.MultiBranchProjectViewHolder" plugin="branch-api">
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
</folderViews>
|
||||||
|
<healthMetrics>
|
||||||
|
<com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric plugin="cloudbees-folder">
|
||||||
|
<nonRecursive>false</nonRecursive>
|
||||||
|
</com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric>
|
||||||
|
</healthMetrics>
|
||||||
|
<icon class="jenkins.branch.MetadataActionFolderIcon" plugin="branch-api">
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
</icon>
|
||||||
|
<orphanedItemStrategy class="com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy" plugin="cloudbees-folder">
|
||||||
|
<pruneDeadBranches>true</pruneDeadBranches>
|
||||||
|
<daysToKeep>-1</daysToKeep>
|
||||||
|
<numToKeep>-1</numToKeep>
|
||||||
|
<abortBuilds>false</abortBuilds>
|
||||||
|
</orphanedItemStrategy>
|
||||||
|
<triggers/>
|
||||||
|
<sources class="jenkins.branch.MultiBranchProject$BranchSourceList" plugin="branch-api">
|
||||||
|
<data>
|
||||||
|
<jenkins.branch.BranchSource>
|
||||||
|
<source class="org.jenkinsci.plugins.github_branch_source.GitHubSCMSource" plugin="github-branch-source">
|
||||||
|
<id>gh-johndoe-foo</id>
|
||||||
|
<repoOwner>johndoe</repoOwner>
|
||||||
|
<repository>foo</repository>
|
||||||
|
<traits>
|
||||||
|
<org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait>
|
||||||
|
<strategyId>1</strategyId>
|
||||||
|
</org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait>
|
||||||
|
<org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait>
|
||||||
|
<strategyId>1</strategyId>
|
||||||
|
<trust class="org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustContributors"/>
|
||||||
|
</org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait>
|
||||||
|
<org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait>
|
||||||
|
<strategyId>1</strategyId>
|
||||||
|
</org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait>
|
||||||
|
<jenkins.plugins.git.traits.WipeWorkspaceTrait>
|
||||||
|
<extension class="hudson.plugins.git.extensions.impl.WipeWorkspace"/>
|
||||||
|
</jenkins.plugins.git.traits.WipeWorkspaceTrait>
|
||||||
|
</traits>
|
||||||
|
</source>
|
||||||
|
<strategy class="jenkins.branch.DefaultBranchPropertyStrategy">
|
||||||
|
<properties class="java.util.Arrays$ArrayList">
|
||||||
|
<a class="jenkins.branch.BranchProperty-array">
|
||||||
|
<jenkins.branch.NoTriggerBranchProperty/>
|
||||||
|
<org.jenkinsci.plugins.workflow.multibranch.DurabilityHintBranchProperty plugin="workflow-multibranch">
|
||||||
|
<hint>MAX_SURVIVABILITY</hint>
|
||||||
|
</org.jenkinsci.plugins.workflow.multibranch.DurabilityHintBranchProperty>
|
||||||
|
<com.adobe.jenkins.github__pr__comment__build.TriggerPRCommentBranchProperty plugin="github-pr-comment-build">
|
||||||
|
<commentBody>Ci build!</commentBody>
|
||||||
|
</com.adobe.jenkins.github__pr__comment__build.TriggerPRCommentBranchProperty>
|
||||||
|
</a>
|
||||||
|
</properties>
|
||||||
|
</strategy>
|
||||||
|
</jenkins.branch.BranchSource>
|
||||||
|
</data>
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
</sources>
|
||||||
|
<factory class="org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory">
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
<scriptPath>Jenkinsfile</scriptPath>
|
||||||
|
</factory>
|
||||||
|
</org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject>
|
|
@ -0,0 +1,14 @@
|
||||||
|
name: 'demo-multibranch-github-min'
|
||||||
|
project-type: multibranch
|
||||||
|
scm:
|
||||||
|
- github:
|
||||||
|
repo: 'foo'
|
||||||
|
repo-owner: 'johndoe'
|
||||||
|
|
||||||
|
property-strategies:
|
||||||
|
all-branches:
|
||||||
|
- suppress-scm-triggering: true
|
||||||
|
- pipeline-branch-durability-override: max-survivability
|
||||||
|
- trigger-build-on-pr-comment: "Ci build!"
|
||||||
|
- trigger-build-on-pr-review: false
|
||||||
|
- trigger-build-on-pr-update: false
|
|
@ -0,0 +1,78 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject plugin="workflow-multibranch">
|
||||||
|
<properties/>
|
||||||
|
<views>
|
||||||
|
<hudson.model.AllView>
|
||||||
|
<name>All</name>
|
||||||
|
<filterExecutors>false</filterExecutors>
|
||||||
|
<filterQueue>false</filterQueue>
|
||||||
|
<properties class="hudson.model.View$PropertyList"/>
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../../.."/>
|
||||||
|
</hudson.model.AllView>
|
||||||
|
</views>
|
||||||
|
<viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
|
||||||
|
<folderViews class="jenkins.branch.MultiBranchProjectViewHolder" plugin="branch-api">
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
</folderViews>
|
||||||
|
<healthMetrics>
|
||||||
|
<com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric plugin="cloudbees-folder">
|
||||||
|
<nonRecursive>false</nonRecursive>
|
||||||
|
</com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric>
|
||||||
|
</healthMetrics>
|
||||||
|
<icon class="jenkins.branch.MetadataActionFolderIcon" plugin="branch-api">
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
</icon>
|
||||||
|
<orphanedItemStrategy class="com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy" plugin="cloudbees-folder">
|
||||||
|
<pruneDeadBranches>true</pruneDeadBranches>
|
||||||
|
<daysToKeep>-1</daysToKeep>
|
||||||
|
<numToKeep>-1</numToKeep>
|
||||||
|
<abortBuilds>false</abortBuilds>
|
||||||
|
</orphanedItemStrategy>
|
||||||
|
<triggers/>
|
||||||
|
<sources class="jenkins.branch.MultiBranchProject$BranchSourceList" plugin="branch-api">
|
||||||
|
<data>
|
||||||
|
<jenkins.branch.BranchSource>
|
||||||
|
<source class="org.jenkinsci.plugins.github_branch_source.GitHubSCMSource" plugin="github-branch-source">
|
||||||
|
<id>gh-johndoe-foo</id>
|
||||||
|
<repoOwner>johndoe</repoOwner>
|
||||||
|
<repository>foo</repository>
|
||||||
|
<traits>
|
||||||
|
<org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait>
|
||||||
|
<strategyId>1</strategyId>
|
||||||
|
</org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait>
|
||||||
|
<org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait>
|
||||||
|
<strategyId>1</strategyId>
|
||||||
|
<trust class="org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustContributors"/>
|
||||||
|
</org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait>
|
||||||
|
<org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait>
|
||||||
|
<strategyId>1</strategyId>
|
||||||
|
</org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait>
|
||||||
|
<jenkins.plugins.git.traits.WipeWorkspaceTrait>
|
||||||
|
<extension class="hudson.plugins.git.extensions.impl.WipeWorkspace"/>
|
||||||
|
</jenkins.plugins.git.traits.WipeWorkspaceTrait>
|
||||||
|
</traits>
|
||||||
|
</source>
|
||||||
|
<strategy class="jenkins.branch.DefaultBranchPropertyStrategy">
|
||||||
|
<properties class="java.util.Arrays$ArrayList">
|
||||||
|
<a class="jenkins.branch.BranchProperty-array">
|
||||||
|
<jenkins.branch.NoTriggerBranchProperty/>
|
||||||
|
<org.jenkinsci.plugins.workflow.multibranch.DurabilityHintBranchProperty plugin="workflow-multibranch">
|
||||||
|
<hint>MAX_SURVIVABILITY</hint>
|
||||||
|
</org.jenkinsci.plugins.workflow.multibranch.DurabilityHintBranchProperty>
|
||||||
|
<com.adobe.jenkins.github__pr__comment__build.TriggerPRCommentBranchProperty plugin="github-pr-comment-build">
|
||||||
|
<commentBody>Ci build!</commentBody>
|
||||||
|
</com.adobe.jenkins.github__pr__comment__build.TriggerPRCommentBranchProperty>
|
||||||
|
<com.adobe.jenkins.github__pr__comment__build.TriggerPRReviewBranchProperty plugin="github-pr-comment-build"/>
|
||||||
|
<com.adobe.jenkins.github__pr__comment__build.TriggerPRUpdateBranchProperty plugin="github-pr-comment-build"/>
|
||||||
|
</a>
|
||||||
|
</properties>
|
||||||
|
</strategy>
|
||||||
|
</jenkins.branch.BranchSource>
|
||||||
|
</data>
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
</sources>
|
||||||
|
<factory class="org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory">
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
<scriptPath>Jenkinsfile</scriptPath>
|
||||||
|
</factory>
|
||||||
|
</org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject>
|
|
@ -0,0 +1,18 @@
|
||||||
|
name: 'demo-multibranch-github-min'
|
||||||
|
project-type: multibranch
|
||||||
|
scm:
|
||||||
|
- github:
|
||||||
|
repo: 'foo'
|
||||||
|
repo-owner: 'johndoe'
|
||||||
|
|
||||||
|
property-strategies:
|
||||||
|
all-branches:
|
||||||
|
- suppress-scm-triggering: true
|
||||||
|
- pipeline-branch-durability-override: max-survivability
|
||||||
|
- trigger-build-on-pr-comment:
|
||||||
|
comment: "Ci build!"
|
||||||
|
allow-untrusted-users: false
|
||||||
|
- trigger-build-on-pr-review:
|
||||||
|
allow-untrusted-users: false
|
||||||
|
- trigger-build-on-pr-update:
|
||||||
|
allow-untrusted-users: false
|
|
@ -0,0 +1,73 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject plugin="workflow-multibranch">
|
||||||
|
<properties/>
|
||||||
|
<views>
|
||||||
|
<hudson.model.AllView>
|
||||||
|
<name>All</name>
|
||||||
|
<filterExecutors>false</filterExecutors>
|
||||||
|
<filterQueue>false</filterQueue>
|
||||||
|
<properties class="hudson.model.View$PropertyList"/>
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../../.."/>
|
||||||
|
</hudson.model.AllView>
|
||||||
|
</views>
|
||||||
|
<viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
|
||||||
|
<folderViews class="jenkins.branch.MultiBranchProjectViewHolder" plugin="branch-api">
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
</folderViews>
|
||||||
|
<healthMetrics>
|
||||||
|
<com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric plugin="cloudbees-folder">
|
||||||
|
<nonRecursive>false</nonRecursive>
|
||||||
|
</com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric>
|
||||||
|
</healthMetrics>
|
||||||
|
<icon class="jenkins.branch.MetadataActionFolderIcon" plugin="branch-api">
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
</icon>
|
||||||
|
<orphanedItemStrategy class="com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy" plugin="cloudbees-folder">
|
||||||
|
<pruneDeadBranches>true</pruneDeadBranches>
|
||||||
|
<daysToKeep>-1</daysToKeep>
|
||||||
|
<numToKeep>-1</numToKeep>
|
||||||
|
<abortBuilds>false</abortBuilds>
|
||||||
|
</orphanedItemStrategy>
|
||||||
|
<triggers/>
|
||||||
|
<sources class="jenkins.branch.MultiBranchProject$BranchSourceList" plugin="branch-api">
|
||||||
|
<data>
|
||||||
|
<jenkins.branch.BranchSource>
|
||||||
|
<source class="org.jenkinsci.plugins.github_branch_source.GitHubSCMSource" plugin="github-branch-source">
|
||||||
|
<id>gh-johndoe-foo</id>
|
||||||
|
<repoOwner>johndoe</repoOwner>
|
||||||
|
<repository>foo</repository>
|
||||||
|
<traits>
|
||||||
|
<org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait>
|
||||||
|
<strategyId>1</strategyId>
|
||||||
|
</org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait>
|
||||||
|
<org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait>
|
||||||
|
<strategyId>1</strategyId>
|
||||||
|
<trust class="org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustContributors"/>
|
||||||
|
</org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait>
|
||||||
|
<org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait>
|
||||||
|
<strategyId>1</strategyId>
|
||||||
|
</org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait>
|
||||||
|
<jenkins.plugins.git.traits.WipeWorkspaceTrait>
|
||||||
|
<extension class="hudson.plugins.git.extensions.impl.WipeWorkspace"/>
|
||||||
|
</jenkins.plugins.git.traits.WipeWorkspaceTrait>
|
||||||
|
</traits>
|
||||||
|
</source>
|
||||||
|
<strategy class="jenkins.branch.DefaultBranchPropertyStrategy">
|
||||||
|
<properties class="java.util.Arrays$ArrayList">
|
||||||
|
<a class="jenkins.branch.BranchProperty-array">
|
||||||
|
<jenkins.branch.NoTriggerBranchProperty/>
|
||||||
|
<org.jenkinsci.plugins.workflow.multibranch.DurabilityHintBranchProperty plugin="workflow-multibranch">
|
||||||
|
<hint>MAX_SURVIVABILITY</hint>
|
||||||
|
</org.jenkinsci.plugins.workflow.multibranch.DurabilityHintBranchProperty>
|
||||||
|
</a>
|
||||||
|
</properties>
|
||||||
|
</strategy>
|
||||||
|
</jenkins.branch.BranchSource>
|
||||||
|
</data>
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
</sources>
|
||||||
|
<factory class="org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory">
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
<scriptPath>Jenkinsfile</scriptPath>
|
||||||
|
</factory>
|
||||||
|
</org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject>
|
|
@ -0,0 +1,14 @@
|
||||||
|
name: 'demo-multibranch-github-min'
|
||||||
|
project-type: multibranch
|
||||||
|
scm:
|
||||||
|
- github:
|
||||||
|
repo: 'foo'
|
||||||
|
repo-owner: 'johndoe'
|
||||||
|
|
||||||
|
property-strategies:
|
||||||
|
all-branches:
|
||||||
|
- suppress-scm-triggering: true
|
||||||
|
- pipeline-branch-durability-override: max-survivability
|
||||||
|
- trigger-build-on-pr-comment: {}
|
||||||
|
- trigger-build-on-pr-review: {}
|
||||||
|
- trigger-build-on-pr-update: {}
|
|
@ -0,0 +1,73 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject plugin="workflow-multibranch">
|
||||||
|
<properties/>
|
||||||
|
<views>
|
||||||
|
<hudson.model.AllView>
|
||||||
|
<name>All</name>
|
||||||
|
<filterExecutors>false</filterExecutors>
|
||||||
|
<filterQueue>false</filterQueue>
|
||||||
|
<properties class="hudson.model.View$PropertyList"/>
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../../.."/>
|
||||||
|
</hudson.model.AllView>
|
||||||
|
</views>
|
||||||
|
<viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
|
||||||
|
<folderViews class="jenkins.branch.MultiBranchProjectViewHolder" plugin="branch-api">
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
</folderViews>
|
||||||
|
<healthMetrics>
|
||||||
|
<com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric plugin="cloudbees-folder">
|
||||||
|
<nonRecursive>false</nonRecursive>
|
||||||
|
</com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric>
|
||||||
|
</healthMetrics>
|
||||||
|
<icon class="jenkins.branch.MetadataActionFolderIcon" plugin="branch-api">
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
</icon>
|
||||||
|
<orphanedItemStrategy class="com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy" plugin="cloudbees-folder">
|
||||||
|
<pruneDeadBranches>true</pruneDeadBranches>
|
||||||
|
<daysToKeep>-1</daysToKeep>
|
||||||
|
<numToKeep>-1</numToKeep>
|
||||||
|
<abortBuilds>false</abortBuilds>
|
||||||
|
</orphanedItemStrategy>
|
||||||
|
<triggers/>
|
||||||
|
<sources class="jenkins.branch.MultiBranchProject$BranchSourceList" plugin="branch-api">
|
||||||
|
<data>
|
||||||
|
<jenkins.branch.BranchSource>
|
||||||
|
<source class="org.jenkinsci.plugins.github_branch_source.GitHubSCMSource" plugin="github-branch-source">
|
||||||
|
<id>gh-johndoe-foo</id>
|
||||||
|
<repoOwner>johndoe</repoOwner>
|
||||||
|
<repository>foo</repository>
|
||||||
|
<traits>
|
||||||
|
<org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait>
|
||||||
|
<strategyId>1</strategyId>
|
||||||
|
</org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait>
|
||||||
|
<org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait>
|
||||||
|
<strategyId>1</strategyId>
|
||||||
|
<trust class="org.jenkinsci.plugins.github_branch_source.ForkPullRequestDiscoveryTrait$TrustContributors"/>
|
||||||
|
</org.jenkinsci.plugins.github__branch__source.ForkPullRequestDiscoveryTrait>
|
||||||
|
<org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait>
|
||||||
|
<strategyId>1</strategyId>
|
||||||
|
</org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait>
|
||||||
|
<jenkins.plugins.git.traits.WipeWorkspaceTrait>
|
||||||
|
<extension class="hudson.plugins.git.extensions.impl.WipeWorkspace"/>
|
||||||
|
</jenkins.plugins.git.traits.WipeWorkspaceTrait>
|
||||||
|
</traits>
|
||||||
|
</source>
|
||||||
|
<strategy class="jenkins.branch.DefaultBranchPropertyStrategy">
|
||||||
|
<properties class="java.util.Arrays$ArrayList">
|
||||||
|
<a class="jenkins.branch.BranchProperty-array">
|
||||||
|
<jenkins.branch.NoTriggerBranchProperty/>
|
||||||
|
<org.jenkinsci.plugins.workflow.multibranch.DurabilityHintBranchProperty plugin="workflow-multibranch">
|
||||||
|
<hint>MAX_SURVIVABILITY</hint>
|
||||||
|
</org.jenkinsci.plugins.workflow.multibranch.DurabilityHintBranchProperty>
|
||||||
|
</a>
|
||||||
|
</properties>
|
||||||
|
</strategy>
|
||||||
|
</jenkins.branch.BranchSource>
|
||||||
|
</data>
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
</sources>
|
||||||
|
<factory class="org.jenkinsci.plugins.workflow.multibranch.WorkflowBranchProjectFactory">
|
||||||
|
<owner class="org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject" reference="../.."/>
|
||||||
|
<scriptPath>Jenkinsfile</scriptPath>
|
||||||
|
</factory>
|
||||||
|
</org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject>
|
|
@ -0,0 +1,14 @@
|
||||||
|
name: 'demo-multibranch-github-min'
|
||||||
|
project-type: multibranch
|
||||||
|
scm:
|
||||||
|
- github:
|
||||||
|
repo: 'foo'
|
||||||
|
repo-owner: 'johndoe'
|
||||||
|
|
||||||
|
property-strategies:
|
||||||
|
all-branches:
|
||||||
|
- suppress-scm-triggering: true
|
||||||
|
- pipeline-branch-durability-override: max-survivability
|
||||||
|
- trigger-build-on-pr-comment:
|
||||||
|
- trigger-build-on-pr-review:
|
||||||
|
- trigger-build-on-pr-update:
|
|
@ -173,9 +173,14 @@
|
||||||
</org.jenkinsci.plugins.workflow.multibranch.DurabilityHintBranchProperty>
|
</org.jenkinsci.plugins.workflow.multibranch.DurabilityHintBranchProperty>
|
||||||
<com.adobe.jenkins.github__pr__comment__build.TriggerPRCommentBranchProperty plugin="github-pr-comment-build">
|
<com.adobe.jenkins.github__pr__comment__build.TriggerPRCommentBranchProperty plugin="github-pr-comment-build">
|
||||||
<commentBody>Ci build!</commentBody>
|
<commentBody>Ci build!</commentBody>
|
||||||
|
<allowUntrusted>true</allowUntrusted>
|
||||||
</com.adobe.jenkins.github__pr__comment__build.TriggerPRCommentBranchProperty>
|
</com.adobe.jenkins.github__pr__comment__build.TriggerPRCommentBranchProperty>
|
||||||
<com.adobe.jenkins.github__pr__comment__build.TriggerPRReviewBranchProperty plugin="github-pr-comment-build"/>
|
<com.adobe.jenkins.github__pr__comment__build.TriggerPRReviewBranchProperty plugin="github-pr-comment-build">
|
||||||
<com.adobe.jenkins.github__pr__comment__build.TriggerPRUpdateBranchProperty plugin="github-pr-comment-build"/>
|
<allowUntrusted>true</allowUntrusted>
|
||||||
|
</com.adobe.jenkins.github__pr__comment__build.TriggerPRReviewBranchProperty>
|
||||||
|
<com.adobe.jenkins.github__pr__comment__build.TriggerPRUpdateBranchProperty plugin="github-pr-comment-build">
|
||||||
|
<allowUntrusted>true</allowUntrusted>
|
||||||
|
</com.adobe.jenkins.github__pr__comment__build.TriggerPRUpdateBranchProperty>
|
||||||
</a>
|
</a>
|
||||||
</properties>
|
</properties>
|
||||||
</strategy>
|
</strategy>
|
||||||
|
|
|
@ -47,9 +47,13 @@ scm:
|
||||||
all-branches:
|
all-branches:
|
||||||
- suppress-scm-triggering: true
|
- suppress-scm-triggering: true
|
||||||
- pipeline-branch-durability-override: max-survivability
|
- pipeline-branch-durability-override: max-survivability
|
||||||
- trigger-build-on-pr-comment: "Ci build!"
|
- trigger-build-on-pr-comment:
|
||||||
- trigger-build-on-pr-review: true
|
comment: "Ci build!"
|
||||||
- trigger-build-on-pr-update: true
|
allow-untrusted-users: true
|
||||||
|
- trigger-build-on-pr-review:
|
||||||
|
allow-untrusted-users: true
|
||||||
|
- trigger-build-on-pr-update:
|
||||||
|
allow-untrusted-users: true
|
||||||
build-strategies:
|
build-strategies:
|
||||||
- all-strategies-match:
|
- all-strategies-match:
|
||||||
strategies:
|
strategies:
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
#
|
||||||
|
# Copyright (c) 2018 Sorin Sbarnea <ssbarnea@users.noreply.github.com>
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
from operator import attrgetter
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from jenkins_jobs.modules import project_multibranch
|
||||||
|
from tests.enum_scenarios import scenario_list
|
||||||
|
|
||||||
|
fixtures_dir = Path(__file__).parent / "error_fixtures"
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(
|
||||||
|
params=scenario_list(fixtures_dir),
|
||||||
|
ids=attrgetter("name"),
|
||||||
|
)
|
||||||
|
def scenario(request):
|
||||||
|
return request.param
|
||||||
|
|
||||||
|
|
||||||
|
def test_error(check_generator, expected_error):
|
||||||
|
with pytest.raises(Exception) as excinfo:
|
||||||
|
check_generator(project_multibranch.WorkflowMultiBranch)
|
||||||
|
assert str(excinfo.value) == expected_error
|
Loading…
Reference in New Issue