494 文字
2 分

Q. pull_requestトリガーのworkflowがなぜか実行されていない

状況#

相談を受けて、Github 上で PR や workflow ファイルを確認したが、何の変哲もなく実行されない理由が分からなかった。

Workflow ファイルのトリガーなどの指定は次のようになっておりブランチで実行に制限は掛かっているものの、PR は master より生えたブランチから master に向けての PR であり、コミットログにも不自然なところはなかった。

on:
pull_request:
branches:
- master
- deploy
push:
branches:
- master
- deploy

試しに、その PR を複製した PR を新しく生やしたところ、workflow は正しく実行されたため、Github の障害を疑っていた。また結果はコミットに紐づいているため、元の PR でその workflow が成功した表示になった。

原因#

その後、話を聞いていると、最近参加したメンバーが PR を投げる直前までデフォルトブランチ以外のブランチをベースブランチに指定して作業していたことが分かった。

つまり、今回の状況は次のように発生していた。

  1. まず branch A から branch B への PR を作った。
    1. branches で master や deploy ブランチが指定されていない workflow は実行された。
    2. 一方、指定されている workflow は当然実行されない。
  2. その後何の変更もなく、base branch を master に切り替えた。
    1. 新規の push は無く、PR 自体も変更が検知されないため、push と pull_request トリガーの workflow は branches などの指定に関わらず実行されない。
    2. Workflow の実行結果の status はコミットに紐づいているため、既に実行されている push トリガーなどの workflow のみ正常に走ったような見た目となる。
    3. branches が指定された workflow は本来走る状況にも関わらず走っていないように見える状態になる。

Q. pull_requestトリガーのworkflowがなぜか実行されていない
https://blog.ohirunewani.com/posts/pull_request-triggered-workflow-not-executed/
作者
hrdtbs
公開日
2024-04-17
ライセンス
CC BY-NC-SA 4.0