- Published on
特定フォルダのファイルが変更された場合に GitHub Action を実行する
- Authors
- Name
- Satoshi Oikawa
- https://x.com/oikwsat
monorepo で運用している場合には,変更があったプロジェクトのみ Workflow を実行する・しないを制御したいです。
Workflow そのものを実行する・しないは on.<push|pull_request>.paths
で設定することができます。 逆に特定のフォルダを除外したい場合は paths-ignore
で除外できます。
on:
push:
paths:
- 'src/**'
paths-ignore:
- 'docs/**'
続いて Workflow は常に実行したいけど,特定 step の実行する・しないを制御したい場合もあります。 https://github.com/marketplace/actions/has-changed-path のような action を使えばできそうな気配がありますが,まだ試せていません。 良い方法を知ってる方は教えてください。 (後で試して追記予定)
2021-10-09 追記
https://github.com/marketplace/actions/paths-changes-filter を使うことで実現することができます。
- uses: dorny/paths-filter@v2
id: changes
with:
filters: |
src:
- 'src/**'
# run only if some file in 'src' folder was changed
- if: steps.changes.outputs.src == 'true'
run: ...