[pypy-commit] buildbot numpy-tests: merge default into branch
mattip
noreply at buildbot.pypy.org
Sun Nov 24 23:09:52 CET 2013
Author: Matti Picus <matti.picus at gmail.com>
Branch: numpy-tests
Changeset: r901:9cc68795c263
Date: 2013-11-25 00:09 +0200
http://bitbucket.org/pypy/buildbot/changeset/9cc68795c263/
Log: merge default into branch
diff --git a/bot2/pypybuildbot/arm_master.py b/bot2/pypybuildbot/arm_master.py
--- a/bot2/pypybuildbot/arm_master.py
+++ b/bot2/pypybuildbot/arm_master.py
@@ -136,6 +136,7 @@
BUILDJITLINUXARM,
BUILDLINUXARMHF_RASPBIAN,
BUILDJITLINUXARMHF_RASPBIAN,
+ BUILDJITLINUXARMHF_RARING,
]
schedulers = [
diff --git a/bot2/pypybuildbot/builds.py b/bot2/pypybuildbot/builds.py
--- a/bot2/pypybuildbot/builds.py
+++ b/bot2/pypybuildbot/builds.py
@@ -866,6 +866,11 @@
workdir='install',
))
if host == 'tannit':
+ self.addStep(ShellCmd(
+ description="install jinja2",
+ command=['install/bin/pip', 'install', 'jinja2'],
+ workdir='./',
+ haltOnFailure=True,))
pypy_c_rel = 'install/bin/python'
self.addStep(ShellCmd(
description="measure numpy compatibility",
diff --git a/bot2/pypybuildbot/master.py b/bot2/pypybuildbot/master.py
--- a/bot2/pypybuildbot/master.py
+++ b/bot2/pypybuildbot/master.py
@@ -214,18 +214,21 @@
# other platforms
#MACOSX32, # on minime
JITWIN32, # on aurora
- JITFREEBSD764, # on headless
- JITFREEBSD864, # on ananke
- JITFREEBSD964, # on exarkun's freebsd
+ #JITFREEBSD764, # on headless
+ #JITFREEBSD864, # on ananke
+ JITFREEBSD964, # on tavendo
JITMACOSX64, # on xerxes
# buildbot selftest
PYPYBUILDBOT # on cobra
], branch='default', hour=0, minute=0),
Nightly("nightly-2-00", [
+ NUMPY_64, # on tannit64, uses 1 core, takes about 15min.
+ # XXX maybe use a trigger instead?
JITBENCH, # on tannit32, uses 1 core (in part exclusively)
JITBENCH64, # on tannit64, uses 1 core (in part exclusively)
- ], branch='default', hour=2, minute=0),
+
+ ], branch=None, hour=2, minute=0),
Nightly("nightly-2-00-py3k", [
LINUX64, # on allegro64, uses all cores
@@ -235,6 +238,7 @@
Nightly("nighly-ppc", [
JITONLYLINUXPPC64, # on gcc1
], branch='ppc-jit-backend', hour=1, minute=0),
+
CustomForceScheduler('Force Scheduler',
builderNames=[
PYPYBUILDBOT,
@@ -411,7 +415,7 @@
"category": 'freebsd64'
},
{"name" : JITFREEBSD964,
- "slavenames": ['hybridlogic'],
+ "slavenames": ['hybridlogic', 'tavendo-freebsd-9.2-amd64'],
'builddir' : JITFREEBSD964,
'factory' : pypyJITTranslatedTestFactoryFreeBSD,
"category": 'freebsd64'
diff --git a/bot2/pypybuildbot/pypylist.py b/bot2/pypybuildbot/pypylist.py
--- a/bot2/pypybuildbot/pypylist.py
+++ b/bot2/pypybuildbot/pypylist.py
@@ -5,7 +5,8 @@
import cgi
import urllib
import sys
-from twisted.web.static import File, DirectoryLister
+from twisted.web.static import File, formatFileSize
+from buildbot.status.web.base import DirectoryLister
class PyPyTarball(object):
@@ -142,98 +143,39 @@
names = File.listNames(self)
if is_pypy_dir(names):
names = self.sortBuildNames(names)
- Listener = PyPyDirectoryLister
else:
names = self.sortDirectoryNames(File.listEntities(self))
- Listener = DirectoryLister
+ Listener = PyPyDirectoryLister
return Listener(self.path,
names,
self.contentTypes,
self.contentEncodings,
self.defaultType)
-class NumpyStatusList(File):
- pass
-
class PyPyDirectoryLister(DirectoryLister):
- template = """<html>
-<head>
-<title>%(header)s</title>
-<style>
-.even { background-color: #eee }
-.odd { background-color: #dedede }
-.even-passed { background-color: #caffd8 }
-.odd-passed { background-color: #a3feba }
-.even-failed { background-color: #ffbbbb }
-.odd-failed { background-color: #ff9797 }
-
-.summary_link {
- color: black;
- text-decoration: none;
-}
-.summary_link:hover {
- color: blue;
- text-decoration: underline;
-}
-
-.icon { text-align: center }
-.listing {
- margin-left: auto;
- margin-right: auto;
- width: 50%%;
- padding: 0.1em;
- }
-
-body { border: 0; padding: 0; margin: 0; background-color: #efefef; }
-h1 {padding: 0.1em; background-color: #777; color: white; border-bottom: thin white dashed;}
-td,th {padding-left: 0.5em; padding-right: 0.5em; }
-
-</style>
-</head>
-
-<body>
-<h1>%(header)s</h1>
-
-<table>
- <thead>
- <tr>
- <th>Filename</th>
- <th>Size</th>
- <th>Date</th>
- <th><i>own</i> tests</th>
- <th><i>applevel</i> tests</th>
- </tr>
- </thead>
- <tbody>
-%(tableContent)s
- </tbody>
-</table>
-
-</body>
-</html>
-"""
-
- linePattern = """<tr class="%(class)s">
- <td><a href="%(href)s">%(text)s</a></td>
- <td>%(size)s</td>
- <td>%(date)s</td>
- <td class="%(own_summary_class)s">%(own_summary)s</td>
- <td class="%(app_summary_class)s">%(app_summary)s</td>
-</tr>
-"""
+ '''template based, uses master/templates/directory.html
+ '''
def render(self, request):
self.status = request.site.buildbot_service.getStatus()
return DirectoryLister.render(self, request)
- def _buildTableContent(self, elements):
- tableContent = []
+ def _getFilesAndDirectories(self, directory):
+ dirs, files = DirectoryLister._getFilesAndDirectories(self, directory)
rowClasses = itertools.cycle(['odd', 'even'])
- for element, rowClass in zip(elements, rowClasses):
- element["class"] = rowClass
- self._add_test_results(element, rowClass)
- tableContent.append(self.linePattern % element)
- return tableContent
+ for f, rowClass in zip(files, rowClasses):
+ f["class"] = rowClass
+ self._add_test_results(f, rowClass)
+ for d in dirs:
+ dirname = urllib.unquote(d['href'])
+ dd = py.path.local(self.path).join(dirname)
+ date = datetime.date.fromtimestamp(dd.mtime())
+ d['date'] = date.isoformat()
+ # Assume dir is non-recursive
+ size = sum([f.size() for f in dd.listdir() if f.isfile()])
+ d['size'] = formatFileSize(size)
+
+ return dirs, files
def _add_test_results(self, element, rowClass):
filename = urllib.unquote(element['href'])
@@ -292,3 +234,6 @@
else:
return rowClass + '-failed'
+class NumpyStatusList(PyPyList):
+ pass
+
diff --git a/master/templates/directory.html b/master/templates/directory.html
new file mode 100644
--- /dev/null
+++ b/master/templates/directory.html
@@ -0,0 +1,94 @@
+{% extends "layout.html" %}
+{% block morehead %}
+<style>
+.even { background-color: #eee }
+.odd { background-color: #dedede }
+.even-passed { background-color: #caffd8 }
+.odd-passed { background-color: #a3feba }
+.even-failed { background-color: #ffbbbb }
+.odd-failed { background-color: #ff9797 }
+
+.summary_link {
+ color: black;
+ text-decoration: none;
+}
+.summary_link:hover {
+ color: blue;
+ text-decoration: underline;
+}
+
+.icon { text-align: center }
+.listing {
+ margin-left: auto;
+ margin-right: auto;
+ width: 50%%%%;
+ padding: 0.1em;
+ }
+
+body { border: 0; padding: 0; margin: 0; background-color: #efefef; }
+td,th {padding-left: 0.5em; padding-right: 0.5em; }
+td:first-child {text-align: left;}
+
+</style>
+
+{% endblock %}
+
+{% block content %}
+
+<h1>Directory listing for {{ path }}</h1>
+
+{% set row_class = cycler('odd', 'even') %}
+
+{% set has_tests = files|join('', attribute='own_summary')|length > 0 or
+ files|join('', attribute='app_summary')|length > 0 %}
+
+<table>
+
+{% if files|length > 0 %}
+<tr class="{{ row_class.next() }}">
+<th>Filename</th>
+<th>Size</th>
+<th>Date</th>
+{% if has_tests %}
+<th><i>own</i> tests</th>
+<th><i>applevel</i> tests</th>
+{% endif %}
+</tr>
+{% else %}
+<tr class="{{ row_class.next() }}">
+<th>Directory</th>
+<th>Size</th>
+<th>Date</th>
+{% if has_tests %}
+<th></th>
+<th></th>
+{% endif %}
+</tr>
+{% endif %}
+
+{% for d in directories %}
+ <tr class="{{ row_class.next() }}">
+ <td><a href="{{ d.href }}"><b>{{ d.text }}</b></a></td>
+ <td>{{ d.size}}</td>
+ <td>{{ d.date}}</td>
+{% if has_tests %}
+ <td></td>
+ <td></td>
+{% endif %}
+ </tr>
+{% endfor %}
+
+{% for f in files %}
+ <tr class="{{ f.class }}">
+ <td><a href="{{ f.href }}">{{ f.text }}</a></td>
+ <td>{{ f.size }}</td>
+ <td>{{ f.date }}</td>
+{% if has_tests %}
+ <td class="{{ f.own_summary_class }}">{{ f.own_summary }}</td>
+ <td class="{{ f.app_summary_class }}">{{ f.app_summary }}</td>
+{% endif %}
+ </tr>
+{% endfor %}
+</table>
+
+{% endblock %}
diff --git a/master/templates/layout.html b/master/templates/layout.html
--- a/master/templates/layout.html
+++ b/master/templates/layout.html
@@ -23,19 +23,19 @@
{% block header -%}
<div class="header">
<a href="{{ path_to_root or '.' }}">Home</a>
- -
<!-- PyPy specific items -->
- <a href="http://speed.pypy.org/">Speed</a>
- <a href="{{ path_to_root }}summary?branch=<trunk>">Summary (trunk)</a>
- <a href="{{ path_to_root }}summary">Summary</a>
- <a href="{{ path_to_root }}nightly/">Nightly builds</a>
+ - <a href="http://speed.pypy.org/">Speed</a>
+ - <a href="{{ path_to_root }}numpy-status/">Numpy compatability</a>
+ - <a href="{{ path_to_root }}summary?branch=<trunk>">Summary (trunk)</a>
+ - <a href="{{ path_to_root }}summary">Summary</a>
+ - <a href="{{ path_to_root }}nightly/">Nightly builds</a>
<!-- end of PyPy specific items -->
- <a href="{{ path_to_root }}waterfall">Waterfall</a>
+ - <a href="{{ path_to_root }}waterfall">Waterfall</a>
<!-- <a href="{{ path_to_root }}grid">Grid</a> -->
<!-- <a href="{{ path_to_root }}tgrid">T-Grid</a> -->
<!-- <a href="{{ path_to_root }}console">Console</a> -->
- <a href="{{ path_to_root }}builders">Builders</a>
+ - <a href="{{ path_to_root }}builders">Builders</a>
<!-- <a href="{{ path_to_root }}one_line_per_build">Recent Builds</a> -->
<!-- <a href="{{ path_to_root }}buildslaves">Buildslaves</a> -->
<!-- <a href="{{ path_to_root }}changes">Changesources</a> -->
diff --git a/requirements.txt b/requirements.txt
--- a/requirements.txt
+++ b/requirements.txt
@@ -10,7 +10,7 @@
buildbot-slave==0.8.6p1
decorator==3.4.0
mock==1.0.1
-py==1.4.9
+py==1.4.18
pytest==2.2.4
python-dateutil==1.5
sqlalchemy-migrate==0.7.2
More information about the pypy-commit
mailing list