JenkinsがGithubにpushされたbranchをテストする
頑張ったので忘れずにメモ。
master以外のbranchがpushされたときにはそのbranchでテストが走ってほしい。
結論からいうと、Gitプラグインの$GIT_BRANCH変数を使えばいいみたい。
Jenkinsにアカウントを作る
githubさんを追加しておく。
- 行列による権限設定
- ジョブ
- Read
- Build
- ジョブ
プラグイン
- Git Plugin
- GitHub Plugin
- GitHub API Plugin
- Parameterized Trigger Plugin
設定
- Git Plugin
- Global Config user.name Value
- Global Config user.email Value
Jenkins用に作っておくのがいいと思う。
- Github Web Hook
- Let Jenkins auto-manage hook URLs
- こっちを設定するとJenkinsが勝手にGithubのリポジトリのhook URLを自動でつけてくれるので簡単。でもURLは1つだけ。それがイントラなら結局手前に何か置くか、"override hook URL"で何かしないといけないみたい。
- Manually manage hook URLs
- 自分はこっちで試した。Github_Trigger_R9のジョブの方でGithubからのhook受けるようにして、R9ジョブでは受けたくなかった。
- Let Jenkins auto-manage hook URLs
ジョブの設定
Github_Trigger_R9
- Github project
- Github上のURLを入れる
- https://github.com/rightgo09/jenkins-hook-test/
- URL入れないとhookにひっかからないみたい
- ソースコード管理
- ビルド・トリガ
- Build when a change is pushed to Github
- ビルド後の処理
- Trigger parametrized build on other projects
- Build Triggers
- Projects to build
- R9
- Trigger when build is
- Stable
- Predefined parameters
- branch=${GIT_BRANCH}
- ここでブランチ名を下流ジョブに渡す
- Projects to build
R9
- Github project
- 入れない
- ビルドのパラメータ化
- 文字列
- 名前
- branch
- デフォルト値
- origin/master
- 名前
- Git
- Repository URL
- git@github.com:rightgo09/jenkins-hook-test.git
- Branches to build
- $branch
- Repository URL
- 文字列
- ビルド・トリガ
- Build when a change is pushed to Github
入れたり外したりがややこしい。
もしジョブを1つにするならこれを合体させればいいのだろうと思う。
enjoy!
参考:
Trigger Jenkins builds by pushing to Github | Four KitchensGitHub + Jenkinsでmaster以外のブランチをテストする方法 - QA@IT