Need a cr-linux debug EWS bot
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 30 Jan 2013 06:02:05 +0000 (06:02 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 30 Jan 2013 06:02:05 +0000 (06:02 +0000)
https://bugs.webkit.org/show_bug.cgi?id=98957

Patch by Alan Cutter <alancutter@chromium.org> on 2013-01-29
Reviewed by Eric Seidel.

Added cr-linux-debug-ews bot to webkit-patch, QueueStatusServer and GCE build scripts.

* EWSTools/GoogleComputeEngine/build-cr-linux-debug-ews.sh: Added.
* QueueStatusServer/app.yaml:
* QueueStatusServer/config/queues.py: Added.
* QueueStatusServer/model/queues.py:
(Queue.__init__):
(Queue.queue_with_name):
(Queue.all):
* Scripts/webkitpy/tool/commands/earlywarningsystem.py:
(ChromiumLinuxDebugEWS):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@141223 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/EWSTools/GoogleComputeEngine/build-cr-linux-debug-ews.sh [new file with mode: 0755]
Tools/QueueStatusServer/app.yaml
Tools/QueueStatusServer/config/queues.py [new file with mode: 0644]
Tools/QueueStatusServer/model/queues.py
Tools/Scripts/webkitpy/tool/commands/earlywarningsystem.py

index 039e8c1..7d2d576 100644 (file)
@@ -1,5 +1,24 @@
 2013-01-29  Alan Cutter  <alancutter@chromium.org>
 
+        Need a cr-linux debug EWS bot
+        https://bugs.webkit.org/show_bug.cgi?id=98957
+
+        Reviewed by Eric Seidel.
+
+        Added cr-linux-debug-ews bot to webkit-patch, QueueStatusServer and GCE build scripts.
+
+        * EWSTools/GoogleComputeEngine/build-cr-linux-debug-ews.sh: Added.
+        * QueueStatusServer/app.yaml:
+        * QueueStatusServer/config/queues.py: Added.
+        * QueueStatusServer/model/queues.py:
+        (Queue.__init__):
+        (Queue.queue_with_name):
+        (Queue.all):
+        * Scripts/webkitpy/tool/commands/earlywarningsystem.py:
+        (ChromiumLinuxDebugEWS):
+
+2013-01-29  Alan Cutter  <alancutter@chromium.org>
+
         Tidy up Sheriffbot's Sheriffs command's unit tests
         https://bugs.webkit.org/show_bug.cgi?id=108262
 
diff --git a/Tools/EWSTools/GoogleComputeEngine/build-cr-linux-debug-ews.sh b/Tools/EWSTools/GoogleComputeEngine/build-cr-linux-debug-ews.sh
new file mode 100755 (executable)
index 0000000..2efdc67
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/sh
+# Copyright (c) 2013 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+if [[ $# -ne 1 ]];then
+echo "Usage: build-cr-linux-debug-ews.sh BOT_NUMBER"
+exit 1
+fi
+
+CWD="$(pwd)"
+cd "$(dirname "$0")"
+
+QUEUE_TYPE=cr-linux-debug-ews
+BOT_ID=gce-cr-linux-debug-$1
+BUGZILLA_USERNAME=webkit.review.bot@gmail.com
+read -s -p "Bugzilla Password: " BUGZILLA_PASSWORD && echo
+
+PROJECT=google.com:webkit
+ZONE=$(bash findzone.sh $PROJECT)
+IMAGE=projects/google/images/ubuntu-10-04-v20120621
+MACHINE_TYPE=n1-standard-4-d
+
+gcutil --project=$PROJECT addinstance $BOT_ID --machine_type=$MACHINE_TYPE --image=$IMAGE --zone=$ZONE --wait_until_running
+
+echo "Sleeping for 30s to let the server spin up ssh..."
+sleep 30
+
+gcutil --project=$PROJECT ssh $BOT_ID "
+    sudo apt-get install subversion -y &&
+    svn checkout http://svn.webkit.org/repository/webkit/trunk/Tools/EWSTools tools &&
+    cd tools &&
+    bash build-vm.sh &&
+    bash build-repo.sh $QUEUE_TYPE $BUGZILLA_USERNAME $BUGZILLA_PASSWORD &&
+    bash build-boot-cmd.sh \"screen -t kr ./start-queue.sh $QUEUE_TYPE $BOT_ID 10\" &&
+    bash boot.sh
+"
+
+cd "$CWD"
index 53965be..8e11cbf 100644 (file)
@@ -1,5 +1,5 @@
 application: webkit-commit-queue
-version: 107659 # Bugzilla bug ID of last major change
+version: 98957 # Bugzilla bug ID of last major change
 runtime: python
 api_version: 1
 
diff --git a/Tools/QueueStatusServer/config/queues.py b/Tools/QueueStatusServer/config/queues.py
new file mode 100644 (file)
index 0000000..99bf34f
--- /dev/null
@@ -0,0 +1,43 @@
+# Copyright (C) 2013 Google Inc. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Eventually the list of queues may be stored in the data store.
+all_queue_names = [
+    "commit-queue",
+    "style-queue",
+    "chromium-ews",  # aka cr-linux-ews
+    "cr-linux-debug-ews",
+    "cr-android-ews",
+    "qt-ews",
+    "qt-wk2-ews",
+    "gtk-ews",
+    "mac-ews",
+    "mac-wk2-ews",
+    "win-ews",
+    "efl-ews",
+]
index ebd56dc..b32f69e 100644 (file)
 
 import re
 
+from config.queues import all_queue_names
 from model.activeworkitems import ActiveWorkItems
 from model.workitems import WorkItems
 
 
 class Queue(object):
-
-    # Eventually the list of queues may be stored in the data store.
-    _all_queue_names = [
-        "commit-queue",
-        "style-queue",
-        "chromium-ews",  # aka cr-linux-ews
-        "cr-android-ews",
-        "qt-ews",
-        "qt-wk2-ews",
-        "gtk-ews",
-        "mac-ews",
-        "mac-wk2-ews",
-        "win-ews",
-        "efl-ews",
-    ]
-
     def __init__(self, name):
-        assert(name in self._all_queue_names)
+        assert(name in all_queue_names)
         self._name = name
 
     @classmethod
     def queue_with_name(cls, queue_name):
-        if queue_name not in cls._all_queue_names:
+        if queue_name not in all_queue_names:
             return None
         return Queue(queue_name)
 
     @classmethod
     def all(cls):
-        return [Queue(name) for name in cls._all_queue_names]
+        return [Queue(name) for name in all_queue_names]
 
     @classmethod
     def all_ews(cls):
index e8a5072..79b7cf6 100644 (file)
@@ -195,6 +195,12 @@ class ChromiumLinuxEWS(AbstractChromiumEWS):
     _default_run_tests = True
 
 
+class ChromiumLinuxDebugEWS(AbstractChromiumEWS):
+    name = "cr-linux-debug-ews"
+    port_name = "chromium-xvfb"
+    _build_style = "debug"
+
+
 class ChromiumWindowsEWS(AbstractChromiumEWS):
     name = "cr-win-ews"