概要
既存のASP.NETのプロジェクトをビルドするジョブを組むまで
MSBuildをキックしたいのでWindowsServerで動かす必要がある
リポジトリはGitolite
ビルド後のデプロイはWindowsのコマンドで行う
インストール
WindowsServerに以下のものをインストールする。
- Jenkins
- Git for Windows
- MSBuild その他、OSのバージョンやビルド対象物に合わせて.NET Frameworkなど
各ツールのインストール方法は他記事に任せて、今環境特有のポイントを記載します
Jenkinsのインストール
- Windows版をダウンロードしてmsiを実行すればサービス登録までしてくれて簡単
- 途中インストール先が以下のようになっているので変更する
C:¥Program Files¥Jenkins=>C:¥Jenkins
Git for Windowsのインストール
- 途中インストール先が以下のようになっているので変更する
C:¥Program Files¥Git=>C:¥Git - Adjusting your PATH environmentは
Use Git from the Windows Command Promptを選ぶ。Jenkinsからコマンドで実行するため - Configuring the line ending conversionsは
Checkout as-is, commit as-isを選ぶ。Gitにあがっているソースをそのまま扱うため - Configuring the terminal emulator to use with Git Bashはどちらでも良い
- Configuring extra optionsはどちらもチェックを外す。ちなみに
Git Credential Managerは HTTPSでの認証を助けるものなので、今回のGitolite(SSH)には使えない
MSBuildと.NET Frameworkのインストール
サーバーのOSやビルド対象のプロジェクトによって必要
例えばWindows Server 2008で.NET Framework3.5が必要なプロジェクトだとデフォルトで入っていないので、サーバー管理でインストールする必要がある
MSBuildは.NET Frameworkに含まれているので、基本的にはそれがビルドに使える
うまくいかない場合、VisualStudioに含まれるバージョンもダウンロードできるのでそちらを使うと良いかもしれない。
Jenkinsの設定
プラグインのインストール
プラグインの管理メニューから、以下のプラグインをインストールする
Git Plugin
MSBuild Plugin
Git Pluginの設定
Global Tool Configurationから、Git InstallationsにAdd Git
Path to Git executableに C:/Git/bin/git.exe
MSBuild Pluginの設定
同じ画面でAdd MSBuild
MSBuild.exe ファイルパスに C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
※もともと入っている.NET4.0のMSBuildでいい場合
※別のMSBuildを使いたい場合はそちらのパスを入れる。
※WARNINGが出るが気にしないで良い
認証情報の登録
| 項目 | 値 |
|---|---|
| 種類 | SSHユーザー名と秘密鍵 |
| スコープ | グローバル |
| ユーザー名 | gitolite |
| 秘密鍵 | 直接入力 |
| 鍵 | id_rsaの中身をコピペする |
| パスフレーズ | |
| ID | 任意 |
| 説明 | 任意 |
※秘密鍵がパスフレーズありの場合、この方法は使えません。Credential PluginはLinuxの場合正常に動きますが、Windowsだとパスフレーズが扱えないようです。
JOB作成
フリースタイルプロジェクトで作成する
ソースコード管理でGitを選択
Repository URLにssh://サーバー:ポート/リポジトリ
Credentialsに gitoliteを選択
ここで一回ジョブを実行してみる Cloneしたファイルを確認しておく
ビルド
- ビルドでビルド手順の追加
-
MSBuildの実行を選ぶ - MSBuildバージョンにさっき追加したMSBuildを選択
- MSBuildビルドファイルにビルド対象のsln または csprojのパスを入力する。上記で確認した
Cloneしたファイルのフルパスを書く - コマンドライン引数に
/t:プロジェクト;Clean /p:Configuration=Release
※これはソリューションの一部をビルドしたい場合。もしビルドファイルにプロジェクトファイルを入力した場合は、プロジェクトは書かない。
※このあとビルドしたものをデプロイするが、もしデプロイにmsdeployを使う場合は、/t:Packageとする必要がある。それは別サイトを参照ください
デプロイ
- ビルドでビルド手順の追加
-
Windowsバッチコマンドの実行を選ぶ - robocopyなり、moveなりを使ってデプロイとコンフィグの調整などを行う
例:
robocopy C:\Jenkins\workspace\HOGE\PrecompiledWeb\HOGE C:\HOGE /E
del C:\HOGE\web.config
move C:\HOGE\web.config.test C:\GDPW\web.config
実行してみる
参考になったURL