从Capistrano 3中移除钩子

San*_*hal 3 deployment capistrano symfony capistrano3

我想使用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"
Run Code Online (Sandbox Code Playgroud)

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

San*_*hal 7

终于弄明白了,部分原因.我可以删除命名的before钩子,但不能在块之前或钩子之后(因为它们被转换为Rake中的块).我把它添加到我的deploy.rb:

Rake::Task['deploy:updated'].prerequisites.delete('composer:install')
Run Code Online (Sandbox Code Playgroud)

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

Rake::Task['deploy:updated'].actions.clear()
Run Code Online (Sandbox Code Playgroud)

我唯一无法弄清楚的是如何清除特定的after钩子,因为它们最终成为块(即匿名函数).