drone.io テストが通ってないプルリクエストのマージを禁止したい

この記事は drone.io Advent Calendar 2017 - Adventar の5日目の記事です。

drone.io は Goで作られたオープンソースのCD (Continuous Delivery)環境です。

github.com

テストが通ってないプルリクエストのマージを禁止したい

Github Entepriseと連携しているとプルリクエストにビルドの状態も表示され便利です。

f:id:ashphy22:20171204224401p:plain

しかしこのままだとビルドが通っていなくてもマージできてしまいます。

Protected branches を利用する

GitHub Enterprise には「Protected branches」と呼ばれる機能があり、特定のブランチへのマージ、プッシュを制限することができます。リポジトリSettingsから設定できます。

f:id:ashphy22:20171204224745p:plain

今回はmasterをデフォルトブランチとして設定した場合の例をご紹介します。

f:id:ashphy22:20171204224954p:plain

Require status checks to pass before merging にチェックを入れるとテストが通った場合のみマージできるようになります。 Include administrators にもチェックを入れておけば管理者を含め全員にこの制約を強制することができます。