如何将 Xcode 机器人设置为对远程仓库的所有分支"提交"运行?



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

Xcode服务:选择Git分支

我已将我的机器人设置为"提交时"运行。我发现当我提交到分支时,机器人会立即集成项目。但当我提交到另一个分支时,机器人不会采取任何行动。

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

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

错误报告:
rdar://20154198

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

还有https://github.com/modcloth-labs/XBotBuilder由同一个工具的创建者@jeremyfox开发。它将为每个Pull Request创建一个机器人程序,并为PR中的每个添加重新运行机器人程序。

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

目前我们使用一个名为Buildasaur的工具(https://github.com/czechboy0/Buildasaur)以改进我们的CI工作流程。它是用swift编写的,有助于为一个github存储库自动构建/运行/删除机器人程序,例如,每当创建pullrequest或向pullrequit推送新的提交时。事实上,它在我们的Xcode Server 6.3上运行良好。不幸的是,它同时只适用于一个存储库。:-(我们也希望,苹果将很快实现这些功能。

Apple开发者论坛的回应:

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

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

rdar://20154198

这在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。

我也真的希望苹果很快推出这项功能,如果能让一个机器人监控新的Pull请求的回购,并在发现时针对该PR运行集成,那将是一件很棒的事情。不过,目前还不可能。

2015年3月19日更新:正如@Gus在另一个答案中报道的那样,有一个新的基于Mac OS X的项目可以帮助为功能分支/PR创建临时机器人,名为XBotBuilderhttps://github.com/modcloth-labs/XBotBuilder.值得注意的是,目前,该项目仅适用于一个github回购。因此,如果您有多个要监控PR的回购,除非您有多台机器,每台机器都运行不同的XBotBuilder实例并针对不同的回购,否则这在当前仍然是不可能的。

最新更新