Backlog(Git)とJenkins(MSBuild)を連携させ、自動ビルドさせる
BacklogにあるGitリポジトリとJenkinsを連携させ、CIってのをやってみたいと思います。
環境
Windows 7 64bit
Jenkinsのインストール
まずはこちらのサイトからJenkinsをダウンロード、インストールしましょう。
インストールが終われば、
で起動できます。
Jenkinsの設定-アドイン
「Jenkinsの管理>プラグインの管理>利用可能タブ」からアドインを追加しましょう。
- MS Build
- Git Plugin
- GIT client plugin*2
- Backlog plugin
強制的にJenkinsを再起動したい場合は
http://localhost:8080/safeRestart
このページで実行できます。
Jenkinsの設定-システムの設定
「Jenkinsの管理>システムの設定」でGit、MSBuildの設定をしましょう。
Git
Name : Default Path : C:\Program Files (x86)\Git\cmd\git.exe
名前は何でも可。あまり適切なものも思い浮かばないので初期値でいいでしょう。
Pathにgit.exeへのフルパスを指定。利用するPCによっては上述とパスが異なるかもしれませんのでご注意。 なお、git.exeがない場合は
こちらからインストールしてください。その際は、「Run Git from the Windows Command Prompt」でインストールします。
MS Build
Name : v4.0.30319 Path : C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
C:\Windows\Microsoft.NET\Framework あたりにあるMSBuild.exe のパスを指定します。.NETのバージョンによってパスが異なりますので、必要に応じて用意してください。
パスにEXEへのフルパスを指定すると
マスター上のC:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exeはディレクトリではありません(スレーブにはあるかもしれません)。
という警告が出ますが、無視。(ディレクトリC:\Windows\Microsoft.NET\Framework\v4.0.30319を指定しても動きませんので)
ジョブ
設定ができたらBacklogのリポジトリからFetchしてビルドするジョブを作ります。
「新規ジョブ作成」から
ジョブ名 : Backlog フリースタイル・プロジェクトのビルド
を設定し、「OK」を押下。(ジョブ名は任意の名称でOK)
ジョブ全体
Backlogのチェックボックスがあるので、チェックし、以下のように設定。
Backlog URL : https://*****.backlog.jp/projects/***** ユーザーID : ******* パスワード : *******
個人のIDより、Jenkinsというユーザーを作った方がよさげかな。
ソースコード管理
Gitにチェックを付けて以下のように設定。
Repository URL : https://*****.backlog.jp/git/*****/******.git
CredentialsにはBacklogのID/Passwordを設定。
Reporitory URL 入力直後はエラー出ますが、認証失敗エラーなので無視してCredentialsの設定へ進んでください。 Credentials の設定が終わってもエラーが出ている場合は何かがおかしいです。
ビルドトリガ(任意)
本当はBacklogのWebHookと連携さ世帯ところですが、グローバルIPなんざ持っていませんので、定期的にこちらからBacklog(Git)を見に行くこととします。
「定期的に実行」にチェックを付けてスケジュールは以下のように設定。
# 分 時 日 月 曜 H/15 9-18 * * * #分 (0-59) #時 (0-23) #日 (1-31) #月 (1-12) #曜日 (0-7) 0と7は日曜日
上記は「9-18時の間、15分置きに実行する」という意味になります。詳細は同入力欄右にある「?」ボタンをクリックするとよいでしょう。
正しく設定できれば、同テキストボックス下に
前回は2015年3月29日 11時58分51秒 JSTに起動しました。次は2015年3月29日 12時13分51秒 JSTに起動します。
のように具体的なスケジュールが表示されます。
ビルド
以下のように設定します。
MSBuild Version : v4.0.30319 MSBuild Build File : C:\Program Files (x86)\Jenkins\jobs\(ジョブ名)\workspace\****.sln Command Line Arguments : /t:Rebuild /p:Configuration=Release
引数については
.NETビルド・エンジン「MSBuild」使いこなし術 − @IT
などを参考にしてください。
ビルド後の処理
Backlogを使っていますので、「Backlogに稼働登録」を追加しておきましょう。
設定すると、ビルドが失敗した(もしくは不安定になった)際に、指定したBacklogのプロジェクトに課題が登録されます。 成功から失敗に変わった最初の一回だけ、課題が登録されます。 登録される課題の優先度は、失敗時には"高"、不安定時には"中"で登録されます。
ユーザID/パスワードは、上部(Backlog URLと同じ箇所)で設定した値が使用されます
今後について
単体テスト、成果物の保管など、いろいろと自動化できそうですが、それはまたの機会に。
*1:インストールパスをDドライブにしたらインストール中に An Error occurred while attempting to create the directory: D:\Program Files(x86) 」エラーが出て停止。
setup.exe を管理者として実行したら、今度は Service 'Jenkins' (Jenkins) failed to start. Verify that you have sufficient privileges to start system services.」 エラーが出て停止。
あきらめてインストール先はCのままにしました。
*2:Git Plugin選択したら自動でインストールされるかも