我有一项任务可以验证即将部署的构建的完整性。
我想暂停/失败部署,以免它被破坏。
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
答案 0 :(得分:4)
你应该引发一个CommandError异常:
error = CommandError.new("An error that should abort and rollback deployment")
raise error
所以没有显示回溯。
答案 1 :(得分:0)
正如@engineersmnky在问题的评论中所述,raise "Error with build"
将触发当前部署的暂停。但是这个解决方案打印出一个难看的堆栈跟踪,因为它没有被Capistrano处理。
答案 2 :(得分:0)
CommandError在Capistrano中不再定义。查看其他示例,我发现正在使用puts语句来描述错误,然后使用退出调用。所以就这样:
void loop() {
if(Serial.available()){
int available = Serial.available();
for(int i=0; i< available; i++){
char a = Serial.read();
if(i < 1){
input1 = a;
}
if(i > 1){
int c =(int)a - 48;
input2 *= 10;
input2 += c;
}
}
}