【发布时间】:2014-09-28 13:24:36
【问题描述】:
通过heroku运行命令时,如:
heroku run rake db:migrate
我想知道命令是否成功。不幸的是,即使运行迁移失败,我的退出状态也是 0。
我正在编写一些 ruby 代码来包装这个命令并调用它,如果命令失败则会引发错误。代码如下:
Open3.popen2e('heroku run rake db:migrate') do |stdin, stdout_and_stderr, wait_thr|
raise 'running migration failed' unless wait_thr.value.success?
end
即使运行失败,我也会收到一条消息:
rake 中止! StandardError: 发生错误,这个和以后的一切 迁移已取消:
我的代码本身不会引发错误。检查上面代码中的wait_thr.value,它的退出代码为0,这意味着heroku CLI认为rake调用成功。
我的代码如何知道 heroku cli 运行的命令是否失败?有没有办法告诉 heroku CLI 返回它运行的命令的状态码?
【问题讨论】: