Mozilla Monitor Tinderbox通过Pulse构建

pulsebuildmonitor的Python项目详细描述


Pulse Build Monitor是Mozilla的内部事件系统,请参见http://pulse.mozilla.org。

==


下载并安装pulse build monitor包。


hg clone http://hg.mozilla.org/automation/pulsebuildmonitor/
cd pulsebuildmonitor
python setup.py install

,或者更简单地说:

/>===


要使用监视器,只需调用一个方便的函数:


from mozillapulse.config import pulseconfiguration
from pulsebuildmonitor import start pulse\u monitor

pulse cfg=pulseconfiguration(user='myuser',password='mypassword')
monitor=sta实时脉冲监视器(buildcallback=none,
testcallback=none,
pulsecallback=none,
label=none,
trees=['mozilla-central'],
plat表单=无,
产品=无,
构建类型=无,
测试=无,
构建标记=无,
记录器=无,
talos=false,
pulse_cfg=pulse_cfg)


此函数立即返回;它发起的所有活动都在单独的线程上执行。





参数
==


buildcallback-当buildbot消息为r时调用的函数eceived
表示生成已完成。此回调使用具有以下属性的dict调用:
*buildtype:one of:debug,opt,pgo
*product:the product,may be firefox,mobile,xulrunner,none
or some other value
*revision:hg commit that build是从
*buildDate:buildBot的buildDate(以秒为单位,从epoch格式
*buildername:buildBot的buildername(以长格式表示),例如
"android tegra 250 try opt test mochitest-1"
*timestamp:脉冲消息被重新发送的日期时间接收,格式为
'yyyymmddhhmmss'
*tree:mozilla central等。此处只包含repo名称
,不包含相对路径,因此该值可能是mozilla beta,但不是releases/mozilla beta。
*平台:通用平台,例如linux、linux64、win32、macosx64
*build url:用于运行测试的生成的完整url
*testsurl:此生成的测试包的完整url
*key:原始脉冲消息的脉冲密钥ease:对于发布版本,发布的名称
*标记:此版本的零个或多个标记的列表;有关可能值的列表,请参见
https://github.com/mozilla/pulsetranslator/blob/master/pulsetranslator/messageparams.py
。/>
testcallback-在收到buildbot消息时调用的函数,该函数指示单元测试已完成。这个回调被称为
,其dict具有以下属性:
*buildtype:one of:debug,opt,pgo
*product:the product,may be firefox,mobile,xulrunner,none
or some other value
*revision:hg commit that build是从
*buildDate:buildBot的buildDate(以秒为单位,从epoch格式
*buildername:buildBot的buildername(以长格式表示),例如
"android tegra 250 try opt test mochitest-1"
*时间戳:接收脉冲消息的日期时间,采用
'yyyymmddhhmmss'格式
*talos:true,如果消息与talos测试相关
*tree:mozilla central等。仅包含repo名称
这里,不是相对路径,因此该值可能是Mozilla Beta,但不是Releases/Mozilla Beta。
*buildNumber:the buildBot build number
*OS:Specific OS,例如Win7、XP、Fedora64、Snowleopard
*平台:通用平台,例如linux、linux64、win32、macosx64
*build url:用于运行测试的生成的完整url
*logurl:http://stage.mozilla.org
*key:原始脉冲消息的脉冲密钥
*版本:对于发布版本,发布的名称
*测试:测试的名称,例如reftest、mochitest other

pulsecallback-接收到任何buildbot消息时要调用的函数。
发送到此回调的消息不会被过滤。函数
是用一个参数调用的,这个参数是一个包含脉冲
消息的大dict。此dict的结构因消息类型而异。
如果您希望提供自己的消息筛选,则此功能非常有用。

label-用于标识此脉冲使用者的唯一字符串。如果未传递
,则将生成随机字符串。

trees-用于筛选传递给
buildcallback和testcallback的消息的树列表。如果未指定,则默认值
为["Mozilla-Central"。

平台-多个平台之一的列表:Linux、LinuxQt、Linux RPM、Linux64、
Linux64 RPM、win32、win64、MacOSX、MacOSX64、Android、Android XUL。
如果指定,则将用于筛选传递给
BuildCal的消息lback和testcallback。

products=一个或多个用于筛选消息的prodcut的列表;
可能的产品包括firefox、mobile、xulrunner,对于不包含产品信息的buildbot消息,则不包括


talos-如果为true,则传递与bo相关的消息。th talos和
unittests到testcallback。如果为false(默认值),则排除所有
talos消息。

测试-用于筛选传递给testcallback的
talos和unittest消息的测试名称列表(例如,"reftest")。测试名
由buildbot定义,可随时更改,恕不另行通知。

buildtype-一个或多个:debug、opt、pgo的列表。如果指定,
用于筛选传递给buildcallback和testcallback的消息。

build tags-用于筛选传递给buildcallback的生成的生成的生成标记列表。列表可以是字符串列表,
在这种情况下,所有字符串必须匹配生成标记才能将
消息传递给buildcallback,也可以是
字符串列表,其中任何内部列表中的所有字符串都非常匹配
生成标记,以便r传递筛选器的消息。构建标记
是可以帮助区分不同构建的任意标记;
可能的值在
https://github.com/mozilla/pulsetranslator/blob/master/pulsetranslator/messageparams.py\l53


logger-字符串或logging.logger实例中定义。如果字符串,
将使用给定字符串
作为文件名创建logging.logger实例。



分开螺纹。如果您的主
线程在等待脉冲消息时无需执行任何操作,则它可以对start_pulse嫒monitor返回的monitor对象调用


monitor=start_pulse_monitor(args…)否则它将永远运行。还要记住,脉冲消息回调总是使用单独的线程调用的。

/>
执行回调时发生的任何异常都将被记录到
(如果指定了logger参数),并将打印到stdout。
但是,由于它们是在单独的线程上运行的,因此不会停止监视线程本身的执行。因此,这些异常不会导致程序终止;您需要查阅日志
(或查看stdout)以确定回调是否引发异常





从早期版本升级
==pulsebuildmonitor 0.6有一些小的api更改。创建pulsebuildmonitor时,某些参数已更改:

*'buildtype'现在是'buildtypes',是列表
*'tree'现在是'trees',是列表(以前是列表或字符串)
*'mobile'已被删除(可以使用products=['mobile']在移动产品上筛选)
*'includetalos'现在只是'ta'los'
*有一些新参数,请参阅上面的"用法"部分

另外,pulsebuildmonitor现在需要mozillapulse>;=0.6。您可以使用"easy_install mozillapulse"安装最新版本,也可以从http://hg.mozilla.org/automation/mozillapulse/

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在ElasticSearch中插入条目的最佳方式是什么?   如何使用java播放视频并从中捕获帧   断言在Java良好实践中主动抛出断言错误?   swing Java编译有没有办法告诉编译器忽略部分代码?   java如何在执行另一个测试之后执行一个测试?   java添加两个数字链表   java如何通过代码编辑awt文本字段   jade无效缩进上的java错误;应为0个空格   java我可以在不安装facebook的情况下使用Android版facebook sdk。apk?   java现实地说,我为什么要使用DuckType或控制反转?   Java性能:Java逻辑从巨大的列表中找到最高的3个数字   java使用Lucene/Solr和Spring数据   java按照线程启动的顺序完成线程   java无法解析hibernate。cfg。脱机时使用xml