3
1

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】トリガー`paths`の条件の指定がうまくいかない

Last updated at Posted at 2023-09-02

はじめに

  • Github Actionsのワークフローが走る条件として、特定のディレクトリ配下のファイル変更が含まれている場合のみに動くようにしたいがうまくいかなかった。

問題点

  • pathsによるディレクトリ指定を行うと、指定したパスに対する変更がトリガーとなるため、"api/**"のように指定するとapi配下のファイルが含まれている場合のみワークフローが動くようになるはずなのだがうまくいかない。
    • 具体的には、空コミットでもワークフローが動いたり他のディレクトリ以下の変更のみのときも動いてしまったり動かなかったり挙動が不安定でした、、、。

試したこと(現状)

  • pathsの追加

name: "do PHPUnit"

on:
  pull_request:
    types: [opened, reopened, synchronize]
    // ここを追加
    paths:
      - "api/**" # api配下の変更が含まれている場合のみ実行

jobs:
//...(略)

解決策

  • pull_requestpushに変更
name: "do PHPUnit"

on:
  push: // ここを変更
    paths:
      - "api/**" # api配下の変更が含まれている場合のみ実行

jobs:
//...(略)

結果

  • 無事api配下のファイルの変更がある場合にのみワークフローが走るようになった。

終わりに

なぜpull_requesだとうまくいかないかはわかりませんが、今回pushで問題なさそうなので今回の変更で対応することにしました。

pushpull_requestのトリガーされるタイミングの違い。

  • push
    • リポジトリへのブランチやタグのプッシュ時にトリガー
  • pull_request
    • プルリクエストの活動(作成、更新、同期、再オープンなど)に関連するイベント時にトリガー

動作の文脈

  • push
    • 実行はプッシュされたブランチのコンテキスト
  • pull_request
    • 実行はマージが行われた後のコード(すなわち、PRのブランチがベースブランチにマージされた状態)のコンテキスト
3
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?