2014-03-26 43 views
1

我有一个任务验证即将部署的构建的完整性。如何从任务中停止Capistrano部署

我想暂停/失败部署,以防万一它被破坏。

task :test_build do 
    if something 
    puts "Problem with build" 
    #prevent deploy to continue further 
    end 
end 
after('deploy:update_code', 'test_build') 

注:项目采用railsless-deploy

+1

'raise'应该为此工作。 – engineersmnky

回答

4

你应该提出一个CommandError例外:

error = CommandError.new("An error that should abort and rollback deployment") 
raise error 

因此,没有回溯所示。

0

如前所述通过在问题的意见@engineersmnky,raise "Error with build"将触发当前部署停止。但是这个解决方案打印出一个丑陋的堆栈跟踪,因为它没有被Capistrano处理。