【问题标题】:Remove hook from flow in Capistrano 3在 Capistrano 3 中从流中移除钩子
【发布时间】:2014-03-28 12:00:55
【问题描述】:

我想使用 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 调用)执行。无需再次运行它们。

【问题讨论】:

    标签: symfony deployment capistrano capistrano3


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      【解决方案2】:

      你可以直接清除任务本身;

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-19
        • 1970-01-01
        • 1970-01-01
        • 2015-10-01
        相关资源
        最近更新 更多