[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]

-[[戻る>Jenkins]]

* 目次 [#f55b1c93]
#contents

*概要 [#r3357d42]
自動的に[[GitHub]]のリポジトリを取得して[[CI]]する[[Jenkins]]サーバの構築手順。

*ダウンロードとインストール [#rf2f3218]

**前提環境 [#g24fc7fd]
インストール開始前に以下の環境を準備する。

-Windows OS~
Jenkinsの前提 Windows OS

-.NET Framework(CI対象のversion)
--Download Microsoft .NET Framework 4 (Web インストーラー) from Official Microsoft Download Center~
https://www.microsoft.com/ja-jp/download/details.aspx?id=17851

-Java SDK (JDK)~
Antが原因で JREでは動作しない。
--Java SE - Downloads | Oracle Technology Network | Oracle~
http://www.oracle.com/technetwork/java/javase/downloads/index.htm

-Git クライアント - for GitHubプラグイン
--'git' コマンド)が通常のパスで動作すること( in /usr/bin or /usr/sbin )
--もし、その他の場合 ( /opt/local/bin/git か /usr/local/bin/git )~
/usr/bin に、シンボリックリンクを作成すること(例: sudo ln -s /opt/local/bin/git /usr/bin/git).
--Git - Downloads~
https://git-scm.com/downloads

-Graphviz - for [[Doxygen]]プラグイン~
http://www.graphviz.org/

-.NET Framework(CI対象のversion)
-FxCop
--FxCop Installer - Home~
https://fxcopinstaller.codeplex.com/

**Jenkinsのインストール [#v4fd5e30]
-https://jenkins-ci.org/にアクセスする。
-Native packages [Windows]からダウンロードする。
-[jenkins-バージョン番号.zip]からjenkins.msiを取り出す。
-jenkins.msiをダブルクリックして、デフォルトの設定でインストールする。
-ローカルのWebサーバ上でJenkinsのサイトが実行され、
-ブラウザでJenkins Dashboard ページが表示される。
-ブラウザで[Jenkins Dashboard]ページが表示される。

**プラグインのインストール [#na92cb2a]
一般的なプラグインは自動アップロードされる。~
オフラインの場合は、手動アップロードする。

***プラグインの追加手順 [#afdfb749]
[Jenkins Dashboard]ページ上にあるManage Jenkins をクリックする。

-オンライン時、一般的なプラグインを追加する場合、
--Availableタブを選択し、次のセクションでプラグインを選択する。
--[Install without restart]ボタンをクリックしプラグインをインストール。

-オフライン時やカスタム・プラグインの場合、
--Advancedタブを選択し、プラグインをアップロードする。
--Availableタブを選択し、次のセクションでプラグインを選択する。
--[Install without restart]ボタンをクリックしプラグインをインストール。

***追加するプラグイン [#b32891c2]

-GitHub プラグイン
--GitHunのリポジトリからコードを取得する。
--GitHub のリポジトリからコードを取得する。
--https://updates.jenkins-ci.org/download/plugins/github/

-[[MSBuild]] プラグイン
--VisualStudioを使用せずにVisual Studio Project solution fileをビルドする。
--https://updates.jenkins-ci.org/download/plugins/msbuild/

-[[NUnit]] プラグイン
--ビルドしたプログラムにテストコードを実行しテスト結果を出力する。
--https://updates.jenkins-ci.org/download/plugins/nunit/

-Violations プラグイン
--
--https://updates.jenkins-ci.org/download/plugins/violations/

-FxCop Runner プラグイン
--FxCopを実行し、DLL(アセンブリ)に対して静的コード解析を行う。
--https://updates.jenkins-ci.org/download/plugins/fxcop-runner/

-[[Doxygen]] プラグイン
--[[Doxygen]]を実行し、プログラムのドキュメンテーションを行う。
--https://updates.jenkins-ci.org/download/plugins/doxygen/

-HTML Publisher プラグイン
--各種プラグインが生成したHTMLをDashboardに表示する。
--https://updates.jenkins-ci.org/download/plugins/htmlpublisher/

-Email-ext プラグイン
--email notificationsを送る。
--https://updates.jenkins-ci.org/download/plugins/mailer/

-Credentials プラグイン
--Credentialsを追加して認証+権限付与をできるようにする。
--https://updates.jenkins-ci.org/download/plugins/credentials/

***プラグインの追加手順 [#afdfb749]
Jenkins Dashboard ページ上にあるManage Jenkins をクリックする。

-オンライン時、一般的なプラグインを追加する場合、
--Availableタブを選択し、次のセクションでプラグインを選択する。
--[Install without restart]ボタンをクリックしプラグインをインストール。

-オフライン時やカスタム・プラグインの場合、
--Advancedタブを選択し、プラグインをアップロードする。

*Jenkinsの設定 [#lbfc4f2e]
**プラグインの設定 [#a1108584]
Manage Jenkins セクッションの [Configure System]ボタンをクリックしプラグインを設定。

***GitHub プラグイン [#s8086894]
-Gitのセクションで、
-[Git]セクションで、
-[Name]フィールドを入力する。
-[Path to executable]に"git.exe"のパスを設定する。

***[[MSBuild]] プラグイン [#wf370ba6]
-[[MSBuild]] のセクションで、
-[[[MSBuild]]]セクションで、
-[MsBuildInstallations…]をクリックする。
-[Name]フィールドを入力する。
-[Path to MSBuild]に"MSBuild.exe2のパスを設定する。
-[Path to MSBuild]に"MSBuild.exe"のパスを設定する。

***FxCop プラグイン [#w7d37d4b]
-FxCop のセクションで、
-[FxCop]セクションで、
-[FxCopInstallations…]ボタンをクリックする。
-[Name]フィールドを入力する。
-[Path to FxCopCmd.exe]に"FxCopCmd.exe"のパスを設定する。

***Graphviz プラグイン [#nf4c8b8c]
-Dependency Graph Viewer Configuration のセクションで、
-[Dependency Graph Viewer Configuration]セクションで、
-[Enable rendering with graphviz]チェック ボックスをオン。
-[Dot Executable Path]に"Graphvizxx.xx\bin\dot.exe"のパスを設定する。

***Email notification プラグイン [#pb05a3a2]
-E-mail Notification のセクションで、
-[E-mail Notification]セクションで、
-[SMTP server]に"smtp.gmail.com"など、SMTPサーバのアドレスを設定する。

-[Advanced…]ボタンをクリックし下記を設定する。
--Use SMTP Authenticationを選択
--User Nameを入力
--Passwordを入力
--[Use SSL]チェックボックスをオン

-"smtp.gmail.com"を指定した場合、~
Googleの設定でメールの送信の許可が必要になる。
---安全性の低いアプリがアカウントにアクセスするのを許可する~
https://support.google.com/accounts/answer/6010255?hl=ja
---Less secure apps - Account settings~
https://www.google.com/settings/security/lesssecureapps

**その他の設定手順 [#ybd36c63]

***ユーザの作成と管理 [#bc443498]
Jenkins CI  サイトは、アクセス権とセキュリティのレベルを指定してユーザの作成と管理ができる。

-ユーザの作成

--Manage Jenkinsページで[Manage Credentials]ボタンをクリックしユーザ作成する。
--[Manage Jenkins]ページで[Manage Credentials]ボタンをクリックしユーザ作成する。

--Manage Credentialsページで[Add Credentials]ボタンをクリックし[Username with password]を選択する。
--[Manage Credentials]ページで[Add Credentials]ボタンをクリックし[Username with password]を選択する。

--Username with password のセクションに下記を設定する。
--[Username with password]セクションに下記を設定する。
---[Scope]を選択
---[Username]を入力
---[Password]を入力
---[Description]を入力
---[Save]ボタンをクリック

-ユーザの管理

--Manage Jenkinsページで[Manage Users]ボタンをクリックしユーザの作成・削除・修正をする。
--[Manage Jenkins]ページで[Manage Users]ボタンをクリックしユーザの作成・削除・修正をする。

--Users ページ
--[Users]ページ
---ユーザの設定
---ユーザの削除

-ユーザの設定

--Manage Jenkinsページで[Configure Global Security]ボタンをクリックしユーザのアクセスレベルと権限を設定する。
--[Manage Jenkins]ページで[Configure Global Security]ボタンをクリックしユーザのアクセスレベルと権限を設定する。
---[Enable security]チェックボックスをオン、以下は設定例。
---TCP port for JNLP slave agentsのセクションで[Random]オプションボタンを選択
---Security Realm のセクションで[Jenkins' own user database]オプションボタンを選択
---Authorization のセクションの[Project-based Matrix Authorization Strategy ]オプションボタンを選択
---[TCP port for JNLP slave agents]セクションで[Random]オプションボタンを選択
---[Security Realm]セクションで[Jenkins' own user database]オプションボタンを選択
---[Authorization]セクションの[Project-based Matrix Authorization Strategy ]オプションボタンを選択
---User/group to addを選択
---[Apply] と [Save] ボタンをクリック

*プロジェクトの作成と設定 [#v66fb027]
**プロジェクトの作成 [#i2fa535f]
-Jenkins Dashboard ページで[New Item]ボタンをクリックし新しいプロジェクトを作成する。
-New Item ページで下記を設定する。
-[Jenkins Dashboard]ページで[New Item]ボタンをクリックし新しいプロジェクトを作成する。
-[New Item]ページで下記を設定する。
--[Item name]フィールドを入力
--[Freestyle project]オプションボタンを選択
--[OK]ボタンをクリック

**プロジェクトのプラグイン設定 [#da9a53ff]
プロジェクトのプラグインの設定方法について説明する。
-設定は、Jenkins projectのConfiguration ページから行う。
-設定は、[Jenkins project]の[Configuration]ページから行う。
-設定が完了したら、[Apply]ボタンと [Save]ボタンをクリックしすべての設定を保存する。

***GitHub プラグインの設定 [#he70bdc6]
GitHub プラグインの設定方法について説明する。

-Source Code Management の Git セクションで GitHub プラグインを設定する。
-[Source Code Management]の[Git]セクションで GitHub プラグインを設定する。

-Gitのセクションで以下を設定する。
-[Git]セクションで以下を設定する。
--Repository URLに 'https://github.com/組織名/リポジトリ名/'.を入力する。
--[Add]ボタン をクリックしユーザの資格情報を追加する。
--GitHubのブランチ名や参照などの詳細なオプションを設定するには、[Advanced]ボタン をクリック

--Repositoryの設定
---[Add Repository]ボタン をクリックしGitHub にリポジトリを追加
---[Delete Repository]ボタン をクリックしGitHubのリポジトリを削除
---[Branch Specifier (blank for ‘any’)]にGitHubのリポジトリに存在するブランチ名を入力

--Branchの設定
---[Add Branch]ボタンをクリックしリポジトリにブランチを追加
---[Delete Branch]ボタンをクリックしリポジトリにブランチを削除

*プロジェクトのビルド設定 [#h3cc79a1]
プロジェクトのビルドの設定方法について説明する。

**ビルド・トリガの設定 [#rdaf5b1b]
ビルド・トリガの設定方法について説明する。

-Build Triggersセクションで定期的に実行するためのビルド・トリガを設定する。
-[Build Triggers]セクションで定期的に実行するためのビルド・トリガを設定する。

-設定例 :
--Build Periodically (定期的にビルド)を選択
--Schedule に「0 0 * * 1」を入力する~
---毎週月曜日の 12.00 AM JST.にビルドが起動される。 
---このスケジュールは、crontabの書式で記述される。
---see : https://ja.wikipedia.org/wiki/Crontab

**ビルド・ステップの設定 [#vdb0be18]
ビルド・ステップの設定方法について説明する。

-Build セクションの[Add build step]ボタンをクリックし、以下のビルド・ステップを追加可能。
-[Build]セクションの[Add build step]ボタンをクリックし、以下のビルド・ステップを追加可能。
--Build a Visual Studio project or solution using [[MSBuild]]
--Execute Windows batch command
--Execute Shell
--[[FxCop]] exec.
--Generaet documentation using [[Doxygen]]
--Invoke Ant
--Invoke top-level Marven target
--Set build status to "pending" on GitHub commit
--, etc.

***バッチファイルを設定する場合 [#v76cbac0]
ビルド・ステップにおける[Windows batch command]の設定方法について説明する。

-Build セクションの[Add build step]ボタンをクリックし[Execute Windows batch command]を選択する。
-Execute Windows batch commandセクションで以下を設定する。
-[Build]セクションの[Add build step]ボタンをクリックし[Execute Windows batch command]を選択する。
-[Execute Windows batch command]セクションで以下を設定する。
--Windowsのバッチファイル名をCommandに入力する。
--

***[[MSBuild]] プラグインの設定 [#w40724aa]
ビルド・ステップにおける[[MSBuild]] プラグインの設定方法について説明する。

-Build セクションの[Add build step]ボタンをクリックし、
-[Build]セクションの[Add build step]ボタンをクリックし、
-[Build a Visual Studio project or solution using MSBuild]を選択する。

-[Build a Visual Studio project or solution using MSBuild]のセクションで以下を設定する。
-- [[MSBuild]] Versionに[[MSBuildのName>#wf370ba6]]を入力する。
--[[MSBuild]] Buid File に Visual Studio Project solution fileのパスを入力する。
-- [[[MSBuild]] Version]に[[MSBuildのName>#wf370ba6]]を入力する。
--[[[MSBuild]] Buid File]にVisual Studio Project solution fileのパスを入力する。
--詳細なビルドオプションを設定するには、[Advanced...]ボタンをクリックする。


***FxCop プラグインの設定 [#g091aeeb]
ビルド・ステップにおけるFxCop プラグインの設定方法について説明する。

-Build セクションの[Add build step]ボタンをクリックし
-[Build]セクションの[Add build step]ボタンをクリックし
-[FxCop exec]を選択して FxCop プラグインを設定する。

-[FxCop exec]セクションで下記を設定する。
--[FxCop Name]を入力する。
--[Assembly Files]に対象となる Assembly Files の path を入力(1行 1 path)する。
--[Output XML]に出力XMLファイルのパスを入力する。

***[[Doxygen]] プラグインの設定 [#j3b212e1]
ビルド・ステップにおける[[Doxygen]] プラグインの設定方法について説明する。

-Build セクションの[Add build step]ボタンをクリックし
-[Build]セクションの[Add build step]ボタンをクリックし
-[Generate documentation using Doxygen]を選択して [[Doxygen]] プラグインを設定する。
-[Generate documentation using Doxygen]セクションで下記を設定する。
--[Doxygen installation]フィールドに名称を入力する。
--[Doxyfile path]にDoxygenの設定ファイルのパスを入力する。
--詳細なオプションを設定するには、[Advanced…]ボタンをクリックする。

**ビルド後アクションの設定 [#h5d6baa7]
ビルド後アクションの設定方法について説明する。

-Post-build Actions セクションの[Add post-build action]ボタンをクリックし、以下のビルド後アクションを追加可能。
-[Post-build Actions]セクションの[Add post-build action]ボタンをクリックし、以下のビルド後アクションを追加可能。
--, etc.

***Publish [[NUnit]] test result reports プラグインの設定 [#wfa4e698]
ビルド後アクションにおける[[NUnit]] プラグインの設定方法について説明する。

-Post-build Actions セクションの[Add post-build action]ボタンをクリックし
-[Post-build Actions]セクションの[Add post-build action]ボタンをクリックし
-[Publish [[NUnit]] test result reports]を選択して Dashboardに[[NUnit]]のプラグインによって生成されたHTMLの出力を表示させる。
-Publish [[NUnit]] test result reports セクションで[Add]ボタンをクリックし下記を設定する。
-[Publish [[NUnit]] test result reports]セクションで[Add]ボタンをクリックし下記を設定する。
--[Test report XMLs]に[[NUnit]]のレポートファイルのパスを入力する。

***[[Doxygen]] プラグインの設定 [#z7253e56]
ビルド後アクションにおける[[Doxygen]] プラグインの設定方法について説明する。

-Post-build Actions セクションのPost-build Actions セクションの[Add post-build action]ボタンをクリックし
-[Post-build Actions]セクションの[Add post-build action]ボタンをクリックし
-[Publish Doxygen]を選択して Dashboardに[[Doxygen]]の出力を表示させる。
-Publish Doxygen セクションで下記を設定する。
-[Publish Doxygen]セクションで下記を設定する。
--[Doxyfile path]にDoxygenの設定ファイルのパスを入力する。
--詳細なオプションを設定するには、[Advanced…]ボタンをクリックする。

***Publish HTML reports プラグインの設定 [#k4e672c6]
ビルド後アクションにおけるPublish HTML reports プラグインの設定方法について説明する。

-Post-build Actions セクションのPost-build Actions セクションの[Add post-build action]ボタンをクリックし
-[Post-build Actions]セクションの[Add post-build action]ボタンをクリックし
-[Publish HTML reports]を選択して Dashboardに[[Doxygen]]などのプラグインによって生成されたXMLの出力を表示させる。
-Publish HTML reports セクションで[Add]ボタンをクリックし下記を設定する。
-[Publish HTML reports]セクションで[Add]ボタンをクリックし下記を設定する。
--[HTML directory to archive]を入力
--[Index page[s]]を入力
--[Report title]を入力

***Report Violations プラグインの設定 [#k4e672c6]
ビルド後アクションにおけるReport Violations プラグインの設定方法について説明する。

-Post-build Actions セクションのPost-build Actions セクションの[Add post-build action]ボタンをクリックし
-[Post-build Actions]セクションの[Add post-build action]ボタンをクリックし
-[Report Violations]を選択して Dashboardに[[FxCop]]などのプラグインによって生成されたXMLの出力を表示させる。
-Report Violations セクションに下記を設定する。
-[Report Violations]セクションに下記を設定する。
--[fxcop]のレコードを入力
---☀
---☁
---●
---[XML filename pattern]

--[Faux Project Path]を入力

***E-Mail Notification プラグインの設定 [#k4e672c6]
ビルド後アクションにおけるE-Mail Notification プラグインの設定方法について説明する。

-Post-build Actions セクションのPost-build Actions セクションの[Add post-build action]ボタンをクリックし
-[Post-build Actions]セクションの[Add post-build action]ボタンをクリックし
-[E-Mail Notification]を選択して電子メールでビルド状態の通知をさせる。
-E-Mail Notification セクションに下記を設定する。
-[E-Mail Notification]セクションに下記を設定する。
--[Recipients]に受信者を入力する。

*ビルドの実行と確認 [#r25544bd]
**ビルドの実行 [#c3d52497]
-Jenkins projectページで[Build Now]ボタンをクリックしてプロジェクトをビルドする。
-[Jenkins project]ページで[Build Now]ボタンをクリックしてプロジェクトをビルドする。
-Build Historyの中でビルド情報を確認するためにビルド番号をクリックする。
-Console Output をクリックしてビルド時の console logを確認する。

**プラグインの結果を確認 [#tbcdc4ed]
ビルドが成功するとJenkinsで構成されたプラグインの出力がJenkins projectページ上に表示される。
ビルドが成功するとJenkinsで構成されたプラグインの出力が[Jenkins project]ページ上に表示される。

***FxCop プラグインの結果を確認 [#l814d345]
FxCop とViolations プラグインにより生成された結果をチェックし確認する。

-Jenkins projectページでViolationsをクリックし
-[Jenkins project]ページでViolationsをクリックし
-FxCop とViolations プラグインにより生成された結果を表示する。
-[filename]一覧からアイテムをクリックしコード違反の詳細なリポートを表示する。

***[[Doxygen]] プラグインの結果を確認 [#hecb37c7]
[[Doxygen]] プラグインにより生成された結果をチェックし確認する。

-Jenkins projectページでDoxyGen HTMLをクリックし
-[Jenkins project]ページでDoxyGen HTMLをクリックし
-[[Doxygen]] プラグインにより生成された結果を表示する。

***[[OpenCover]] プラグインの結果を確認 [#e707fd2a]
[[OpenCover]] とPublish HTML プラグインにより生成された結果をチェックし確認する。

-Jenkins projectページでCoverage Reportをクリックし
-[Jenkins project]ページでCoverage Reportをクリックし
-[[Doxygen]] プラグインにより生成された結果を表示する。

***[[NUnit]] プラグインの結果を確認 [#l4d43b57]
[[NUnit]] プラグインにより生成された結果をチェックし確認する。

-Test Result Trend グラフでNUnit プラグインにより生成された結果する。
-詳細は、Jenkins projectページでLatest Test Resultをクリックし、
-詳細は、[Jenkins project]ページでLatest Test Resultをクリックし、
-[[NUnit]] プラグインにより生成された結果を表示する。


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