0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【GitHub Actions】 CI/CD実行トリガーの対象パスを制限

Posted at

プロジェクト構成

プロジェクトに対してGitHub Actionsを用いてCI/CDを実現したいと思います。
例えばプロジェクトが下記のような構成だとします。
backend/frontend/に対してテストと静的解析を通して自動デプロイしたいです。
逆に他のファイルやディレクトリの変更に対してそれらのワークフローを実行する必要はありません。

.
├── .git
├── .github
├── .gitignore
├── README.md
├── backend
├── documents
└── frontend

変更前のワークフロー設定

変更前のワークフロー設定ファイルの内容です。
下記の設定だと、mainブランチへのプッシュやプルリクエストをトリガーにワークフローが実行されます。
しかしこのままだと、backend/frontend/以外の変更に対してもテストや静的解析、自動デプロイといったワークフローが実行されてしまい、少し大げさだなと思いました。

name: CI/CD

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    ...
  deploy:
    ...

変更後のワークフロー設定

paths:フィルタを使うと、特定のファイルやディレクトリに対する変更を含むプッシュやプルリクエスト時にのみワークフローを実行するように設定できます。
*が1つだと、指定したディレクトリ直下だけが対象になり、その下のサブディレクトリのファイルまではマッチしません。
**だと、任意のディレクトリ、任意の深さという意味になるので、指定したディレクトリ以下のすべてのファイルが対象になります。

name: CI/CD

on:
  push:
    branches: [main]
    paths:
      - "backend/**"
      - "frontend/**"
  pull_request:
    branches: [main]
    paths:
      - "backend/**"
      - "frontend/**"

jobs:
  test:
    ...
  deploy:
    ...
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?