ruby - 如何从不同于 :deploy? 的命名空间触发 Capistrano 任务

标签 ruby deployment capistrano

在我的 Capistrano 配方中,我有一个具有不同任务的命名空间:

namespace :mystuff do
  task :mysetup do; ... end;
  task :mytask1 do; ... end;
  task :mytask2 do; ... end;
  task :mycleanup do; ... end;
end

These customised tasks are triggered via lines like this at the top of my recipe:

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

最佳答案

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

这个有效:

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

关于ruby - 如何从不同于 :deploy? 的命名空间触发 Capistrano 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7021523/

相关文章:

ruby:多个相同或同步的 Mechanize 实例?

当我关闭并重新打开终端时,ruby 和 rails 会返回到早期版本

ruby-on-rails - 使用 rolify 查找具有特定角色的所有用户

ruby-on-rails - 如何在 ruby​​ 代码中添加来自 github 的内部版本号和日期?

ruby-on-rails - capistrano 部署无法安装 nokogiri

ruby - 如何在 vim 中使用正确的 ruby ?如何在 VIM 中修改 $PATH?

c - 如何在给定源代码树的情况下自动扫描库依赖项?

visual-studio-2010 - 我的 Visual Studio 安装程序项目中的所有属性在哪里?

使用 sqlite 数据库部署 Django 应用程序

ruby-on-rails - 如何正确诊断 500 错误(Rails、Passenger、Nginx、Postgres)