📌

Pull RequestのGitHub Actionsの結果が別Pull Requestにも使用されてしまう現象と対応

2021/03/29に公開

はじめに

タイトルの現象に出会ったので、発生条件、現象、対応を備忘録として残します。
※2021/03/28時点の条件と現象となります。

条件

  • 以下の図のように、リポジトリにmainブランチと、mainブランチから派生したfeature、subブランチがある。

  • どのブランチでもGitHub Actionsを設定しており、Pull Request時にRSpecを実行する。

  • subブランチのみRSpecが失敗する。mainやfeatureブランチではRSpecが成功する。

  • featureブランチからmainブランチに対してPull Requestを作成後、featureブランチからsubブランチに対してPull Requestを作成する。(作成方法:Pull Requestを新しいタブで開いて作成)

現象

両方のPull Requestで、GitHub Actionsの結果が失敗として表示されます。
RSpecが失敗するのはsubブランチのみのため、本来、mainブランチへのPull RequestではGitHub Actionsは成功するべきと思われます。

  • mainブランチへのPull Request

  • subブランチへのPull Request

原因の推測

両方のPull Requestにある、GitHub ActionsのDetailsを開くと、どちらも失敗したRSpecの結果を参照しているようです。
そのため、この現象が発生すると思われます。

  • mainブランチへのPull RequestのGitHub Actions

  • subブランチへのPull RequestのGitHub Actions

対応

こちらができることは、subブランチでもGitHub Actionsが成功するようにしておく、となります。

また、GitHub Support Communityに対して、この挙動は正常動作なのかどうか、質問しました。
https://github.community/t/the-statuses-of-github-actions-in-different-pull-requests-refer-to-the-same-github-actions/171133

おわりに

この現象に出会ったときは何が起きたのか分からなかったのですが、条件を1つ1つ確認していくことで、やっと理解できました。
執筆時点ではGitHub Support Communityからの回答待ちなので、回答され次第、追記します。
この記事が誰かのお役に立てれば幸いです。

Discussion