Diff
Modified: trunk/Tools/ChangeLog (91143 => 91144)
--- trunk/Tools/ChangeLog 2011-07-16 02:11:37 UTC (rev 91143)
+++ trunk/Tools/ChangeLog 2011-07-16 04:03:18 UTC (rev 91144)
@@ -1,3 +1,20 @@
+2011-07-15 Adam Barth <[email protected]>
+
+ gardening server should proxy buildbot status for garden-o-matic
+ https://bugs.webkit.org/show_bug.cgi?id=64588
+
+ Reviewed by Eric Seidel.
+
+ This information will be used to detect build breaks. I took this
+ opportunity to make ChromiumBuildBot non-static.
+
+ * Scripts/webkitpy/common/host.py:
+ * Scripts/webkitpy/tool/commands/rebaseline.py:
+ * Scripts/webkitpy/tool/commands/rebaseline_unittest.py:
+ * Scripts/webkitpy/tool/mocktool.py:
+ * Scripts/webkitpy/tool/servers/gardeningserver.py:
+ * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py:
+
2011-07-15 Julien Chaffraix <[email protected]>
[NRWT] Add support for --no-http
Modified: trunk/Tools/Scripts/webkitpy/common/host.py (91143 => 91144)
--- trunk/Tools/Scripts/webkitpy/common/host.py 2011-07-16 02:11:37 UTC (rev 91143)
+++ trunk/Tools/Scripts/webkitpy/common/host.py 2011-07-16 04:03:18 UTC (rev 91144)
@@ -31,7 +31,9 @@
from webkitpy.common.checkout import Checkout
from webkitpy.common.checkout.scm import default_scm
from webkitpy.common.config.ports import WebKitPort
+from webkitpy.common.memoized import memoized
from webkitpy.common.net import bugzilla, buildbot, statusserver, web
+from webkitpy.common.net.buildbot.chromiumbuildbot import ChromiumBuildBot
from webkitpy.common.net.irc import ircproxy
from webkitpy.common.system import executive, filesystem, platforminfo, user, workspace
from webkitpy.layout_tests import port
@@ -67,6 +69,10 @@
def port(self):
return self._port
+ @memoized
+ def chromium_buildbot(self):
+ return ChromiumBuildBot()
+
def ensure_irc_connected(self, irc_delegate):
if not self._irc:
self._irc = ircproxy.IRCProxy(irc_delegate)
Modified: trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline.py (91143 => 91144)
--- trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline.py 2011-07-16 02:11:37 UTC (rev 91143)
+++ trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline.py 2011-07-16 04:03:18 UTC (rev 91144)
@@ -33,7 +33,6 @@
import webkitpy.common.config.urls as config_urls
from webkitpy.common.net.buildbot import BuildBot
-from webkitpy.common.net.buildbot.chromiumbuildbot import ChromiumBuildBot
from webkitpy.common.net.layouttestresults import LayoutTestResults
from webkitpy.common.system.user import User
from webkitpy.layout_tests.models import test_failures
@@ -92,8 +91,7 @@
def _results_url(self, builder_name):
# FIXME: Generalize this command to work with non-build.chromium.org builders.
- # FIXME: We should really get the buildbot from the tool!
- builder = ChromiumBuildBot().builder_with_name(builder_name)
+ builder = self._tool.chromium_buildbot().builder_with_name(builder_name)
return builder.accumulated_results_url()
def _baseline_directory(self, builder_name):
Modified: trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py (91143 => 91144)
--- trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py 2011-07-16 02:11:37 UTC (rev 91143)
+++ trunk/Tools/Scripts/webkitpy/tool/commands/rebaseline_unittest.py 2011-07-16 04:03:18 UTC (rev 91144)
@@ -48,7 +48,7 @@
command = RebaselineTest()
command.bind_to_tool(MockTool())
build = Mock()
- expected_stdout = "Retrieving http://build.chromium.org/f/chromium/layout_test_results/Webkit_Linux/results/layout-test-results/userscripts/another-test-actual.txt ...\n"
+ expected_stdout = "Retrieving http://example.com/f/builders/Webkit Linux/results//userscripts/another-test-actual.txt ...\n"
OutputCapture().assert_outputs(self, command._rebaseline_test, ["Webkit Linux", "userscripts/another-test.html", "txt"], expected_stdout=expected_stdout)
Modified: trunk/Tools/Scripts/webkitpy/tool/mocktool.py (91143 => 91144)
--- trunk/Tools/Scripts/webkitpy/tool/mocktool.py 2011-07-16 02:11:37 UTC (rev 91143)
+++ trunk/Tools/Scripts/webkitpy/tool/mocktool.py 2011-07-16 04:03:18 UTC (rev 91144)
@@ -400,6 +400,9 @@
def results_url(self):
return "http://example.com/builders/%s/results/" % self.name()
+ def accumulated_results_url(self):
+ return "http://example.com/f/builders/%s/results/" % self.name()
+
def force_build(self, username, comments):
log("MOCK: force_build: name=%s, username=%s, comments=%s" % (
self._name, username, comments))
@@ -835,6 +838,7 @@
self._irc = None
self.user = MockUser()
self._scm = MockSCM()
+ self._chromium_buildbot = MockBuildBot()
# Various pieces of code (wrongly) call filesystem.chdir(checkout_root).
# Making the checkout_root exist in the mock filesystem makes that chdir not raise.
self.filesystem = MockFileSystem(dirs=set([self._scm.checkout_root]))
@@ -851,6 +855,9 @@
def checkout(self):
return self._checkout
+ def chromium_buildbot(self):
+ return self._chromium_buildbot
+
def ensure_irc_connected(self, delegate):
if not self._irc:
self._irc = MockIRC()
Modified: trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver.py (91143 => 91144)
--- trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver.py 2011-07-16 02:11:37 UTC (rev 91143)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver.py 2011-07-16 04:03:18 UTC (rev 91144)
@@ -68,6 +68,10 @@
else:
self._serve_json(commit_info.to_json())
+ def buildbot(self):
+ builder_statuses = self.server.tool.chromium_buildbot().builder_statuses()
+ self._serve_json(builder_statuses)
+
def rollout(self):
revision = self.query['revision'][0]
reason = self.query['reason'][0]
Modified: trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver_unittest.py (91143 => 91144)
--- trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver_unittest.py 2011-07-16 02:11:37 UTC (rev 91143)
+++ trunk/Tools/Scripts/webkitpy/tool/servers/gardeningserver_unittest.py 2011-07-16 04:03:18 UTC (rev 91144)
@@ -77,6 +77,10 @@
"""
self._post_to_path("/changelog?revision=2314", expected_stderr=expected_stderr, expected_stdout=expected_stdout)
+ def test_buildbot(self):
+ expected_stdout = '== Begin JSON Response ==\n[{"is_green": true, "name": "Builder1", "activity": "building"}, {"is_green": true, "name": "Builder2", "activity": "idle"}]\n== End JSON Response ==\n'
+ self._post_to_path("/buildbot", expected_stdout=expected_stdout, expected_stderr='')
+
def test_rollout(self):
expected_stderr = "MOCK run_command: ['echo', 'rollout', '--force-clean', '--non-interactive', '2314', 'MOCK rollout reason']\n"
expected_stdout = "== Begin Response ==\nsuccess\n== End Response ==\n"