[llvm-commits] [zorg] r125908 - in /zorg/trunk/llvmlab/llvmlab: ci/summary.py ui/app.py ui/ci/views.py
Daniel Dunbar
daniel at zuster.org
Fri Feb 18 08:43:07 PST 2011
Author: ddunbar
Date: Fri Feb 18 10:43:07 2011
New Revision: 125908
URL: http://llvm.org/viewvc/llvm-project?rev=125908&view=rev
Log:
llvmlab: Start sketching a summary object which connects the CI config with the
current status information to provide a high-level summary of the build status.
Added:
zorg/trunk/llvmlab/llvmlab/ci/summary.py
Modified:
zorg/trunk/llvmlab/llvmlab/ui/app.py
zorg/trunk/llvmlab/llvmlab/ui/ci/views.py
Added: zorg/trunk/llvmlab/llvmlab/ci/summary.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/llvmlab/llvmlab/ci/summary.py?rev=125908&view=auto
==============================================================================
--- zorg/trunk/llvmlab/llvmlab/ci/summary.py (added)
+++ zorg/trunk/llvmlab/llvmlab/ci/summary.py Fri Feb 18 10:43:07 2011
@@ -0,0 +1,62 @@
+"""
+Summary information for the dashboard.
+
+Connects the active CI configuration with the status information to track the
+current high-level status.
+"""
+
+import sys
+
+class Summary(object):
+ def __init__(self, config, status):
+ self.config = config
+ self.status = status
+
+ def get_current_status(self):
+ """
+ get_current_status() -> ...
+
+ Compute information on the current status.
+ """
+
+ # For each configured builder, compute the:
+ # a. current build(s),
+ # b. last passing build,
+ # c. last failing build,
+ # d. last completed build
+ info = {}
+ for builder in self.config.builders:
+ builds = self.status.builders.get(builder.name)
+
+ current = []
+ passing = failing = completed = None
+ if builds is None:
+ # FIXME: Logging!
+ print >>sys.stderr, "warning: no status for '%s'" % (
+ builder.name)
+ info[builder.name] = None
+ else:
+ for build in builds[::-1]:
+ # Check if this is an active build.
+ if build.start_time is not None and build.end_time is None:
+ current.append(build)
+ continue
+
+ # Otherwise, check the status.
+ if completed is None:
+ completed = build
+
+ if build.result == 0:
+ if passing is None:
+ passing = build
+ else:
+ if failing is None:
+ failing = build
+
+ info[builder.name] = {
+ 'current' : current,
+ 'passing' : passing,
+ 'failing' : failing,
+ 'completed' : completed }
+
+ return info
Modified: zorg/trunk/llvmlab/llvmlab/ui/app.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/llvmlab/llvmlab/ui/app.py?rev=125908&r1=125907&r2=125908&view=diff
==============================================================================
--- zorg/trunk/llvmlab/llvmlab/ui/app.py (original)
+++ zorg/trunk/llvmlab/llvmlab/ui/app.py Fri Feb 18 10:43:07 2011
@@ -5,9 +5,10 @@
import llvmlab.data
import llvmlab.user
+import llvmlab.ci.summary
import llvmlab.ci.status
-from llvmlab.ui.ci.views import ci as ci_views
-from llvmlab.ui.frontend.views import frontend as frontend_views
+import llvmlab.ui.ci.views
+import llvmlab.ui.frontend.views
class App(flask.Flask):
@staticmethod
@@ -29,12 +30,16 @@
app.load_status(status)
# Load the application routes.
- app.register_module(ci_views)
- app.register_module(frontend_views)
+ app.register_module(llvmlab.ui.ci.views.ci)
+ app.register_module(llvmlab.ui.frontend.views.frontend)
# Spawn the status monitor thread.
app.monitor = app.config.status.start_monitor(app)
+ # Construct the dashboard summary object.
+ app.config.summary = llvmlab.ci.summary.Summary(
+ llvmlab.ui.ci.views.g_config, app.config.status)
+
return app
@staticmethod
Modified: zorg/trunk/llvmlab/llvmlab/ui/ci/views.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/llvmlab/llvmlab/ui/ci/views.py?rev=125908&r1=125907&r2=125908&view=diff
==============================================================================
--- zorg/trunk/llvmlab/llvmlab/ui/ci/views.py (original)
+++ zorg/trunk/llvmlab/llvmlab/ui/ci/views.py Fri Feb 18 10:43:07 2011
@@ -32,10 +32,8 @@
"nightly_clang-x86_64-osx10-RA-flto",
"nightly_clang-x86_64-osx10-RA-g"]),
config.Phase("Validation", 4, "phase4 - validation",
- ["clang-x86_64-osx10-RA-stage3",
+ ["nightly_clang-i386-osx10-RA",
"gccTestSuite-clang-x86_64-osx10-RA",
- "nightly_clang-x86_64-osx10-RA-stage3-g",
- "libcxx-clang-x86_64-osx10-RA",
"boost-trunk-clang-x86_64-osx10-RA"])]
builders = [
config.Builder("Validated Build"),
@@ -54,10 +52,7 @@
config.Builder("nightly_clang-x86_64-osx10-RA-O3"),
config.Builder("nightly_clang-x86_64-osx10-RA-flto"),
config.Builder("nightly_clang-x86_64-osx10-RA-g"),
- config.Builder("clang-x86_64-osx10-RA-stage3"),
config.Builder("gccTestSuite-clang-x86_64-osx10-RA"),
- config.Builder("nightly_clang-x86_64-osx10-RA-stage3-g"),
- config.Builder("libcxx-clang-x86_64-osx10-RA"),
config.Builder("boost-trunk-clang-x86_64-osx10-RA")]
published_builds = [
config.PublishedBuild("LLVM", "Linux", "i386", "llvm-linux-i386.tgz"),
More information about the llvm-commits
mailing list