如何设置Xcode Bot运行"在提交"对于远程存储库的所有分支?

时间:2015-02-26 23:15:13

标签: xcode continuous-integration xcode-bots

在Xcode 6中创建Xcode Bot时,它链接到Xcode源代码控制中的当前活动分支。在创建机器人之后似乎没有支持的方法来更改分支。

Xcode Service: Select Git Branch

我已将机器人设置为“在提交时”运行。我发现当我提交那个分支时,机器人会立即整合项目。但是当我提交不同的分支时,机器人不采取任何行动。

理想情况下,我想要一个单个 Xcode Bot来查看远程存储库的所有分支。当有任何分支的新提交时,应该运行机器人及其测试。

我不想为每个分支创建一个新的机器人。有解决方案吗?

错误报告:
rdar://20154198

开发者论坛:
https://devforums.apple.com/thread/263490

4 个答案:

答案 0 :(得分:5)

目前我们使用名为Buildasaur(https://rubygems.org/gems/dates_from_string)的工具来改进CI工作流程。它是用swift编写的,有助于为一个github存储库自动构建/运行/删除机器人,例如每当创建一个pullrequest或者将更新的提交推送到pullrequest时。实际上它在我们的Xcode Server 6.3上工作正常。不幸的是,它同时适用于一个存储库。 :-( 我们也希望Apple能尽快实现这些功能。

答案 1 :(得分:4)

还有https://github.com/modcloth-labs/XBotBuilder由@ jeremy-fox工具的相同创建者开发。它将根据Pull请求创建一个机器人,并在PR中为每次添加重新运行机器人。

它似乎处于早期阶段,没有文档,但代码似乎组织得很好,因此很难让它工作或改变它的行为来做你想做的事。

答案 2 :(得分:2)

Xcode Bots目前无法实现这一目标(当前版本为Xcode Server 4.0.3和Xcode 6.2)。 Bot只会跟踪创建它的特定分支表单。

过去在Xcode Server 3和Xcode 5上使用https://github.com/modcloth-labs/github-xcode-bot-builder这是可能的,但该项目尚未更新,无法与最新版本的Xcode Server和Xcode一起使用。

我也非常希望Apple很快推出这个功能,能够让一个机器人监控一个repo以获得新的Pull请求并且当发现针对该PR进行集成时,将会很棒。但就目前而言,这是不可能的。

2015年3月19日更新: 正如@Gus报告的另一个答案,有一个新的基于Mac OS X的项目可以帮助创建特殊分支机构/ PR的名为XBotBuilder的https://github.com/modcloth-labs/XBotBuilder。值得注意的是,目前,该项目仅适用于一个github仓库。因此,如果你有多个repo,你想要监控PR,除非你有多台机器运行不同的XBotBuilder实例并针对不同的仓库,否则目前仍然无法实现。

答案 3 :(得分:2)

来自开发论坛的

Apple 回复:

  

这不是Xcode Server支持的。您可以制作预集成触发器来切换工作副本中的分支并调用单独的xcodebuild调用,但UI中报告的结果仅适用于Xcode Server构建(触发器执行后XCS运行的构建)

     

https://devforums.apple.com/thread/263490

rdar:// 20154198