用于本地和远程编译的集中式构建服务器
我所在的团队由几个开发人员组成,他们共享编译器工具链的许可证。我们遇到的问题是,在一位开发人员获得使用编译器的许可证后,需要很长的等待时间才能让下一位开发人员使用该编译器。这导致了很多时间的浪费和人们的沮丧。
由于许可证非常昂贵,购买更多许可证并不是一个选择。我希望通过设置一个中央编译器来更充分地利用许可证,您可以将作业推送到该机器并让机器完成工作。我们还在研究自动构建来验证来源。
我研究过 buildbot,它对于自动化构建和测试来说似乎很成熟,但是,当开发人员处于本地测试阶段并将更改推送到远程存储库之前,使用它来代替本地构建可能超出了它的范围。
理想情况下,该工具能够位于 IDE 和编译机之间,以便 IDE 看起来构建是在本地执行的。然后,如果出现任何警告/错误,我们仍然可以使用这些方便的功能来定位语法错误。
I am in a team of a few developers who are sharing a license for a compiler toolchain. The issue that we are having is that after one developer has acquired the license to use the compiler, there is a large wait time before the next developer can use the compiler. This is causing a lot of wasted time and frustrated people.
Since the license is very expensive, buying more of them is not an option. I was hoping to more fully utilize the license by setting up a central compiler machine which you can push jobs to and have the machine do the work. We are also looking into automated builds to verify the source.
I've looked into buildbot, which seems mature for automated building and testing, however using it in place of building locally while a developer is in their local testing phase before pushing changes to the remote repository might be out of it's scope.
Ideally this tool would be able to sit between the IDE and compiling machine so that it appears to the IDE that the build is being performed locally. Then if any warnings/errors show up, we could still use those handy features for zeroing in on syntax errors.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以查看 buildbot try 工具。这允许您向构建器发送补丁文件以使其远程运行,并允许您阻止结果。
假设您已经拥有一个集中存储库,您所要做的就是创建一个对
buildbot try
的调用,传入所需的参数,并将其替换为 makefile/buildscript 中的实际编译器。诚然,如果您是唯一进行编译的人,这将使迭代需要更长的时间,但听起来您确实遇到了相反的问题。
You might look into the buildbot try tool. This allows you to send a patchfile to the builder to have it run remotely, and lets you block on the result.
Provided that you have a centralized repository already, all you would have to do would be create a call to
buildbot try
passing in the required parameters, and put this in place of the actual compiler in your makefile/buildscript.Granted, this would make it take a bit longer to do iterations if you're the only person compiling, but it sounds like you really have the opposite problem.
如果您可以自定义用于执行编译器的命令,并且可以
ssh
到中央计算机,那么您可能可以编写使用ssh
在远程计算机上调用编译器的包装器。为了使其正常工作,您可能需要在客户端和服务器上安装源目录。如果源目录安装在两台计算机上的同一位置,则脚本可能会像这样简单。
这将调用在服务器上同一目录中的
$REMOTE_HOST
上作为参数传递的命令。If you can customize the commands used to execute the compiler, and can
ssh
to the central machine, then you can probably write wrapper that invokes the compiler on the remote machine usingssh
. To get this to work nicely, you likely need to have the source directory mounted on both the client and the server.If the source directory is mounted in the same place on both machines, then the script might be as simple as
This invokes the command passed as argument on
$REMOTE_HOST
, in the same directory on the server.