【问题标题】:Continuous integration (CI) with Phabricator?与 Phabricator 的持续集成 (CI)?
【发布时间】:2023-03-24 09:37:01
【问题描述】:

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

【问题讨论】:

  • 我的公司使用 Phabricator 在 Jenkins 中启动构建,但我们还没有真正掌握使用 Phabricator 的 CI。我将遵循这一点,希望得到我们自己使用的提示。

标签: continuous-integration travis-ci phabricator circleci


【解决方案1】:

我已经完成了与 Travis-CI 的集成,方法是向 Phabricator 添加 post diff 和land hook,以将 diff 作为分支推送到 Travis 查找分支更新的 GitHub。据我所知,Travis-CI 只与 GitHub 集成,所以如果你的主 repo 在那里并且 Phabricator 指向它,它就可以完成。

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

您还可以查看 Phabricator 管道 differential.createcomment 以将消息编写到 diff 中,如下所示:

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 中寻找更新时,它会构建你的差异。

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

【讨论】:

  • 我对此进行了编辑以删除前两个损坏的链接。如果您发现更好的链接,请随时接受或进一步编辑。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    如果您使用的是 Jenkins,优步的好人创建了 a Jenkins Phabricator Differential plugin,它可以真正清理您的工作配置(如果您已经使用来自 zerodiff's post 的链接进行了设置)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-06
      • 2019-10-31
      • 2014-03-15
      • 2019-03-08
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多