概要
筆者のver:ruby 2.6.5
git push heroku masterでHerokuへコミットをプッシュしたところ、エラーが発生しました。
エラーメッセージ:
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'Git URL'
結論
% heroku stack:set heroku-18 -a アプリケーション名
を実行してから再度git push heroku masterすると解決しました。
解説
エラーメッセージを翻訳すると以下になります。
2021年1月にHerokuのstackと呼ばれるサービスのverが18→20に更新されたため、
rubyのverと噛み合わないよと言われています。なので
% heroku stack:set コマンドでstackのverを指定してあげると解決する というのが今回の概要になります。
他の解決策としてrubyのバージョンアップ が考えられるかと思いますが、
現役エンジニアの方にお聞きしたところ
「別のアプリケーションにも影響が及ぶ可能性があるためオススメできない」とのことでした。
仕事に必要な場合、もしくはPCを買い替えて環境構築する際などにバージョンアップする方が安全だそうです。