概要
最近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 以上の問題でジョブを失敗させる