使用Harbormaster和Drydock

时间:2015-07-20 23:36:15

标签: continuous-deployment phabricator

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

  1. 每当提交时,都应触发构建计划Deployment。这可以通过 Harold 轻松完成。

  2. 构建计划Deployment包含一些运行命令的构建步骤。

  3. 我知道 Drydock Harbormaster 是原型,因此似乎没有太多文档。

    首先,我创建了一个构建计划,并添加了两个构建步骤进行测试:

    • Lease Host构建步骤,localhost为名称,linux为平台
    • Run Command构建步骤,php /var/www/ci/test.php为命令,localhost为主机

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

    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}
    

    有人能给我一些提示,说明如何使用 Harbormaster Drydock 在localhost上运行命令吗?

2 个答案:

答案 0 :(得分:0)

问题是我没有通过 Drydock 创建任何资源。在这里,您可以使用 Harbormaster Drydock 执行命令:

  1. 创建干船坞蓝图(例如Blueprint 4711)。
  2. Drydock 创建 Passphrase 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. 使用您想要的命令和 Drydock Blueprint 为您的构建计划Run Command)添加第二个构建步骤 Host
  7. 将服务器本身用于CD / CI可能只是小型安装的一种选择。

答案 1 :(得分:0)

您可能对我在Wikibooks上发布的涵盖了大多数方面的出色指南感兴趣。如果您想了解年历,Drydock和Harbormaster如何相互配合:

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

当然,您会发现一些屏幕截图和不错的模式,例如:

Phabricator continuous integration schema

该指南以某种方式扩展了官方文档,此外,还包括“疑难解答”部分(涵盖了您的确切问题!)。

祝您阅读愉快!