首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有任何免费/开放源码的构建系统,您可以志愿自己的计算机作为一个构建代理?

是否有任何免费/开放源码的构建系统,您可以志愿自己的计算机作为一个构建代理?
EN

Stack Overflow用户
提问于 2012-06-25 05:25:16
回答 2查看 647关注 0票数 7

是否有任何免费或开放源码的构建系统,您可以志愿自己的计算机作为一个构建代理?我没有遇到过,但我喜欢它的想法。

目标

为特定的开源项目设置一个持续的集成(或至少夜间)构建系统,该系统需要在所有受支持的平台上独立构建: Windows、MacOS X和Linux。

要求

  1. 允许任意用户志愿使用他们的计算机作为构建系统的新构建代理。
  2. 支持Windows、MacOS X和Linux系统作为构建代理(如果构建定义适当地支持它)。
  3. 允许我将生成的输出(通常是二进制可执行文件或库)传输回中心位置。
  4. Build system可以验证志愿代理是否能够运行构建定义,也可以自动安装必要的工具使其运行。
  5. 可以监视GitHub (或任意URL)的新提交(更改),以启动对可用构建代理的构建推送。
  6. 如果没有必要类型的构建代理可用,则生成将保持排队状态,直到可以处理(不过,几天后可能会从队列中删除)。

我知道我可以通过使用Amazon 自由层设置几个Amazon实例来实现其中的大部分,但是:

  • 只免费12个月。
  • 它不提供MacOS X实例

我从哪里想到的

  1. jQuery的TestSwarm:TestSwarm是一个分布式CI设置,用于在多个浏览器中执行JavaScript测试。可用的浏览器是由用户提供的,用户自愿让他们的浏览器“加入群”(本质上是捕获/连接到集群,并且能够接收指令以按需执行给定的测试套件)。
  2. 分布式计算项目,如斯坦福的折叠@Home软件和伯克利的BOINC基础设施程序。
  3. Microsoft的(TFS)团队构建:虽然我通常鄙视TFS,但它的团队构建系统基本上可以实现我希望的功能,允许您指定能够运行给定构建定义的构建代理(服务器)池。Team与我想要寻找的是,团队构建可能只使用受信任的受控服务器作为其构建代理(与随机提供的群源服务器相比)。

已知问题:安全!

虽然我希望使用自己的计算机作为构建服务器的过程就像让浏览器使用TestSwarm一样简单,但是当允许访问实际的文件系统和命令处理引擎时,显然存在大量的安全问题:

  • 客户端计算机(构建代理)希望确保生成系统不会试图在其慷慨自愿的计算机上执行任何恶意的操作。
  • 构建系统希望确保“不受信任”的客户端计算机(构建代理)不会产生恶意构建输出(例如,使用受黑客攻击的GCC版本来生成恶意软件/病毒二进制文件)。这是一个很大的问题,只有让构建系统安装自己的软件( la Folding@Home),将整个构建过程包装起来,从而使构建代理没有任何外部输入到构建(例如,不依赖用户必须安装的其他工具,例如编译器),这是一个很大的问题。否则,构建系统至少必须请求两个不同的构建代理构建相同的二进制文件,以便对输出进行比较和验证。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-25 07:49:01

詹金斯可以用奴隶来做。见本文件。您可以通过给他们(多个)标签和“附加”构建到标签来分组奴隶。Jenkins从代理可以在权限有限的用户下运行。代理可以由从所有者启动和终止-因此,它们可以确保不存在安全问题。

一个潜在的问题是,在构建过程中,可能会出现一个奴隶。

票数 1
EN

Stack Overflow用户

发布于 2012-06-25 14:37:53

我只在Windows上使用过它,但是TeamCity可能会这样做。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11183865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档