【问题标题】:How can I trigger a Capistrano task from a different namespace than :deploy?如何从不同于 :deploy 的命名空间触发 Capistrano 任务?
【发布时间】:2011-10-24 16:36:15
【问题描述】:

在我的 capistrano 配方中,我有一个包含不同任务的命名空间:

命名空间 :mystuff do
  任务:mysetup 做; ... 结尾;
  任务:mytask1 做; ... 结尾;
  任务:mytask2 做; ... 结尾;
  任务:mycleanup 做; ... 结尾;
结束

这些自定义任务是通过我的食谱顶部这样的行触发的:

after "deploy", "mystuff:mycleanup"

我想从我的命名空间内执行一个普通的 capistrano 任务。例如,如果已经建立了一定数量的发布文件夹,我想自动触发正常的清理任务:

task :mycleanup do;
  if releases.length > 50
    logger.info "Too many releases, runing deploy:cleanup."
    deploy:cleanup #***THIS DOESN'T WORK***
  end
end;

不幸的是,在我的命名空间内调用 deploy:cleanup 不起作用。如何执行deploy:cleanup

【问题讨论】:

    标签: ruby deployment capistrano


    【解决方案1】:

    啊哈,正确的语法是使用.,而不是:。即deploy.cleanup,没有deploy:cleanup

    这行得通:

    task :mycleanup do;
      if releases.length > 50
        logger.info "Too many releases, runing deploy:cleanup."
        deploy.cleanup
      end
    end;
    

    【讨论】:

      猜你喜欢
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多