biome ciのchangedオプションをgithub actionsで使う
概要
github actionsでbiome ci
を設定していて、動いてると思ったらチェックしたファイルが0になっていた。
今回入れたプロジェクトではlint機能で怒られる所が複数あるため一気に解決が難しく、徐々に解決していくためにbiome ci
の--changed
オプションを使っていて、それの影響で対象ファイルが0になっていた。
対応
そもそもなぜ0になるのかというのを調べた所以下のissueを見つけた
🐛 biome ci in pipeline doesn’t apply biome.json · Issue #3357 · biomejs/biome
示されている解決方法を見るに原因としてはactions/checkout
の動作として別ブランチを持ってきていないのでdevelop
ブランチがなかったのだと思われる
解決方法は以下の通り
actions/checkout@v4
のチェックアウト時にfetch-depth: 0
を指定するbiome ci
の実行時に--vcs-default-branch=origin/${{ github.base_ref }}
を指定するorigin/
が${{ github.base_ref }}
の前にあるのが重要
以下設定例
jobs:
quality:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Biome
uses: biomejs/setup-biome@v2
with:
version: latest
- name: Run Biome
run: |
biome ci . --changed --no-errors-on-unmatched --vcs-default-branch=origin/${{ github.base_ref }}
これで一応意図通りにチェックされ、対象ファイルが0ではなくなった。
ただ--vcs-default-branch
の所でremoteのブランチがorigin
前提になっているので、ここをもうちょっとなんとかしたい。。
もっと良い解決方法があればdmなどで教えていただけると助かります。
参考
GitHub Actions の Workflow 実行内で Ref(ブランチ名)を取得する方法 | DevelopersIO