Bitbucket サーバーにプッシュされたコードを Jenkins でビルドする
無意味にハマった。
Jenkins 側の設定
とりあえず Pipeline を使っているものとする。「ビルドのパラメータ化」にチェックを入れておくと、外部からのパラメータを受け取れるようになる。
例えばパラメータ "branch" を定義していると、Pipeline Script の Groovy は変数 branch の中に値が入った状態で起動する。
Bitbucket Server 側の設定
うちの会社では Bitbucket Server を使っている。
HTTP-Request Hook for Bitbucket Server | Atlassian Marketplace
とりあえずこのプラグインを入れる。
HTTP-Request Hook for Bitbucket Server の設定
Method
POST にする。後述するように Post Data が空であるにも関わらずだ。
URL
JENKINS_URL/job/JOB_NAME/buildWithParameters?PARAMETER_NAME=PARAMETER_VALUE
の形式で書く。
例えば、プッシュされたブランチの名前が知りたければ、以下のように書く。
JENKINS_URL/job/JOB_NAME/buildWithParameters?branch=${refChange.refId}
Post Data
空のままで良い。