Jenkinsでgithubのpull requestをビルドする

Jenkins上でGithubのプルリクエストをビルドできたのでその方法を記録しておく。もちろんGithub enterpriseでも可能

この方法では通常のブランチをビルドできないのでブランチ用とプルリク用にジョブを2つ作らなくてはならないのが欠点

パラメータの設定

プルリクIDを指定するパラメータ

ここではPRというパラメータ名にした。

f:id:paulownia:20171228132204p:plain

マージ前か後か選ぶパラメータ

Githubはプルリクを出した時点でマージされたコミットも作成しているようなので、それを選べるようにした。ここではSTATEというパラメータ名にした。

f:id:paulownia:20171228132223p:plain

オートマージ不可の場合mergeを選ぶとエラーになると思われる

ソースコード管理の設定

Git→リポジトリ→高度な設定→Refspec に以下を入力

+refs/pull/${PR}/${STATE}:refs/remotes/pr/${PR}/${STATE}

Git→ビルドするブランチ→ブランチ指定子には以下を入力

refs/remotes/pr/${PR}/${STATE}

f:id:paulownia:20171228130639p:plain