チェックが全部緑のプルリクエスト2つでmainが壊れた — GitHubのRequire branches to be up to date before mergingで防ぐ
私はプルリクエストのチェックがすべて緑になったらマージしています。なので、自分のプルリクエストが触ってもいないテストファイルで CI が落ちたときは驚きました。 原因は私の変更ではありませんでした。別のプルリクエストがチェックをすべて通してマージされた直後に、main そのものが赤くなっていたのです。そのせいで、開いているプルリクエストはすべて自分とは関係のない理由で赤くなっていました。壊れた main の裏には、まだどのテストも実行されていない本物のバグも隠れていました。 マージされたプルリクエストのチェックは間違っていたわけではなく、古かっただけです。チェックが走ったのは、別のプルリクエストが先にマージされるより前でした。あとからマージされた側の変更が、先にマージされたプルリクエストの追加したコードを壊していました。GitHub の _Require branches to be up to date before merging_ を有効にすると、こうしたマージは新しい CI の実行を待つようになります。 本記事では、緑のプルリクエスト 2 つがどうやって赤い main…
続きを読む