sbtが出力するchrome traceをいい感じに加工してgithub actionsで自動出力するものを作った

JSとyamlを数十行書いただけです

https://github.com/xuwei-k/sbt-trace-action/commit/a61c1633f8b84caf33a500931ae47ffb583ac6df

以前書いた以下

xuwei-k.hatenablog.com

を綺麗にsbt pluginにしたかったけれど

  • sbtのpackage privateなclassを触ってる
  • sbtのversion 1と2で微妙に違う
  • package privateなものを避ける場合、結構な量のコードをsbt内部のコピペしないといけない
  • どの方法を取っても、多かれ少なかれsbtの内部実装依存になってしまって厳しい

などがあってどうするか考えていたのですが、sbt標準が出すものを加工する方針にすればいいのでは?と思いついたので作りました。

もちろん

  • sbtが吐き出したものをそのままupload
  • それをdownload
  • そしてchromeに読み込ませる

をやってもいいというか、やった方が細かい部分まで見れるけれど、手軽にみたい場合はそれすら面倒ですよね。

- run: sbt test

となっていたら

- run: sbt -Dsbt.traces=true test
- uses: xuwei-k/sbt-trace-action@v1

-Dsbt.traces=true の追加と、さらに1行追加するだけで、自動で

https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-commands#adding-a-job-summary

GITHUB_STEP_SUMMARY に書き込む部分まで実行するので、あとはワンクリックで見れます。