我尝试了持续集成工具Travis CI,CircleCI和codeship,但发现它们都没有为phabricator提供支持文档。有没有人有关于如何使用Phabricator进行持续集成(CI)的想法?
答案 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.arcrc
是arcrc
文件,其中包含推送消息的凭据,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/