buildbot

安装Buildbot并创建master与worker 一、master机器 1. 安装所需的包 pip install --upgrade pip pip install virtualenv sudo apt install python3-venv build-essential python3-dev libssl-dev libffi-dev pip install setuptools_rust pip install 'buildbot[bundle]'   2. 创建虚拟环境 mkdir 你想要的路径 cd 你创建的路径 python 阅读详情

一 buildbot安装

1. install Twisted
Twisted 依赖 zope.interface and Python
wget -c http://tmrc.mit.edu/mirror/twisted/Twisted/8.1/Twisted-8.1.0.tar.bz2
python setup.py install --prefix=$HOME

install zope.interface
wet -c http://www.zope.org/Products/ZopeInterface/3.3.0/zope.interface-3.3.0.tar.gz
python setup.py build
python setup.py install --prefix=$HOME

2。 buildbot 源码
buildbot依赖Twisted和Python
SF打不开,不过可以到python网站下载
wget -c http://pypi.python.org/packages/source/b/buildbot/buildbot-0.7.7.tar.gz#md5=4647a15a9d9b2db6a5b3493ac78e11d9

python setup.py build
python setup.py install --home=~
That will populate ~/lib/python and create ~/bin/buildbot. Make sure this lib directory is on your PYTHONPATH.

把新模块的路径加到python系统路径下。
export PYTHONPATH=$HOME/lib/python:$HOME/lib/python2.4/site-package:$PYTHONPATH
如果有root权限,你也把上面的程序安装在系统目录下,直接python setup.py install 不指定安装目录。

3. check buildbot is ready
$ buildbot --version
Buildbot version: 0.7.7
Twisted version: 8.1.0

参考:

buildbot系统维护知识 :http://blogold.chinaunix.net/u2/68938/showart_1111019.html

buildbot安装配置笔记 :http://www.cublog.cn/u2/68938/showart_1076484.html

 

二 buildbot设置

1 buildbot服务器端(buildbot master)维护
buildbot的服务器通过下面命令创建:buildbot create-master buildmaster_dir 命令执行后,会在指定的buildmaster_dir下生成buildbot的服务器信息。其中有四个重要的文件/目录:
a) buildbot.tac -- 该文件包含创建buildmaster的状态信息,里面指定buildmaster的工作路径(basedir)和默认的配置文件名(master.cfg)。这里basedir的值实际上就是buildmaster_dir。对于维护人员来说,改变这两个参数就可以改变buildmaster的工作路径和默认读取的配置文件名。

            例如运行 buildbot create-master /home/ray/buildbot_master,则生成的 buildbot.tac如下:
            1
            2 from twisted.application import service
            3 from buildbot.master import BuildMaster
            4
            5 basedir = r'/home/ray/buildbot_master'
            6 configfile = r'master.cfg'
            7
            8 application = service.Application('buildmaster')
            9 BuildMaster(basedir, configfile).setServiceParent(application)


b)master.cfg  -- 该文件是buildmaster的配置文件,控制整个buildbot系统的个工作流程。每当buildmaster启动后,第一件事情就是解析这个文件,是系统工作流程的核心。这个在文章最后详细介绍。
c)twistd.log   -- 该文件是buildmaster的日志,如有错误发生,应该优先分析这个文件。

d) public_html  -- 该目录是buildmaster的网页信息的根路径。下面有三个文件buildbot.css, index.html和robots.txt,可以自定义buildmaster的网页信息。

对于升级一个已经存在的buildmaster,则执行命令buildbot upgrade-master basedir

 

2 buildbot客户端(buildbot slave)维护
buildbot的客户端通过下面命令创建:buildbot create-slave --umask=022 ~/buildslave_dir buildmaster.example.org:42012 myslavename mypasswd (各个参数的具体意义参考“buildbot create-slave --help”)命令执行后,会在指定的buildslave_dir下生成buildslave的客户端信息。同样有三个重要的文件/目录:
a) buildbot.tac -- 该文件包含创建buildslave的状态信息,里面保存了5个重要的参数,分别是basedir, buildmaster_host, port, slavename和passwd。 这几个参数必须和buildmaster端master.cfg中的配置保持一致。因为buildslave需要通过port与buildmaster进行TCP通信,而buildmaster通过myslavename和mypasswd来查询buildslave的状态。对于维护人员来说,如果不想重新创建的buildslave, 完全可以重新定义这些参数,适应新的buildmaster。

              例如运行上述命令,则生成的 buildbot.tac如下:
              1
              2 from twisted.application import service
              3 from buildbot.slave.bot import BuildSlave
              4
              5 basedir = r'/home/ray/buildslave_dir'  # “/home/ray/”是用户home目录
              6 buildmaster_host = 'buildmaster.example.org'
              7 port = 42012
              8 slavename = 'myslavename'
              9 passwd = 'mypasswd'
             10 keepalive = 600
             11 usepty = 1
             12 umask = None
             13
             14 application = service.Application('buildslave')
             15 s = BuildSlave(buildmaster_host, port, slavename, passwd, basedir,
             16                keepalive, usepty, umask=umask)
             17 s.setServiceParent(application)

