[[Open棟梁>https://github.com/OpenTouryoProject]] wiki

*目次 [#efe99b12]
#contents

*概要 [#h6c9bdfa]
Open棟梁のJenkins CI Webサイトを構築の設定情報。

*構築手順 [#l2357c73]
以下を参考にできる。
-[[Jenkins構築手順 - マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/index.php?Jenkins%E6%A7%8B%E7%AF%89%E6%89%8B%E9%A0%86#he70bdc6]]

*インストレーション [#h04962aa]
**ビルドのため [#y671b06c]
VS2010+.NET3.5をビルドするため、以下のインストールが必要。

-Download Microsoft Windows SDK for Windows 7 and .NET Framework 4 from Official Microsoft Download Center~
https://www.microsoft.com/en-us/download/details.aspx?id=8279

.NET3.5は、サーバーの役割と機能から有効化する。

**実行のため [#s438e5e6]
SQLServerのExpressとNorthWindをインストール。
SQL ServerのExpressとNorthWindをインストール。

**テストのため [#g2739b88]
以下の位置に格納されているのでこれを使用できる。

https://github.com/OpenTouryoProject/OpenTouryo/tree/develop/root/programs/C%23/Tests/packages

-[[NUnit]]~
.NETのテスティング・フレームワーク
-OpenCover~
.NETのカバレッジツール
-ReportGenerator~
様々な.NETカバレッジツールが出力するXML出力を可視化する。

**デバッグのため [#x2768d67]
結局、VS 2010 Proをインストール。

*プロジェクト設定 [#g4bba91e]

#ref(1.png,left,nowrap,プロジェクト設定)

*ビルド手順 [#e87136ac]
後々、"C#"というフォルダ名がパス中に存在する場合、~
Fxcopでエラーとなることが分かったのでパス名をリネームしました。

&color(red){以降のイメージ中の"C#"は、全て"CS"に読み替えてください。};

**Githubから取得してビルド [#p9b85e5b]
バッチ・コマンドに以下を設定する。

#ref(2.png,left,nowrap,Githubから取得してビルド)

-gitプラグインを使用する場合
 rmdir "C:\root" /s /q
 mkdir "C:\root"
 
 xcopy "C:\Program Files (x86)\Jenkins\workspace\OpenTouryo\root" "C:\root" /e /y /I
 xcopy "C:\Dll" "C:\root\programs\C#\Frameworks\Infrastructure\Public\Dll" /e /y /I
 xcopy "C:\OTR\root" "C:\root" /e /y /I
 ren "C:\root\programs\C#" "CS"
 xcopy "C:\Dll" "C:\root\programs\CS\Frameworks\Infrastructure\Public\Dll" /e /y /I
 
 cd "C:\root\programs\C#"
 cd "C:\root\programs\CS"
 rem Toolが消えるのでcomment out
 rem echo|1_DeleteDir.bat
 rem echo|2_DeleteFile.bat
 echo|3_Build_Framework.bat

- gitコマンドを使用する場合(gitプラグインが微妙なのでこちらにする)~
CloneAndBuild.bat
 set PATH=%PATH%;"C:\Program Files\Git\bin\"
 
 if not exist "C:\OTR" mkdir "C:\OTR"
 cd "C:\OTR"
 
 git clone "https://github.com/OpenTouryoProject/OpenTouryo.git" "C:\OTR"
 git checkout develop
 rem git checkout develop
 git checkout fix_test_projects
 git pull
 
 rmdir "C:\root" /s /q
 mkdir "C:\root"
 
 xcopy "C:\OTR\root" "C:\root" /e /y /I
 xcopy "C:\Dll" "C:\root\programs\C#\Frameworks\Infrastructure\Public\Dll" /e /y /I
 ren "C:\root\programs\C#" "CS"
 xcopy "C:\Dll" "C:\root\programs\CS\Frameworks\Infrastructure\Public\Dll" /e /y /I
 
 cd "C:\root\programs\C#"
 cd "C:\root\programs\CS"
 rem Toolが消えるのでcomment out
 rem echo|1_DeleteDir.bat
 rem echo|2_DeleteFile.bat
 echo|3_Build_Framework.bat

***参考 [#of6acc82]
-xcopyでのファイルコピー時に確認メッセージを出さないようにするには?~
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1320504523

-別のバッチファイル内の pause を無効化する。 : もやもやプログラミング~
http://blog.livedoor.jp/moya_pro/archives/36265309.html

**ビルド・テスト [#l2a2615d]
**テストコードのビルドとテストの実行 [#l2a2615d]

***ビルド [#n16d24bb]
***テストコードのビルド [#n16d24bb]
#ref(3.png,left,nowrap,ビルド)

***テスト [#ha474028]
***テストの実行 [#ha474028]
#ref(4.png,left,nowrap,テスト)

**ドキュメント生成の準備 [#sffe761b]
プラグインの制約で入出力ファイル位置をworkspaceフォルダ以下に変更。

#ref(5.png,left,nowrap,ドキュメント生成の準備)

***テストのレポート表示のプラグイン [#w92dec5f]
-Publish NUnit test result reports プラグイン
-Publish HTML reports プラグイン

-Windows batch command
 xcopy "C:\root\programs\C#\Tests\Public.Test\bat" "C:\Program Files (x86)\Jenkins\workspace\OpenTouryo\Tests\Public.Test" /e /y /I
 xcopy "C:\root\programs\CS\Tests\Public.Test\bat" "C:\Program Files (x86)\Jenkins\workspace\OpenTouryo\Tests\Public.Test" /e /y /I

***Publish Doxygen Plugin [#m59af139]
Publish Doxygen Plugin

-Windows batch command
 xcopy "C:\root\programs\C#\Tests\Doxygen" "C:\Program Files (x86)\Jenkins\workspace\OpenTouryo\Doxygen" /e /y /I
 xcopy "C:\root\programs\C#\Frameworks\Infrastructure" "C:\Program Files (x86)\Jenkins\workspace\OpenTouryo\Doxygen\code" /e /y /I
 xcopy "C:\root\programs\CS\Tests\Doxygen" "C:\Program Files (x86)\Jenkins\workspace\OpenTouryo\Doxygen" /e /y /I
 xcopy "C:\root\programs\CS\Frameworks\Infrastructure" "C:\Program Files (x86)\Jenkins\workspace\OpenTouryo\Doxygen\code" /e /y /I

**Doxygen [#s35286a5]

***Doxygen Plugin [#df83a911]
-Doxygenプラグインの設定ファイルには下記を使用。
>Doxygen - マイクロソフト系技術情報 Wiki~
http://techinfoofmicrosofttech.osscons.jp/index.php?Doxygen

-しかし以下のエラーが発生したので、
 error: Problems running dot: exit code=-1, command='dot', arguments='"C:/Program Files (x86)/Jenkins/workspace/out/html/graph_legend.dot" -Tpng -o "C:/Program Files (x86)/Jenkins/workspace/out/html/graph_legend.png"'

-コマンドから実行した。
 "C:\Program Files\doxygen\bin\doxygen.exe" "C:\doxygen\work\C#_Doxyfile_with_code"

-解決しなかったので、設定ファイルにDOT_PATHを設定した。
--http://doxygen.10944.n7.nabble.com/Dot-is-failing-on-graph-legend-png-td1730.html
--http://hwada.hatenablog.com/entry/20060426/1146010846

-この状態でコマンド実行可能したが定義ファイルの相対パスに問題があった。
-Doxyfileの位置にCD(change directory)して正しく実行されることを確認。


-この状態で、JenkinsのDoxygenプラグイン経由で正しく動作することを確認した、
#ref(6.png,left,nowrap,Doxygen)


-しかし、Warningが発生したので、Doxyfile内で使用している相対パスをworkspaceからの相対パスに変更。

-すべてが正しく動作することを確認した。

**FxCop [#y1e9f815]
コード分析結果XMLファイルの出力パスを""で囲っていたら、~
相対パスと認識されたので、""を外すように修正しました。

#ref(7.png,left,nowrap,FxCop)

*ビルド後の処理 [#o45018f8]
**NUnit [#x01f84ae]
***Publish NUnit test result reports [#s0a9d81d]
NUnit 結果出力を表示

**OpenCover [#ce3897fd]
***Publish HTML reports [#c879c37d]
-OpenCover 結果出力を表示

**Doxygen [#x01f84ae]
***Publish Doxygen Plugin [#s0a9d81d]
Doxygen 結果出力を表示

**FxCop [#s5681416]
***Report Violations [#l5d6baa3]
FxCop 結果出力を表示


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS