Title: [287719] trunk/Tools
- Revision
- 287719
- Author
- jbed...@apple.com
- Date
- 2022-01-06 15:18:46 -0800 (Thu, 06 Jan 2022)
Log Message
[EWS] Support pull-requests in ConfigureBuild
https://bugs.webkit.org/show_bug.cgi?id=234848
<rdar://problem/87094989>
Reviewed by Dewei Zhu.
* Tools/CISupport/ews-build/steps.py:
(GitHubMixin.pr_url): Map pull-request number to URL.
(GitHubMixin.get_pull_request_number): Check if the event triggering
this was a pull_request, and the specified branch can be mapped to a
pull-request.
(ConfigureBuild.start): Add pull-request details.
(ConfigureBuild.add_pr_details): Ditto.
Canonical link: https://commits.webkit.org/245802@main
Modified Paths
Diff
Modified: trunk/Tools/CISupport/ews-build/steps.py (287718 => 287719)
--- trunk/Tools/CISupport/ews-build/steps.py 2022-01-06 23:00:36 UTC (rev 287718)
+++ trunk/Tools/CISupport/ews-build/steps.py 2022-01-06 23:18:46 UTC (rev 287719)
@@ -54,6 +54,8 @@
RESULTS_DB_URL = 'https://results.webkit.org/'
WithProperties = properties.WithProperties
Interpolate = properties.Interpolate
+BRANCH_PR_RE = re.compile(r'^refs/pull/(?P<id>\d+)/merge$')
+GITHUB_REPOSITORIES = ['https://github.com/WebKit/WebKit']
class BufferLogHeaderObserver(logobserver.BufferLogObserver):
@@ -69,7 +71,32 @@
return self._get(self.headers)
-class ConfigureBuild(buildstep.BuildStep):
+class GitHubMixin(object):
+ def pr_url(self, pr_number=None):
+ pr_number = pr_number or self.get_pull_request_number()
+ if not pr_number:
+ return ''
+ return '{}/pull/{}'.format(self.getProperty('repository', '-'), pr_number)
+
+ def get_pull_request_number(self):
+ pr_number = self.getProperty('pull_request')
+ if pr_number:
+ return int(pr_number)
+
+ if self.getProperty('event') != 'pull_request':
+ return None
+ if self.getProperty('repository') not in GITHUB_REPOSITORIES:
+ return None
+
+ match = BRANCH_PR_RE.match(self.getProperty('branch', ''))
+ if not match:
+ return None
+ pr_number = int(match.group('id'))
+ self.setProperty('pull_request', pr_number)
+ return pr_number
+
+
+class ConfigureBuild(buildstep.BuildStep, GitHubMixin):
name = 'configure-build'
description = ['configuring build']
descriptionDone = ['Configured build']
@@ -109,6 +136,8 @@
self.setProperty('additionalArguments', self.additionalArguments, 'config.json')
self.add_patch_id_url()
+ self.add_pr_details()
+
self.finished(SUCCESS)
return defer.succeed(None)
@@ -117,7 +146,12 @@
if patch_id:
self.addURL('Patch {}'.format(patch_id), Bugzilla.patch_url(patch_id))
+ def add_pr_details(self):
+ pr_number = self.get_pull_request_number()
+ if pr_number:
+ self.addURL('Pull request {}'.format(pr_number), self.pr_url(pr_number=pr_number))
+
class CheckOutSource(git.Git):
name = 'clean-and-update-working-directory'
CHECKOUT_DELAY_AND_MAX_RETRIES_PAIR = (0, 2)
Modified: trunk/Tools/ChangeLog (287718 => 287719)
--- trunk/Tools/ChangeLog 2022-01-06 23:00:36 UTC (rev 287718)
+++ trunk/Tools/ChangeLog 2022-01-06 23:18:46 UTC (rev 287719)
@@ -1,3 +1,19 @@
+2022-01-04 Jonathan Bedard <jbed...@apple.com>
+
+ [EWS] Support pull-requests in ConfigureBuild
+ https://bugs.webkit.org/show_bug.cgi?id=234848
+ <rdar://problem/87094989>
+
+ Reviewed by Dewei Zhu.
+
+ * CISupport/ews-build/steps.py:
+ (GitHubMixin.pr_url): Map pull-request number to URL.
+ (GitHubMixin.get_pull_request_number): Check if the event triggering
+ this was a pull_request, and the specified branch can be mapped to a
+ pull-request.
+ (ConfigureBuild.start): Add pull-request details.
+ (ConfigureBuild.add_pr_details): Ditto.
+
2022-01-06 Alex Christensen <achristen...@webkit.org>
Start using C++20
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes