首页 文章

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

提问于
浏览
8

我尝试了连续集成工具Travis CI,CircleCI和codeship,但发现它们都没有为phabricator提供支持文档 . 有没有人有关于如何做 continuous integration (CI) with Phabricator 的想法?

3 回答

  • 0

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

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

  • 6

    如果你正在使用Jenkins,优步的优秀人员创造了a Jenkins Phabricator Differential plugin,这使得有可能真正清理你的工作配置(如果你已经使用zerodiff's post的链接设置它们) .

  • 8

    我已经完成了与Travis-CI的集成,通过向Phabricator添加post diff和land hook来将差异作为分支推送到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集成 . 这是Travis对Phabricator支持的一个discussion .

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

    旁注:这主要是大脑转储 . 我知道很好的答案有更多的代码示例和链接是皱眉头,但问题是相当开放的,并寻找指针,所以我正在努力提供帮助 .

相关问题