Build 是否有任何免费/开源的构建系统,您可以自愿使用自己的计算机作为构建代理?

Build 是否有任何免费/开源的构建系统,您可以自愿使用自己的计算机作为构建代理?,build,continuous-integration,jenkins,teamcity,build-automation,Build,Continuous Integration,Jenkins,Teamcity,Build Automation,是否有任何免费或开源的构建系统,您可以自愿使用自己的计算机作为构建代理?我没有遇到过,但我喜欢这个主意 目标 为需要在所有受支持的平台(Windows、MacOS X和Linux)上独立构建的特定开源项目设置持续集成(或至少每晚)构建系统 要求 允许任意用户自愿将其计算机作为生成系统的新生成代理 支持Windows、MacOS X和Linux系统作为构建代理(如果构建定义适当支持) 允许我将生成的生成输出(例如,典型的二进制可执行文件或库)传输回中心位置 构建系统可以验证自愿代理是否能够运行构建

是否有任何免费或开源的构建系统,您可以自愿使用自己的计算机作为构建代理?我没有遇到过,但我喜欢这个主意

目标 为需要在所有受支持的平台(Windows、MacOS X和Linux)上独立构建的特定开源项目设置持续集成(或至少每晚)构建系统

要求
  • 允许任意用户自愿将其计算机作为生成系统的新生成代理
  • 支持Windows、MacOS X和Linux系统作为构建代理(如果构建定义适当支持)
  • 允许我将生成的生成输出(例如,典型的二进制可执行文件或库)传输回中心位置
  • 构建系统可以验证自愿代理是否能够运行构建定义,或者可以自动安装必要的工具以实现此目的
  • 可以监视GitHub(或任意URL)的新提交(更改),以启动对可用构建代理的构建推送
  • 如果没有必要类型的生成代理可用,则生成将保持排队状态,直到可以对其进行处理(不过,可能会在几天后从队列中删除)
  • 我知道我可以通过使用Amazon Web服务设置几个Amazon EC2实例来实现这一点,但是:

    • 它只免费12个月
    • 它不提供MacOS X实例
    我从哪里得到这个主意的
  • jQuery的:TestSwarm是一个分布式CI设置,用于在多个浏览器中执行JavaScript测试。可用的浏览器由自愿使用浏览器“加入swarm”的用户提供(基本上被捕获/连接到swarm,并且能够接收指令以按需执行给定的测试套件)
  • 分布式计算项目,如斯坦福大学的软件和伯克利大学的基础设施项目
  • <> LI>微软的Team Foundation Server(TFS)团队构建:虽然我通常鄙视TFS,但是它的团队构建系统基本上允许我指定能够运行给定的构建定义的构建代理(Server)池。仅使用受信任的受控服务器作为其构建代理(而不是随机提供的众包服务器) 已知问题:安全! 虽然我希望自愿将自己的计算机作为构建服务器的过程与自愿将浏览器作为TestSwarm一样简单,但当允许访问实际的文件系统和命令处理引擎时,显然存在大量安全隐患:

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

    Jenkins可以使用从属服务器。请参阅。您可以通过给从属服务器(多个)标签和“附加”标签来对其进行分组。Jenkins从属服务器代理可以在具有有限权限的用户下运行。代理可以由从属服务器所有者启动和终止-因此他们可以确保没有安全问题。

    一个潜在的问题是,在构建过程中,从站可能会被关闭。

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

    虽然这是个好主意,但我不确定这篇文章是否适合SE。@Laurent:怎么会这样?如果不是,它更适合哪里?让我们在这里进行建设性的讨论。另外,考虑到SE有大量的构建重建我真的不明白这怎么不合适……这不是一个很有用的答案-\