b)twistd.log   -- 该文件是buildslave的日志,如有错误发生,应该优先分析这个文件。
c)info -- 该目录是buildslave的个人信息。下面有两个文件admin和host, 这两个文件的内容会出现在buildmaster的网页上。

 

3 配置文件(master.cfg)维护
在buildmaster的basedir下有个基本的配置文件示例(master.cfg.sample),更多的例子可以在源码包中的doc目录找到。这个文件实际上是个python脚本,buildmaster启动的时候,会逐行解析这个python脚本,从而得到一个完整的配置信息。信息保存在BuildmasterConfig(字典)中,其中重要的keys如下,我们分成两组来分析。

一组提供基本的配置,包括两端通信端口, web访问URL和客户端信息。
    * c['buildbotURL']: Defining the Project
    * c['status']: Defining Status Targets
    * c['slaves']: Buildslave Specifiers
    * c['slavePortnum']: Setting the slaveport

另一组提供更多的控制选项,包括监测源码更新的方式,构建的调度器和自定义的构建过程。
    * c['builders']: Defining Builders
    * c['change_source']: Listing Change Sources and Schedulers
    * c['schedulers']: Listing Change Sources and Schedulers

继续上面的例子,通过下面命令来生成buildmaster和buildslave
buildbot create-master buildmaster_dir
buildbot create-slave --umask=022 ~/buildslave_dir buildmaster.example.org:42012 myslavename mypasswd
如果想通过buildmaster.example.org:10000访问buildbot服务器,各个key的赋值应当设置为:
    c['slavePortnum'] = 42012
    c['buildbotURL']   = buildmaster.example.org:10000
    c['slaves']        = [BuildSlave("myslavename", "mypasswd")]
    c['status']        = [(html.WebStatus(http_port=10000))]

注意,这里涉及到两个端口,一个用于两端的TCP通信,另一个就是公开的web访问端口, 而且这两个端口不能够相同。


如果想增加新的buildslave, 除了在客户端用命令“buildbot create-slave --umask=022 ~/buildslave_dir2 buildmaster.example.org:42012 myslavename2 mypasswd2”之外,还需要更新服务器master.cfg文件,通知服务器,增加了新的buildslave。此时,  c['slaves'] = [BuildSlave("myslavename", "mypasswd"), BuildSlave("myslavename2", "mypasswd2")]同时c['status']也可以有多种表现形式,出了web方式,最常用来监测buildbot状态的就是MailNotifier。 每当完成一次自动构建,系统会自动给相关人员发送邮件。具体的写法就是:
c['status'].append(mail.MailNotifier(fromaddr="buildbot@localhost",
                                    extraRecipients=["builds@example.com"],
                                    sendToInterestedUsers=False))

最后的才是重点,关于master.cfg的第二组配置参数。c['change_source']设置监测源码更新的方式,最常用的也是系统build-in的方式是PBChangeSource。 我们可以通过built-in buildbot sendchange来通知服务器代码更新, 或者使用buildbot下载包自带的工具,例如contrib/svn_buildbot.py,contrib/arch_buildbot.py, contrib/hg_buildbot.py。这些脚本可以做为commit hook script,一旦代码更新,立即通知buildmaster。上面这些脚本需要你有权限访问SVN/ARCH/HG服务器,可以在源码树中添加commit hook script。如果没有权限,可以尝试另外一个脚本contrib/vn_watcher.py,该脚本可以运行在任何机器(当然要有python环境),如果放在buildmaster机器上运行svn_watcher.py https://skyeye.svn.sourceforge.net/svnroot/skyeye localhost:42012 watch这个脚本每隔10分钟,运行svn log命令来检查svn是否有更新,如果有则运行buildbot sendchange来通知buildmaster。

c['schedulers']顾名思义就是buildmaster的调度器,指定哪些buildslave需要开始工作,哪些branch需要关注。例如
c['schedulers'].append(Scheduler(name="all", branch=None,
                                 treeStableTimer=2*60,
                                 builderNames=["buildbot-full"]))

