[Checkins] SVN: zope.wineggbuilder/trunk/ trying to deliver build status images

Adam Groszer cvs-admin at zope.org
Tue Feb 26 09:56:52 UTC 2013


Log message for revision 129825:
  trying to deliver build status images

Changed:
  A   zope.wineggbuilder/trunk/image.py
  U   zope.wineggbuilder/trunk/master.cfg
  A   zope.wineggbuilder/trunk/status_image_exception.png
  A   zope.wineggbuilder/trunk/status_image_failure.png
  A   zope.wineggbuilder/trunk/status_image_skipped.png
  A   zope.wineggbuilder/trunk/status_image_success.png
  A   zope.wineggbuilder/trunk/status_image_warnings.png

-=-
Added: zope.wineggbuilder/trunk/image.py
===================================================================
--- zope.wineggbuilder/trunk/image.py	                        (rev 0)
+++ zope.wineggbuilder/trunk/image.py	2013-02-26 09:56:51 UTC (rev 129825)
@@ -0,0 +1,60 @@
+# this is a snippet ready to be pasted into master.cfg
+# then you can get the image by:
+# http://localhost:8010/buildstatusimage?builder=runtests&number=-1
+
+import os
+from buildbot.status import html
+from buildbot.status.results import SUCCESS, WARNINGS, FAILURE, SKIPPED, EXCEPTION
+from buildbot.status.results import Results
+from buildbot.status.web.base import HtmlResource
+
+class BuildStatusImageResource(HtmlResource):
+    contentType = "image/png"
+
+    def __init__(self, categories=None):
+        HtmlResource.__init__(self)
+
+    def content(self, request, ctx):
+        """Display a build status image like Travis does."""
+
+        status = self.getStatus(request)
+        request.setHeader('Cache-Control', 'no-cache')
+
+        # Get the parameters.
+        name = request.args.get("builder", [None])[0]
+        number = request.args.get("number", [None])[0]
+        if not name or not number:
+            return "builder and number parameter missing"
+        number = int(number)
+
+        # Check if the builder in parameter exists.
+        try:
+            builder = status.getBuilder(name)
+        except:
+            return "unknown builder"
+
+        # Check if the build in parameter exists.
+        build = builder.getBuild(int(number))
+        if not build:
+            return "unknown build %s" % number
+
+        #SUCCESS, WARNINGS, FAILURE, SKIPPED or EXCEPTION
+        res = build.getResults()
+        resname = Results[res]
+
+        img = 'status_image_%s.png' % resname
+        here = os.path.dirname(__file__)
+        imgfile = os.path.join(here, img)
+
+        imgcontent = open(imgfile, 'rb').read()
+
+        return imgcontent
+
+class WebStatus(html.WebStatus):
+    def setupUsualPages(self, numbuilds, num_events, num_events_max):
+        html.WebStatus.setupUsualPages(self, numbuilds, num_events, num_events_max)
+        self.putChild("buildstatusimage", BuildStatusImageResource())
+
+
+# and use the WebStatus defined above instead of buildbot's
+#c['status'].append(WebStatus(http_port=8010))


Property changes on: zope.wineggbuilder/trunk/image.py
___________________________________________________________________
Added: svn:keywords
   + Date Author Id Revision
Added: svn:eol-style
   + native

Modified: zope.wineggbuilder/trunk/master.cfg
===================================================================
--- zope.wineggbuilder/trunk/master.cfg	2013-02-26 06:54:11 UTC (rev 129824)
+++ zope.wineggbuilder/trunk/master.cfg	2013-02-26 09:56:51 UTC (rev 129825)
@@ -21,6 +21,8 @@
 from buildbot.scheduler import Scheduler, Nightly, Triggerable, Periodic
 from buildbot.steps.trigger import Trigger
 
+import image
+
 is_win32 = sys.platform == 'win32'
 
 # This is a sample buildmaster config file. It must be installed as
@@ -1360,7 +1362,8 @@
 c['status'].append(html.WebStatus(http_port=8009, allowForce=True, logRotateLength=100000000))
 
 #proxy THIS via apache
-c['status'].append(html.WebStatus(http_port=8010, allowForce=False, logRotateLength=100000000))
+#use the WebStatus that provides status images
+c['status'].append(image.WebStatus(http_port=8010, allowForce=False, logRotateLength=100000000))
 
 
 c['projectName'] = "Zope wineggbuilder and windows buildbot"

Added: zope.wineggbuilder/trunk/status_image_exception.png
===================================================================
(Binary files differ)


Property changes on: zope.wineggbuilder/trunk/status_image_exception.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: zope.wineggbuilder/trunk/status_image_failure.png
===================================================================
(Binary files differ)


Property changes on: zope.wineggbuilder/trunk/status_image_failure.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: zope.wineggbuilder/trunk/status_image_skipped.png
===================================================================
(Binary files differ)


Property changes on: zope.wineggbuilder/trunk/status_image_skipped.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: zope.wineggbuilder/trunk/status_image_success.png
===================================================================
(Binary files differ)


Property changes on: zope.wineggbuilder/trunk/status_image_success.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: zope.wineggbuilder/trunk/status_image_warnings.png
===================================================================
(Binary files differ)


Property changes on: zope.wineggbuilder/trunk/status_image_warnings.png
___________________________________________________________________
Added: svn:mime-type
   + image/png



More information about the checkins mailing list