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/
==
下载并安装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/