概要
既存の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
とする必要がある。それは別サイトを参照ください
###デプロイ
2. ビルドでビルド手順の追加
2. Windowsバッチコマンドの実行
を選ぶ
2. 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
https://gist.github.com/dany1468/2234130