reviewdogのfail_on_errorで、lintに引っかかってもエラーにならない

reviewdogのfail_on_errorで、lintに引っかかってもエラーにならない

概要

最近reviewdogでlintエラーを検出しても、ジョブがfailせず、PRマージブロック状態にならないことに気付きました

解決

以下のようにgithub-checkと併用して設定されるfail_on_errorの挙動に不整合があり、infoやwarningレベルの問題を検知してもexit with 1(要はエラー)を返していなかったとのこと

with:
fail_on_error: true # infoやwarningレベルの問題が起きてもジョブが失敗しない
reporter: github-pr-check

この挙動は既に修正されていて(ref)、infoやwarningレベルの問題でもジョブが失敗するようになりました

また、fail_on_errorは非推奨となり、新しいオプションのfail_levelを使ったほうがいいらしい
もし、修正前の挙動(つまりはinfo, warningレベルでは失敗しない)にしたい場合、以下のようにfail_levelを使用し、errorと指定する

with:
fail_level: error # error レベル以上の問題でジョブを失敗させる
reporter: github-pr-check

こちらは以下の5段階で設定できるので便利そう

  • none: 問題があってもジョブは失敗しない
  • any: どのレベルの問題でもジョブを失敗させる
  • error: error レベル以上の問題でジョブを失敗させる
  • warning: warning 以上の問題でジョブを失敗させる
  • info: info 以上の問題でジョブを失敗させる