【GitHub Actions】デプロイをpaths-ignoreとworkflow_dispatchで効率的に

【GitHub Actions】デプロイをpaths-ignoreとworkflow_dispatchで効率的に

GitHub Actionsのデプロイ設定で、ちょっとした変更でもワークフローが動いちゃう問題をpaths-ignoreで解決したときのメモです。

GitHub Actions #Github#CI/CD

【GitHub Actions】デプロイをpaths-ignoreとworkflow_dispatchで効率的に

サムネイル

GitHub Actionsのデプロイ設定で、ちょっとした変更でもワークフローが動いちゃう問題をpaths-ignoreで解決したときのメモです。

更新日: 6/22/2025

Firebase FunctionsへのデプロイCI/CDで、ドキュメント(.md)を少し直しただけでもワークフローが毎回動くのがずっと気になっていました。実行時間もコストももったいないので、設定を見直した際の備忘録です。

やったこと

結論から言うと、on.pushpaths-ignoreを追加して解決しました。これで、指定したファイルが変更されただけではワークフローが起動しなくなります。

具体的には、以下のように設定。

# ...
on:
  push:
    branches:
      - main
      - develop
    paths-ignore:
      - 'admin/**'
      - '.github/workflows/deploy.yml'
      - '.github/workflows/test.yml'
      - 'README.md'
      - '**/*.md'
# ...

adminディレクトリ配下や、他のワークフローファイル、あとはREADMEなどのmdファイルをまるっと無視するように指定しました。これで、無駄なデプロイが走らなくなってスッキリ。

補足メモ

自動実行を抑制すると、逆に手動で実行したい場面も出てきそうです。そんな時のために、workflow_dispatchを追加すると便利みたい。

# ...
  workflow_dispatch:
    inputs:
      environment:
        description: 'Environment to deploy'
        required: true
        default: 'dev'
        type: choice
        options:
          - dev
          - prd

これを使えば、Actionsの画面から手動でワークフローをトリガーし、さらにinputsで実行時にデプロイ環境を選ぶUIも作れるので、かなり柔軟な運用ができそうだと感じました。

応用メモ

この設定は、やはりGitのブランチ戦略と組み合わせると効果的だと感じました。

  • mainブランチ → 本番環境
  • developブランチ → 開発環境

という基本的なデプロイルールに加えて、'release/**''hotfix/**'のようなブランチパターンもトリガー対象に含めると、より実践的な開発フローに対応できそうでした。

# ...
    branches:
      - main
      - develop
      - 'release/**'
      - 'hotfix/**'
# ...

要点メモ

  • paths-ignore: 関係ないファイルの変更でCI/CDが動くのを防ぐ。コストと時間の節約になる。
  • workflow_dispatch: 手動実行の口も作っておくと、いざという時に柔軟に対応できるらしい。
  • ブランチ戦略: 自動デプロイのルールと組み合わせると、開発フローがスムーズになる。

誰かの参考になれば幸いです。

検索

検索条件に一致する記事が見つかりませんでした