最后c['builders']才是实际的自动构建过程。这个配置项也是一个字典,最重要的key就是factory。 该factory详细定义构建过程的步骤,例如下载源码,编译连接,测试运行。例如:
cvsroot = ":pserver:anonymous@cvs.sourceforge.net:/cvsroot/buildbot"
cvsmodule = "buildbot"

f1 = factory.BuildFactory()
f1.addStep(CVS(cvsroot=cvsroot, cvsmodule=cvsmodule, login="", mode="copy"))
f1.addStep(Compile(command=["python", "./setup.py", "build"]))
f1.addStep(Trial(testpath="."))

b1 = {'name': "buildbot-full",
      'slavename': "myslavename",
      'builddir': "full",
      'factory': f1,
      }
c['builders'] = [b1]
很显然,这个builders的名字是buildbot-full, 工作机器是myslavename, 工作路径是full(basedir/full),构建过程包含三个步骤(从CVS下载源码,构建源码,测试源码)。如果想增加新的builders, 则可以c['builders'] = [b1,b2]。整个构建步骤,名字和buildslave都可以在web实时访问。

Windows 10 本地硬盘变成了可弹出磁盘 今天新装了系统, 电脑是一个SSD+HHD, 没想到装好之后右下角显示可安全删除设备, 两个硬盘在那里. 这还得了. 查了一下午, 大致知道了是什么问题. Standard SATA AHCI controller使用高性能的硬盘模式就会把硬盘看作是一个可热插拔的存储器, 所以自然就会显示可弹出. 如果你的BIOS支持关闭HotSwap或者HotPlug, 那么直接关闭就可以了. 或者你直接在BIOS里把磁盘模式改为IDE, 不过这样就发挥不好你SSD的高性能了. 还有一种解决方法, 就是手动让系统把这两个 阅读详情

相关推荐

RK3399跨楼层机器人:SLAM技术与商业应用解析

SLAM(即时定位与地图构建)技术是移动机器人自主导航的核心,通过激光雷达、视觉传感器等多源数据融合实现厘米级定位。RK3399作为高性能嵌入式平台,其六核架构和Mali GPU能高效处理SLAM算法与传感器数据。在商业场景中,这种技术组合可支撑机器人实现跨楼层物资配送、仓库盘点等复杂任务。以SLAMTEC Hermes平台为例,其模块化设计支持电梯控制集成,配合双深度相机和360°激光雷达,在医疗、物流等领域已实现12分钟平均配送效率和99.7%的识别准确率。

weixin_30376083的博客 620

buildbot自动化测试工具安装及快速入门

buildbot自动化测试工具(一)  搭建一个完全自动化的buildbot服务器相对来说比较麻烦,所以打算开几条博客来具体说明,我以git作为本次搭建测试自动化测试的例子,   由于本次自动化测试服务器需要一台buildmaster主机、两台buildslave(linux和windows)主机,所以本次搭建需要三台虚拟机  最近公司的项目中的测试用例越来越多,并且项目必须要在linux和Win

LSMEGR的博客 8975

机器视觉/将HIK海康面阵相机连接Halcon软件

本文简述了如何将海康面阵相机连接到Halcon软件中进行实时取图的过程。

Dahe.qu 4869

[BuildRelease Management]buildbot

    一 buildbot安装 1. install TwistedTwisted 依赖 zope.interface and Pythonwget -c http://tmrc.mit.edu/mirror/twisted/Twisted/8.1/Twisted-8.1.0.tar.bz2python setup.py install --prefix=$HOME install zo...

weixin_33816300的博客 199

在ros里给机械臂加上夹爪和底盘后,控制真实机械臂

使用ur3_bringup 可以连接真实机械臂 使用官方的ur3_moveit_planning_execution.launch 可以对机械臂 moveit规划。 但是只有机械臂,没有夹爪。 官方如图: 我把原来的ur3_moveit_config 复制出来,修改 然后把ur3.xacro 等模型文件复制出来修改,修改完之后,有了夹爪,有了底盘。 规划组什么的使用moveit setup assistant 配置过了。 在rviz中可以笛卡尔空间规划了。 ...

超级菜 2717

【Mac+CLion+STM32+JLink】从零到一:在macOS上构建高效STM32开发与调试工作流

本文详细介绍了在macOS上使用CLion、STM32CubeMX和JLink搭建高效STM32开发与调试工作流的完整指南。从环境准备、CLion深度配置到STM32CubeMX工程实战,再到JLink烧录避坑和串口调试技巧,帮助开发者快速掌握Mac平台下的嵌入式开发全流程。

