如何为远程存储库的所有分支将 Xcode Bot 设置为 运行 "on commit"?

How to set Xcode Bot to run "on commit" for all branches of remote repository?

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

Xcode Service: Select Git Branch

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

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

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

错误报告:
rdar://20154198

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

Xcode 机器人目前无法做到这一点(当前版本是 Xcode Server 4.0.3 和 Xcode 6.2)。 Bot 只会跟踪它创建的特定分支表单。

过去在 Xcode 服务器 3 和 Xcode 5 上使用 https://github.com/modcloth-labs/github-xcode-bot-builder 是可能的,但该项目尚未更新以使用最新版本的 [=23] =] 服务器和 Xcode.

我也非常希望 Apple 尽快推出此功能,如果能够让一个机器人监控一个 repo 以获取新的 Pull Requests 并在发现 运行 时针对该 PR 进行集成,那就太好了。不过现在,这是不可能的。

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

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

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

Apple 来自开发论坛的回复:

This isn't something Xcode Server supports. You might be able to craft a pre-integration trigger to switch branches in the working copy and invoke seperate xcodebuild invocations, but the results reported in the UI will only be for the Xcode Server builds (the build that XCS runs after your trigger executes).

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

rdar://20154198

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