【问题标题】:How do you add some steps to a capistrano task?如何在 capistrano 任务中添加一些步骤?
【发布时间】:2009-10-08 21:48:58
【问题描述】:

我想在运行 deploy:migrate 任务之前停止一些进程。我知道我可以通过复制现有代码并在任务的开头和结尾添加停止/启动步骤来重新定义 deploy:migrate 任务。

我想知道是否有办法避免从我的任务版本中的默认部署:迁移任务中复制代码。有没有办法在定义同名的新任务时引用现有的 deploy:migrate 任务?

【问题讨论】:

    标签: capistrano


    【解决方案1】:

    与其重新定义deploy:migrate,不如为它定义一个before或after钩子。首先,创建一个新任务来完成您需要做的事情:

    task :custom_name do
      # whatever you need to do
    end
    

    然后通过执行以下操作之一将此新任务设置为在 deploy:migrate 任务之前或之后运行:

    before "deploy:migrate", :custom_name
    after "deploy:migrate", :custom_name
    

    【讨论】:

    • 谢谢,这正是我需要的
    【解决方案2】:

    出于我的要求,我覆盖了 deploy.rb 中的现有任务

    namespace :deploy do
      # to Override deploy:migrate task
      task :precompile, :roles => :app, :except => { :no_release => true } do
        run "your modified commands"
      end
      # to override deploy:assets:precompile task
      namespace :assets do
        task :precompile, :roles => :app, :except => { :no_release => true } do
          run "your modified commands"
        end
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-24
      • 2021-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多