10

我尝试了持续集成工具 Travis CI、CircleCI 和 codeship,但发现它们都没有为 phabricator 提供支持文档。有人对如何使用 Phabricator 进行持续集成 (CI)有想法吗?

4

3 回答 3

9

我通过向 Phabricator 添加 post diff 和land hooks 将差异作为分支推送到 Travis 查找分支更新的 GitHub 来完成与 Travis-CI 的集成。据我所知,Travis-CI 只与 GitHub 集成,所以如果你的主要 repo 在那里并且 Phabricator 指向它,它就可以完成。

如果您想采用这种方法,则可以从创建自己的ArcanistConfiguration和覆盖开始didRunWorkflow。另请参阅如何创建新库。API 文档非常好,但我必须经过反复试验才能得到我想要的。Phabricator 人可能很乐意回答问题。

您还可以查看 Phabricator 管道differential.createcomment以将消息脚本化到差异,如下所示:

arc call-conduit --conduit="https://my.phabricator.com/" --arcrc-file="robot.arcrc" \
  differential.createcomment <<EOF
{"revision_id":"1234","message":"Yer build done failed"}
EOF

具有推送消息凭据robot.arcrc的文件在哪里,并且是修订号。您必须使用API 来获取修订号。arcrc1234conduit

因此,我认为答案是您可能必须构建自己的自定义解决方案,具体取决于您想要集成的 CI 工具的 CI 集成。这里讨论了 Travis 对 Phabricator 的支持。

编辑:这是traphic,一个扩展 arcanist 以将差异推送到 GitHub 上的分支并在 上arc diff删除它们的示例arc land。当 Travis-CI 从 GitHub 中寻找更新时,它会构建你的差异。

旁注:这主要是一个大脑转储。我知道好的答案有更多的代码示例和链接不受欢迎,但这个问题非常开放并且正在寻找指针,所以我试图提供帮助。

于 2015-01-22T16:50:53.870 回答
6

如果您使用的是 Jenkins,Uber 的好人创建了一个 Jenkins Phabricator Differential 插件,它可以真正清理您的工作配置(如果您已经使用zerodiff 帖子中的链接进行了设置)。

于 2015-10-14T07:33:20.430 回答
0

可能值得注意的是,Phabricator 的持续集成工具(即 Harbourmaster)目前正在开发中。

您可以在他们的比较页面的表格中找到它。见http://phabricator.org/comparison/

于 2015-06-20T03:49:36.053 回答