4

我想使用 Capistrano 3 部署我的 PHP 应用程序。我的应用程序使用 Symfony 2 作为框架,使用 Phing 作为构建系统。我已经安装了capistrano-symfony,所以我可以在 Capistrano 内部使用 Symfony 命令。

问题是它还修改了部署流程。具体来说,它在这里添加了两个任务:

https://github.com/capistrano/symfony/blob/master/lib/capistrano/tasks/symfony.rake

  after "deploy:updated", "deploy:clear_controllers"
  after "deploy:updated", "deploy:assets:install"

有没有办法再次从流程中删除这些钩子?这些操作已经由我的 Phing 构建脚本(由 Capistrano 调用)执行。无需再次运行它们。

4

2 回答 2

8

终于想通了,部分。我可以删除命名before的钩子,但不能在块之前或钩子之后(因为它们被转换为 Rake 中的块)。我将此添加到我的deploy.rb

Rake::Task['deploy:updated'].prerequisites.delete('composer:install')

我发现我不需要任何after钩子,所以我简单地清除了它们:

Rake::Task['deploy:updated'].actions.clear()

我唯一不知道的是如何清除特定的after钩子,因为它们最终成为块(即匿名函数)。

于 2014-03-31T07:17:36.750 回答
2

您可以清除任务本身;

Rake::Task["deploy:clear_controllers"].clear

这样操作仍将被调用,但没有任何效果。

于 2017-03-19T20:38:55.350 回答