表題のものを書きました。
workflow内でおもむろに pip install pytest-github-actions-annotate-failures
してから使うとアノテーションされる、という寸法になっています。
pytestは簡単にプラグインを書けるのがいいですね。初めて書いたけど、フックできる関数やTestReportの定義を適宜参照したら書けました*2。
仕組みとしては、 pytest_runtest_logreport
をフックして、落ちたテストの行数とファイルパスを取得しつつworkflow commandを発行するだけです。40行ぐらいで書けててシンプルになっています。
テスト失敗時の出力を、改行をエスケープすることでいい感じにアノテーションしています。
ご活用ください。