weixin_28278377的博客 254

Buildbot初探

什么是Buildbot Buildbot是一个持续集成和自动化测试框架,我在毕业刚进VMware不久的一个和以色列人合作的项目中接触到Buildbot,当时我真的恨死它了。。。经常随意的提交了一些代码后,Buildbot就开始勤勤恳恳的把所有的代码下载下来然后跑各种测试,跑完后出现错误还会自动发E-mail给我,和我的上级!!!特别是当时和以色列人合作,好几次下班前提交了代码后我就回家了(好吧,我...

weixin_30872789的博客 347

国产数据库PolarDB-X实战:5分钟快速搭建本地开发环境(附Docker一键部署脚本)

本文提供了一份详尽的国产分布式数据库PolarDB-X本地开发环境搭建指南。通过Docker Compose一键部署脚本,开发者可在5分钟内快速启动一个功能完整的PolarDB-X实例,涵盖环境准备、脚本解析、连接验证及日常维护,极大简化了国产数据库的入门和体验流程。

weixin_29246195的博客 359

开源项目亮点推荐:BuildMaster —— 构建自动化与部署的终极解决方案

在软件开发的过程中,持续集成与持续部署(CI/CD)已成为提升效率、减少错误、加快迭代速度的关键工具。[BuildMaster](https://github.com/project-owner/buildmaster)正是为此而生,它是一款专注于构建自动化和部署流程的开源软件。无论是小型创业公司还是大型企业,BuildMaster都能提供一套成熟稳定的解决方案,帮助团队轻松管理代码版本,自动编译...

gitblog_01101的博客 865

【运动规划算法项目实战】如何使用Pure Pursuit算法进行路径跟踪(附ROS C++代码)

在自动驾驶和机器人导航领域,路径跟踪是一项关键技术,它使车辆或机器人能够按照预定的路径规划进行移动。路径跟踪算法的选择对于系统性能和安全性至关重要。本文将介绍一种常用且有效的路径跟踪算法——Pure Pursuit算法。我们将详细讨论Pure Pursuit算法的原理、实现步骤以及如何在自动驾驶和机器人系统中应用该算法进行路径跟踪。Pure Pursuit是一种用于路径跟踪的控制算法。它通过计算角速度控制机器人从当前位置移到机器人前方的某个预瞄点。假定线速度是恒定的,当然可以随意更改机器人的线速度。

xiewf的博客 1万+

SE80 Repository Information System 在 SAP CRM WebClient UI 组件分析中的实战指南

在 SAP CRM WebClient UI 开发过程中,如何快速定位组件、视图、上下文节点以及各类运行时对象,一直是调试效率的关键。(后文简称RIS)正是隐藏在SE80里的瑞士军刀,帮助开发者按照组件集、数据元素、上下文节点属性等多维条件进行交叉检索。官方博客将它描述为本文结合多年项目经验,系统梳理RIS的功能脉络与实战技巧,同时引入真实案例,示范如何借助它在几分钟内完成以往动辄数小时的排查任务。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2万+

windows下buildbot 的搭建及config文件讲解

buildbot在windows环境下的搭建步骤: master: 1. python -m venv sandbox(我使用的是python3.67,试过python2.7,系统推荐用python3于是乎就转python3,python3.6自带虚拟环境) 2.cd到sandbox下的Scripts目录先,activate虚拟环境 3.pip install buildbot 4.pi...

于书盼的博客 1171

QcarCamera-EVS HAL实现(一)

高通车载EVS实现

qq_37057338的博客 2378

buildbot_与Buildbot持续集成

持续集成(CI)是一种软件开发过程,可促进以下原则: 维护单一来源存储库 自动化构建 使您的构建自测 每个人每天都承诺 每次提交都应在集成计算机上构建主线 保持快速构建 在生产环境的克隆中进行测试 使任何人都能轻松获得最新的可执行文件 每个人都可以看到发生了什么 自动化部署 CI是Martin Fowler广泛推广的,其基本思想是在每个分支以及将...

cuxiong8996的博客 525

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

how to install buildbot

1.1. First Run 1.1.1. Goal This tutorial will take you from zero to running your first buildbot master and worker as quickly as possible, without changing the default configuration. This tutorial i...

weixin_42215229的博客 320

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

buildbot安装过程记录

到https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted这个网址下面下载对应版本的window下面可以安装的twisted包 pip install buildbot pip install buildbot-www pip install buildbot-grid_view pip install buildbot-waterfall_view...

tangwendi的专栏 302

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

buildbot_如何使用Buildbot和Poudriere为FreeBSD服务器构建和部署软件包

buildbotThe author selected the Free and Open Source Fund to receive a donation as part of the Write for DOnations program. 作者选择了免费开放源基金来接受捐款,这是Write for DOnations计划的一部分。 介绍 (Introduction) The Fre...

1129

buildbot 的配置

最近在学习buildbot的用法,在不断的尝试和阅读手册的过程中,总结出下面的一些内容,做个备忘,有需要的同学也可以看看。内容是我自己的理解,可能有错的地方,大家可以帮忙纠正。 这个master.cfg的文件是python的写法。主要在里面配置了各种字典信息。分为以下几个部分:workers,protocol,changesources,schedulers,builders,project i...

TerraJuly的博客 939

BuildBot

Buildbot初探 什么是Buildbot Buildbot是一个持续集成和自动化测试框架,我在毕业刚进VMware不久的一个和以色列人合作的项目中接触到Buildbot,当时我真的恨死它了。。。经常随意的提交了一些代码后,Buildbot就开始勤勤恳恳的把所有的代码下载下来然后跑各种测试,跑完后出现错误还会自动发E-mail给我,和我的上级!!!特别是当时和以色列人合作,好几次下班前提

从菜鸟到菜菜鸟 2821

BuildBot安装及问题解决

Win7下安装        win7下安装可以参照官网:http://trac.buildbot.net/wiki/RunningBuildbotOnWindows。官网上也有相关所有软件的下载链接,可以根据需求下载。          安装前,需要安装以下软件:Python2.x、pywin32、Twisted、zope.interface、setuptools         安装过程

drshing的专栏 1734

Buildbot-Travis整合指南

Buildbot-Travis整合指南 项目介绍 Buildbot-Travis是针对Buildbot构建工具的一个适配器,旨在让Buildbot的工作流程更加贴近Travis CI的模式。此项目允许开发者将Builder配置文件与源代码一同存放,并支持私有仓库(如非GitHub的SCM,包括Gerrit、GitLab及GitHub Enterprise)以及在自己的基础设施上实现无限制的并行构建...

gitblog_00891的博客 386

buildbot下的配置

<br />在master目录下配置master.cfg:<br />其中,相关的主要操作为:定义BuildSlave (主要是定义用户名和密码)定义Builder (主要是产生Builder的名字,与最后定义Builder实体时通过名字关联起来)定义Schedul (主要是定义与其关联的Builder名字,同时定义检测方法)定义Factory (主要是定义事件触发时的操作,如:更新,编译,打包等,是build的核心内容)定义builder实体,通过与Builder的名字进行关联,同时定义其打包的Slave

Clan 1463

buildbot安装步骤(仅更新原帖中使用的版本)

<br /><br />Buildbot安装步骤:<br />Buildbot manual 0.8.2 : http://buildbot.net/buildbot/docs/current/index.html<br />BuildBot是一个自动构建工具。每当代码有改变,服务器要求不同平台上的客户端立即进行代码构建和测试,收集并报告不同平台的构建和测试结果。BuildBot用python写的,该python程序只依赖python环境和Twisted(一个python网络框架),可以在很多平台运行。下

sharpljc的专栏 4157

buildbot windows环境下的搭建

整理一下buildbot在windows环境下的搭建步骤: master: 1. python -m venv sandbox(我使用的是python3.67,试过python2.7,系统推荐用python3于是乎就转python3,python3.6自带虚拟环境) 2.cd到sandbox下的Scripts目录先,activate虚拟环境 3.pip install buildbot ...

TerraJuly的博客 486

buildbot 配置

1.pip install buildbot buildbot-www buildbot-worker buildbot-waterfall-view buildbot-console-view 2.buildbot create-master buildbotmaster 3.cp buildbotmaster/master.cfg.sample buildbotmaster/master.

Letter_ 926

buildbot的master.cfg 文件分析

尽量保持和buildbot create-master master 时所创建的内容一致,分析关键点更多详尽的请阅读官网的手册 http://buildbot.net/repos/release/docs/buildbot.htmljimi@debian:~/buildbot/master$ cat master.cfg # -*- python -*-# ex: set syntax=pytho

xxoo的专栏 3900
上一篇: Jmeter 学习笔记
下一篇: Android原生(Native)C开发之八:Toolchain环境搭建篇
zm_21
博客等级 码龄14年 147粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值