summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Phelps <jphelps@linuxfoundation.org>2018-02-02 12:36:14 -0600
committerKien Ha <kienha9922@gmail.com>2018-05-21 16:51:43 -0400
commit6244fd032a9f654e55b1216ba6a42bc903f33882 (patch)
tree742ee14910291ab650d6584f980860c137af5a7f
parentfae9868905206248d71e01552da1e1756f712d40 (diff)
downloadpython-jenkins-job-builder-6244fd032a9f654e55b1216ba6a42bc903f33882.tar.gz
python-jenkins-job-builder-6244fd032a9f654e55b1216ba6a42bc903f33882.tar.xz
python-jenkins-job-builder-6244fd032a9f654e55b1216ba6a42bc903f33882.zip
Add support for setting file paths to trigger on
- include minimal and full tests Change-Id: Ic78c87c3e4388bb124414725bb2da2b406fb5269 Co-Authored-By: Kien Ha <kienha9922@gmail.com> Signed-off-by: Jeremy Phelps <jphelps@linuxfoundation.org> Signed-off-by: Kien Ha <kienha9922@gmail.com>
-rw-r--r--jenkins_jobs/modules/triggers.py22
-rw-r--r--tests/triggers/fixtures/github-pull-request-comments.xml2
-rw-r--r--tests/triggers/fixtures/github-pull-request-full.xml80
-rw-r--r--tests/triggers/fixtures/github-pull-request-full.yaml (renamed from tests/triggers/fixtures/github-pull-request.yaml)20
-rw-r--r--tests/triggers/fixtures/github-pull-request-minimal.xml23
-rw-r--r--tests/triggers/fixtures/github-pull-request-minimal.yaml2
-rw-r--r--tests/triggers/fixtures/github-pull-request-multiple-extensions.xml2
-rw-r--r--tests/triggers/fixtures/github-pull-request-status.xml2
-rw-r--r--tests/triggers/fixtures/github-pull-request.xml36
9 files changed, 150 insertions, 39 deletions
diff --git a/jenkins_jobs/modules/triggers.py b/jenkins_jobs/modules/triggers.py
index b8f5d311..4c0c4c24 100644
--- a/jenkins_jobs/modules/triggers.py
+++ b/jenkins_jobs/modules/triggers.py
@@ -993,11 +993,25 @@ def github_pull_request(registry, xml_parent, data):
(optional)
:arg bool cancel-builds-on-update: cancel existing builds when a PR is
updated (optional)
+ :arg list included-regions: Each inclusion uses regular expression pattern
+ matching, and must be separated by a new line. An empty list implies
+ that everything is included. (optional)
+ :arg list excluded-regions: Each exclusion uses regular expression pattern
+ matching, and must be separated by a new line. Exclusions take
+ precedence over inclusions, if there is an overlap between included
+ and excluded regions. (optional)
- Example:
+ Full Example:
+
+ .. literalinclude::
+ /../../tests/triggers/fixtures/github-pull-request-full.yaml
+ :language: yaml
- .. literalinclude:: /../../tests/triggers/fixtures/github-pull-request.yaml
+ Minimal Example:
+ .. literalinclude::
+ /../../tests/triggers/fixtures/github-pull-request-minimal.yaml
+ :language: yaml
"""
ghprb = XML.SubElement(xml_parent, 'org.jenkinsci.plugins.ghprb.'
'GhprbTrigger')
@@ -1015,6 +1029,10 @@ def github_pull_request(registry, xml_parent, data):
black_list_labels_string = "\n".join(data.get('black-list-labels', []))
XML.SubElement(ghprb, 'blackListLabels').text = black_list_labels_string
XML.SubElement(ghprb, 'cron').text = data.get('cron', '')
+ excluded_regions_string = "\n".join(data.get('excluded-regions', []))
+ XML.SubElement(ghprb, 'excludedRegions').text = excluded_regions_string
+ included_regions_string = "\n".join(data.get('included-regions', []))
+ XML.SubElement(ghprb, 'includedRegions').text = included_regions_string
build_desc_template = data.get('build-desc-template', '')
if build_desc_template:
diff --git a/tests/triggers/fixtures/github-pull-request-comments.xml b/tests/triggers/fixtures/github-pull-request-comments.xml
index 6c511897..76683abd 100644
--- a/tests/triggers/fixtures/github-pull-request-comments.xml
+++ b/tests/triggers/fixtures/github-pull-request-comments.xml
@@ -13,6 +13,8 @@ org2</orgslist>
<whiteListLabels/>
<blackListLabels/>
<cron>* * * * *</cron>
+ <excludedRegions/>
+ <includedRegions/>
<triggerPhrase>retest this please</triggerPhrase>
<skipBuildPhrase/>
<onlyTriggerPhrase>true</onlyTriggerPhrase>
diff --git a/tests/triggers/fixtures/github-pull-request-full.xml b/tests/triggers/fixtures/github-pull-request-full.xml
new file mode 100644
index 00000000..8448a539
--- /dev/null
+++ b/tests/triggers/fixtures/github-pull-request-full.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <org.jenkinsci.plugins.ghprb.GhprbTrigger>
+ <spec>* * * * *</spec>
+ <adminlist>user1
+user2</adminlist>
+ <allowMembersOfWhitelistedOrgsAsAdmin>true</allowMembersOfWhitelistedOrgsAsAdmin>
+ <whitelist>user3
+user4</whitelist>
+ <orgslist>org1
+org2</orgslist>
+ <whiteListLabels>label1
+label2</whiteListLabels>
+ <blackListLabels>label3
+label4</blackListLabels>
+ <cron>* * * * *</cron>
+ <excludedRegions>exclude
+region</excludedRegions>
+ <includedRegions>include
+region</includedRegions>
+ <buildDescTemplate>build description</buildDescTemplate>
+ <triggerPhrase>retest this please</triggerPhrase>
+ <skipBuildPhrase>no tests</skipBuildPhrase>
+ <onlyTriggerPhrase>true</onlyTriggerPhrase>
+ <useGitHubHooks>true</useGitHubHooks>
+ <permitAll>true</permitAll>
+ <autoCloseFailedPullRequests>false</autoCloseFailedPullRequests>
+ <whiteListTargetBranches>
+ <org.jenkinsci.plugins.ghprb.GhprbBranch>
+ <branch>master</branch>
+ </org.jenkinsci.plugins.ghprb.GhprbBranch>
+ <org.jenkinsci.plugins.ghprb.GhprbBranch>
+ <branch>testing</branch>
+ </org.jenkinsci.plugins.ghprb.GhprbBranch>
+ </whiteListTargetBranches>
+ <gitHubAuthId>123-456-789</gitHubAuthId>
+ <extensions>
+ <org.jenkinsci.plugins.ghprb.extensions.status.GhprbSimpleStatus>
+ <commitStatusContext>status context</commitStatusContext>
+ <triggeredStatus>triggered status message</triggeredStatus>
+ <startedStatus>started</startedStatus>
+ <statusUrl>url/to/status</statusUrl>
+ <addTestResults>test result with status message</addTestResults>
+ <completedStatus>
+ <org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage>
+ <message>success message</message>
+ <result>SUCCESS</result>
+ </org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage>
+ <org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage>
+ <message>failure message</message>
+ <result>FAILURE</result>
+ </org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage>
+ <org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage>
+ <message>error message</message>
+ <result>ERROR</result>
+ </org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage>
+ </completedStatus>
+ </org.jenkinsci.plugins.ghprb.extensions.status.GhprbSimpleStatus>
+ <org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildStatus>
+ <messages>
+ <org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage>
+ <message>success comment</message>
+ <result>SUCCESS</result>
+ </org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage>
+ <org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage>
+ <message>failure comment</message>
+ <result>FAILURE</result>
+ </org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage>
+ <org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage>
+ <message>error-comment</message>
+ <result>ERROR</result>
+ </org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildResultMessage>
+ </messages>
+ </org.jenkinsci.plugins.ghprb.extensions.comments.GhprbBuildStatus>
+ <org.jenkinsci.plugins.ghprb.extensions.build.GhprbCancelBuildsOnUpdate/>
+ </extensions>
+ </org.jenkinsci.plugins.ghprb.GhprbTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/github-pull-request.yaml b/tests/triggers/fixtures/github-pull-request-full.yaml
index 58de03dc..af50156f 100644
--- a/tests/triggers/fixtures/github-pull-request.yaml
+++ b/tests/triggers/fixtures/github-pull-request-full.yaml
@@ -21,10 +21,28 @@ triggers:
skip-build-phrase: 'no tests'
only-trigger-phrase: true
github-hooks: true
- permit-all: false
+ permit-all: true
auto-close-on-fail: false
allow-whitelist-orgs-as-admins: true
white-list-target-branches:
- master
- testing
auth-id: '123-456-789'
+ status-context: "status context"
+ triggered-status: "triggered status message"
+ started-status: "started"
+ status-url: "url/to/status"
+ status-add-test-results: "test result with status message"
+ success-status: "success message"
+ failure-status: "failure message"
+ error-status: "error message"
+ success-comment: "success comment"
+ failure-comment: "failure comment"
+ error-comment: "error-comment"
+ cancel-builds-on-update: true
+ included-regions:
+ - include
+ - region
+ excluded-regions:
+ - exclude
+ - region
diff --git a/tests/triggers/fixtures/github-pull-request-minimal.xml b/tests/triggers/fixtures/github-pull-request-minimal.xml
new file mode 100644
index 00000000..755b16d4
--- /dev/null
+++ b/tests/triggers/fixtures/github-pull-request-minimal.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project>
+ <triggers class="vector">
+ <org.jenkinsci.plugins.ghprb.GhprbTrigger>
+ <spec/>
+ <adminlist/>
+ <allowMembersOfWhitelistedOrgsAsAdmin>false</allowMembersOfWhitelistedOrgsAsAdmin>
+ <whitelist/>
+ <orgslist/>
+ <whiteListLabels/>
+ <blackListLabels/>
+ <cron/>
+ <excludedRegions/>
+ <includedRegions/>
+ <triggerPhrase/>
+ <skipBuildPhrase/>
+ <onlyTriggerPhrase>false</onlyTriggerPhrase>
+ <useGitHubHooks>false</useGitHubHooks>
+ <permitAll>false</permitAll>
+ <autoCloseFailedPullRequests>false</autoCloseFailedPullRequests>
+ </org.jenkinsci.plugins.ghprb.GhprbTrigger>
+ </triggers>
+</project>
diff --git a/tests/triggers/fixtures/github-pull-request-minimal.yaml b/tests/triggers/fixtures/github-pull-request-minimal.yaml
new file mode 100644
index 00000000..6640ed4b
--- /dev/null
+++ b/tests/triggers/fixtures/github-pull-request-minimal.yaml
@@ -0,0 +1,2 @@
+triggers:
+ - github-pull-request
diff --git a/tests/triggers/fixtures/github-pull-request-multiple-extensions.xml b/tests/triggers/fixtures/github-pull-request-multiple-extensions.xml
index fc7341ee..35f517a0 100644
--- a/tests/triggers/fixtures/github-pull-request-multiple-extensions.xml
+++ b/tests/triggers/fixtures/github-pull-request-multiple-extensions.xml
@@ -13,6 +13,8 @@ org2</orgslist>
<whiteListLabels/>
<blackListLabels/>
<cron>* * * * *</cron>
+ <excludedRegions/>
+ <includedRegions/>
<triggerPhrase>retest this please</triggerPhrase>
<skipBuildPhrase/>
<onlyTriggerPhrase>true</onlyTriggerPhrase>
diff --git a/tests/triggers/fixtures/github-pull-request-status.xml b/tests/triggers/fixtures/github-pull-request-status.xml
index a188838a..f499478d 100644
--- a/tests/triggers/fixtures/github-pull-request-status.xml
+++ b/tests/triggers/fixtures/github-pull-request-status.xml
@@ -13,6 +13,8 @@ org2</orgslist>
<whiteListLabels/>
<blackListLabels/>
<cron>* * * * *</cron>
+ <excludedRegions/>
+ <includedRegions/>
<triggerPhrase>retest this please</triggerPhrase>
<skipBuildPhrase/>
<onlyTriggerPhrase>true</onlyTriggerPhrase>
diff --git a/tests/triggers/fixtures/github-pull-request.xml b/tests/triggers/fixtures/github-pull-request.xml
deleted file mode 100644
index c1222320..00000000
--- a/tests/triggers/fixtures/github-pull-request.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<project>
- <triggers class="vector">
- <org.jenkinsci.plugins.ghprb.GhprbTrigger>
- <spec>* * * * *</spec>
- <adminlist>user1
-user2</adminlist>
- <allowMembersOfWhitelistedOrgsAsAdmin>true</allowMembersOfWhitelistedOrgsAsAdmin>
- <whitelist>user3
-user4</whitelist>
- <orgslist>org1
-org2</orgslist>
- <whiteListLabels>label1
-label2</whiteListLabels>
- <blackListLabels>label3
-label4</blackListLabels>
- <cron>* * * * *</cron>
- <buildDescTemplate>build description</buildDescTemplate>
- <triggerPhrase>retest this please</triggerPhrase>
- <skipBuildPhrase>no tests</skipBuildPhrase>
- <onlyTriggerPhrase>true</onlyTriggerPhrase>
- <useGitHubHooks>true</useGitHubHooks>
- <permitAll>false</permitAll>
- <autoCloseFailedPullRequests>false</autoCloseFailedPullRequests>
- <whiteListTargetBranches>
- <org.jenkinsci.plugins.ghprb.GhprbBranch>
- <branch>master</branch>
- </org.jenkinsci.plugins.ghprb.GhprbBranch>
- <org.jenkinsci.plugins.ghprb.GhprbBranch>
- <branch>testing</branch>
- </org.jenkinsci.plugins.ghprb.GhprbBranch>
- </whiteListTargetBranches>
- <gitHubAuthId>123-456-789</gitHubAuthId>
- </org.jenkinsci.plugins.ghprb.GhprbTrigger>
- </triggers>
-</project>