首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Capistrano3 -部署时删除失败的版本:失败

Capistrano3 -部署时删除失败的版本:失败
EN

Stack Overflow用户
提问于 2016-11-04 05:24:29
回答 1查看 409关注 0票数 2

我正在使用Capistrano 3。如何在不编写自己的任务的情况下删除deploy:failed上的失败版本?重点是失败的发行版停留在release目录中,我可以通过输入cap deploy:rollback意外地回滚到损坏的发行版。

UPD:目前我正在使用这个任务,但仍然在寻找更好的解决方案。

代码语言:javascript
运行
复制
namespace :deploy do

  desc 'Delete failed release'  
  task :rm_failed do  
    on roles(:all) do  
      execute(:rm, "-rf #{release_path}")
    end
  end

end

after 'deploy:failed', 'deploy:rm_failed'
EN

回答 1

Stack Overflow用户

发布于 2018-06-01 00:39:28

我使用Capistrano的有限经验表明,没有内置的机制来执行您想要的操作。编写一个使用deploy:failed触发的任务是处理这种情况的正确方法,因为它可以是特定于应用程序的。

一个更好的解决方案,它解决了deploy:clean在deploy:symlink:release --

代码语言:javascript
运行
复制
namespace :deploy do

    desc 'Delete failed release'
    task :rm_failed do
        on roles(:web) do
            if test "[ -d #{current_path} ]"
                current_release = capture(:readlink, current_path).to_s
                if current_release != release_path.to_s
                    execute :rm, "-rf #{release_path}"
                end
            end
        end
    end

end

after 'deploy:failed', 'deploy:rm_failed'

Capistrano page on rollbacks在处理回滚和故障方面有更大的讨论。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40411477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档