使用 Harbormaster 和 Drydock 配置本地构建计划

Configure a local build plan with Harbormaster and Drydock

我正在尝试使用 HarbormasterDrydock 创建一个简单的构建计划:

  1. 每当提交时,应该触发构建计划 Deployment。这可以通过 Harold.

  2. 轻松完成
  3. 构建计划 Deployment 有一些构建步骤,其中 运行 一个命令。

我知道 DrydockHarbormaster 是原型,所以似乎没有太多文档。

首先我创建了构建计划并添加了两个构建步骤用于测试:

但是手动启动后的错误信息是:

exception 'Exception' with message 'Lease has been broken!' in /var/www/phabricator/src/applications/drydock/storage/DrydockLease.php:172
Stack trace:
#0 /var/www/phabricator/src/applications/drydock/storage/DrydockLease.php(198): DrydockLease::waitForLeases(Array)
#1 /var/www/phabricator/src/applications/harbormaster/step/HarbormasterLeaseHostBuildStepImplementation.php(32): DrydockLease->waitUntilActive()
#2 /var/www/phabricator/src/applications/harbormaster/worker/HarbormasterTargetWorker.php(52): HarbormasterLeaseHostBuildStepImplementation->execute(Object(HarbormasterBuild), Object(HarbormasterBuildTarget))
#3 /var/www/phabricator/src/infrastructure/daemon/workers/PhabricatorWorker.php(91): HarbormasterTargetWorker->doWork()
#4 /var/www/phabricator/src/infrastructure/daemon/workers/storage/PhabricatorWorkerActiveTask.php(162): PhabricatorWorker->executeTask()
#5 /var/www/phabricator/src/infrastructure/daemon/workers/PhabricatorTaskmasterDaemon.php(22): PhabricatorWorkerActiveTask->executeTask()
#6 /var/www/libphutil/src/daemon/PhutilDaemon.php(183): PhabricatorTaskmasterDaemon->run()
#7 /var/www/libphutil/scripts/daemon/exec/exec_daemon.php(125): PhutilDaemon->execute()
#8 {main}

谁能给我一些提示,告诉我如何使用 HarbormasterDrydock 在本地主机上 运行 命令?

问题是我没有通过 Drydock 创建任何资源。在这里,您如何使用 HarbormasterDrydock:

执行命令
  1. 创建一个干船坞蓝图(例如Blueprint 4711)。
  2. Drydock 创建一个 SSH 私钥密码,它可用于通过 SSH 访问您的本地主机(例如 K123).
  3. 通过 CLI 为您的本地主机创建 Drydock 资源

    ./bin/drydock create-resource --blueprint 4711 --name localhost --attributes host=localhost,platform=linux,remote=true,port=22,path=/var/drydock,credential=123
    
  4. 创建 Harbormaster 构建计划

  5. 构建步骤 (Lease Host) 添加到您的 构建计划,使用您的 Drydock 蓝图 作为 Artifactlinux 作为 Platform.
  6. 使用您想要的命令和您的 干船坞蓝图 as Host.

将服务器本身用于 CD/CI 可能只是小型安装的一个选项。

您可能对我在维基教科书中发布的涵盖大部分方面的精彩指南感兴趣。如果您想了解 Almanac、Drydock 和 Harbormaster 如何相互作用:

https://en.wikibooks.org/wiki/Phabricator_Administrator%27s_Handbook/Continuous_integration

当然你会发现一些像这样的截图和漂亮的模式:

本指南以某种方式扩展了官方文档,此外,它还包括一个故障排除部分(涵盖您的确切问题!)。

好好读书!