はじめに
- 力技でプルリクエストがあがるとそのブランチで自動テストが回るようにした
- リポジトリによって使うJenkinsが異なるため、今回これらのプラグインは使わない
- Bitbucket Server: Parameterized Builds for Jenkins
- Jenkins: StashBranchParameter - Jenkins - Jenkins Wiki
先に結論
- Parameterized Builds for Jenkinsはプロジェクト単位でJenkinsのURLを登録できるので、適切な単位でプロジェクトを分けましょう
やったこと
- JenkinsにGeneric Webhook Trigger プラグインを入れる
http://JENKINS_URL/generic-webhook-trigger/invoke
がトリガーになる
- Bitbucket Serverのウェブフックを設定する
- 上記のURLを設定
Jenkinsジョブのビルド・トリガを設定する
シェルの実行を書く
- ペイロードから取ったブランチに切り替えて実行
echo --------------------------------------------------- echo "ジョブ開始" echo "プルリクエスト: ${payload_title}" echo "ブランチ: ${payload_branch}" echo --------------------------------------------------- echo git fetch origin BRANCH=`echo $payload_branch |sed "s/refs\/heads\///"` echo --------------------------------------------------- echo "branch is $BRANCH" echo --------------------------------------------------- git reset --hard origin/${BRANCH} chmod +x gradlew
- できた
その他
- 今回はプルリクエストだけをトリガーにしたが、Repository eventsとPull request eventsの両方をトリガーにしたい場合は、
eventKey
を条件にしないといけなさそう