使用Phabricator进行持续集成(CI)?

时间:2014-12-17 03:01:36

标签: continuous-integration travis-ci phabricator circleci

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

3 个答案:

答案 0 :(得分:8)

我已经完成了与Travis-CI的集成,通过向Phabricator添加post diff和land hook来将diffs作为分支推送到GitHub,其中Travis寻找分支更新。据我所知,Travis-CI只与GitHub集成,所以如果你的主要回购就在那里而且Phabricator指向它,那就可以完成。

如果您想采用这种方法,首先要创建自己的ArcanistConfiguration并覆盖didRunWorkflow。另请参阅如何创建new library。 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.arcrcarcrc文件,其中包含推送消息的凭据,1234是修订号。您必须使用conduit API来获取修订号。

因此,我认为答案是您可能需要构建自己的自定义解决方案,具体取决于要与其集成的CI工具的CI集成。这是特拉维斯对Phabricator的discussion支持。

编辑:这里是traphic,这是一个扩展奥术师的示例,用于将差异推送到arc diff上GitHub上的分支,并在arc land上移除它们。当Travis-CI从GitHub寻找更新时,它将构建你的差异。

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

答案 1 :(得分:6)

如果你正在使用Jenkins,优步的好人创建了a Jenkins Phabricator Differential plugin,可以真正清理你的工作配置(如果你已经使用{{3}的链接设置了它们})。

答案 2 :(得分:0)

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

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