3
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 3 years have passed since last update.

【GitHub Actions】トリガーにファイルパスとブランチの両方を指定したときの動作

Last updated at Posted at 2021-08-26

GitHub Actions を使っていると、ファイルパスとブランチのANDが取れたときだけワークフローを動かしたくなることがある。

例えば、各ファイルに紐づくワークフローがあり、あるブランチにマージしたときだけ動かしたいとき。ここでは、未更新ファイルに紐づくワークフローは動いてほしくない。

期待はこう。

ファイル A を更新 → ワークフロー A だけが動く
ファイル B を更新 → ワークフロー B だけが動く

こうすればOK

workflow_A.yml
on:
  push:
    branches:
      - main
    paths:
      - 'file_A' #このワークフローに紐づくファイル名を指定

ただ、公式Doc に明示的に仕様が書かれていなかったので、いくつかのパターンで検証してみました。

検証

ケース 期待動作
ファイル A を編集し main ブランチに push ワークフロー A が動く
ファイル B を編集し main ブランチに push ワークフロー B が動く
ファイル C を編集し main ブランチに push どのワークフローも動かない
ファイル A を編集し test ブランチに push どのワークフローも動かない

ファイル構成はこんな感じ。ワークフローの中身はこちら

.
├── .github
│   └── workflows
│       ├── workflow_A.yml
│       └── workflow_B.yml
├── file_A
└── file_B
└── file_C

検証結果

ケース 期待動作 結果
ファイル A を編集し main ブランチに push ワークフロー A が動く OK
ファイル B を編集し main ブランチに push ワークフロー B が動く OK
ファイル C を編集し main ブランチに push どのワークフローも動かない OK
ファイル A を編集し test ブランチに push どのワークフローも動かない OK

以上の結果から、on.push.brancheson.push.paths を併用した場合は、ANDが取れた場合にのみ更新されることが確かめられました。

3
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
3
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?