GitHub Actionsを使って、タグを付けた際に実行されるようにしてる。
monorepoにしたくて、dorny/paths-filterを試していたけど、
うまくいかなかったのでいろいろ調べてみたときの備忘録(*´ω`*)
シンプルに使ってみたけどだめだった
こんな感じで、uses: dorny/paths-filter@v2
を追加しただけだと、
mainブランチとタグを比較してしまい、差分なしの状態になってしまった。。
name: on_push_tags_action "on": push: tags: - "v*.*.*" jobs: my_job: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: dorny/paths-filter@v2 id: filter with: filters: .github/workflows/filters.yml
やってみた方法
自前でタグを取得するという形で対応。
actions/checkout@v3
でfetch-depth: 0
を指定してもいいけど、
タグだけがほしいので、自分でgit fetch --tags -f
するようにした。
name: on_push_tags_action "on": push: tags: - "v*.*.*" jobs: my_job: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 # 1つ前のタグの取得処理を追加 - name: Get the pre version run: | git fetch --tags -f pre_tag=$(git tag -l --sort -v:refname | head -n2 | tail -1) - uses: dorny/paths-filter@v2 id: filter with: # 比較元(base)に1つ前のタグを指定 base: ${{env.PRE_TAG}} filters: .github/workflows/filters.yml
以上!! これでモノレポでのデプロイもできるように(´ω`)!!