[[Open棟梁Project>http://opentouryo.osscons.jp/]] - [[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]] -[[戻る>Jenkins]] * 目次 [#f55b1c93] #contents *概要 [#r3357d42] 自動的に[[GitHub]]のリポジトリを取得して[[CI]]する[[Jenkins]]サーバの構築手順。 *ダウンロードとインストール [#rf2f3218] **前提環境 [#g24fc7fd] インストール開始前に以下の環境を準備する。 ***Windows OS [#ddc9d015] Jenkinsの前提 Windows OS ***.NET Framework [#u33cfb5b] CI対象のversion -.NET Framework のインストール~ https://msdn.microsoft.com/ja-jp/library/5a4x27ek(v=vs.110).aspx ***Java SDK (JDK) [#tab46246] Antが原因で JREでは動作しない。 -Java SE - Downloads | Oracle Technology Network | Oracle~ http://www.oracle.com/technetwork/java/javase/downloads/index.htm ***Git クライアント [#la744c8f] for Gitプラグイン -Git - Downloads~ https://git-scm.com/downloads --'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). ***[[Doxygen]] [#bda542b2] -[[Doxygen]]: Downloads~ http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc ***Graphviz [#ybd5acb7] -Graphviz - for [[Doxygen]]プラグイン~ http://www.graphviz.org/ ***FxCop [#p4604346] -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]])ページが表示される。 **プラグインのインストール [#na92cb2a] 一般的なプラグインは自動アップロードされる。~ オフラインの場合は、手動アップロードする。 ***プラグインの追加手順 [#afdfb749] [Jenkins Dashboard]([ダッシュボード [Jenkins]])ページ上にある -[Manage Jenkins]([Jenkinsの管理])をクリックする。 -[Manage Plugins]([プラグインの管理])をクリックする。 -オンライン時、一般的なプラグインを追加する場合、 --[Available]([利用可能])タブを選択し、次のセクションでプラグインを選択する。 --[Install without restart]([再起動せずにインストール])ボタンをクリックしプラグインをインストール。 -オフライン時やカスタム・プラグインの場合、 --[Advanced...]([高度な設定...])タブを選択し、プラグインをアップロードする。 --[Available]([利用可能])タブを選択し、次のセクションでプラグインを選択する。 --[Install without restart]([再起動せずにインストール])ボタンをクリックしプラグインをインストール。 ***追加するプラグイン [#b32891c2] -[[MSBuild]] プラグイン --VisualStudioを使用せずにVisual Studio Project solution fileをビルドする。 --https://updates.jenkins-ci.org/download/plugins/msbuild/ -[[NUnit]] プラグイン --ビルドしたプログラムに[[NUnit]]でテストコードを実行し、~ 出力されたXMLのテスト結果をダッシュボードに表示する。 --https://updates.jenkins-ci.org/download/plugins/nunit/ -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を[Jenkins Dashboard]([ダッシュボード [Jenkins]])ページに表示する。 --https://updates.jenkins-ci.org/download/plugins/htmlpublisher/ --対象 ---??? -Violations プラグイン --静的コード解析の結果表示のプラグイン --https://updates.jenkins-ci.org/download/plugins/violations/ --対象 ---FxCop -Email-ext プラグイン --email notificationsを送る。 --https://updates.jenkins-ci.org/download/plugins/mailer/ -Credentials プラグイン --Credentialsを追加して認証+権限付与をできるようにする。 --https://updates.jenkins-ci.org/download/plugins/credentials/ *Jenkinsの設定 [#lbfc4f2e] **プラグインの設定 [#a1108584] ここでは、 -バイナリのパス -サーバーのURL など、プラグインの基本的な設定をする。 詳しい動作は、 -プロジェクト -ビルドステップ などで設定する。 プラグインの基本的な設定は、 [Manage Jenkins]([Jenkinsの管理]) セクッションの、~ [Configure System]([システムの設定])ボタンをクリックしプラグインを設定。 ***Git プラグイン [#s8086894] https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin -[Git]セクションで、 -[Name]([名前])フィールドを入力する。 -[Path to executable]に"git.exe"のパスを設定する。 ***[[MSBuild]] プラグイン [#wf370ba6] https://wiki.jenkins-ci.org/display/JENKINS/MSBuild+Plugin -[[[MSBuild]]]セクションで、 -[MsBuildInstallations…]([MSBuild追加])をクリックする。 -[Name]([名前])フィールドを入力する。 -[Path to MSBuild]([MSBuild.exeファイルパス])に"MSBuild.exe"のパスを設定する。 ***FxCop プラグイン [#w7d37d4b] https://wiki.jenkins-ci.org/display/JENKINS/FxCop+Runner+Plugin -[FxCop]セクションで、 -[FxCopInstallations…]([])ボタンをクリックする。 -[Name]([名前])フィールドを入力する。 -[Path to FxCopCmd.exe]([FxCopCmd.exeファイルパス])に"FxCopCmd.exe"のパスを設定する。 ***Graphviz プラグイン [#nf4c8b8c] -[Dependency Graph Viewer Configuration]セクションで、 -[Enable rendering with graphviz]チェック ボックスをオン。 -[Dot Executable Path]に"Graphvizxx.xx\bin\dot.exe"のパスを設定する。 ***Email notification プラグイン [#pb05a3a2] -[E-mail Notification]([E-mail 通知])セクションで、 -[SMTP server]([SMTPサーバー])に"smtp.gmail.com"など、SMTPサーバのアドレスを設定する。 -[Advanced...]([高度な設定...])ボタンをクリックし下記を設定する。 --[Use SMTP Authentication]([SMTP認証])を選択 --[User Name]([ユーザー名])を入力 --[Password]([パスワード])を入力 --[Use SSL]([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]([Jenkinsの管理])ページで[Configure Global Security]([グローバルセキュリティの設定])ボタンをクリックしユーザのアクセスレベルと権限を設定する。 ---[Enable security]([セキュリティを有効化])チェックボックスをオン、以下は設定例。 ---[TCP port for JNLP slave agents]([JNLPスレーブ用TCPポート番号])セクションで[Random]オプションボタンを選択 ---[Security Realm]([ユーザー情報])セクションで[Jenkins' own user database]([Jenkinsのユーザーデータベース])オプションボタンを選択 ---[Allow users to sign up]([ユーザーにサインアップを許可])をオフにしておく。 ---[Authorization]([権限管理])セクションの[logged in users can do anything]([ログイン済みユーザーに許可])オプションボタンを選択 ---[Apply]([適用]) と [Save]([保存]) ボタンをクリック -ユーザの作成 --次に表示されるサインアップ画面でユーザ名、パスワード、メールアドレス、説明を入力し、サインアップ(ログイン)する。 --[Manage Jenkins]([Jenkinsの管理])ページで[Manage Credentials]([認証情報の管理])ボタンをクリックしユーザ作成することもできる。 --[Manage Credentials]([認証情報の管理])ページで[Add Credentials]([認証情報の追加])ボタンをクリックし[Username with password]([ユーザー名とパスワード])を選択する。 --[Username with password]([ユーザー名とパスワード])セクションに下記を設定する。 ---[Scope]([スコープ])を選択~ ●グローバル : サインアップしたユーザはグローバルが設定されている。~ ●システム : ・・・ ---[Username]([ユーザー名])を入力 ---[Password]([パスワード])を入力 ---[Description]([説明])を入力 ---[Save]([保存])ボタンをクリック -ユーザの管理 --[Manage Jenkins]([Jenkinsの管理])ページで[Manage Users]([ユーザーの管理])ボタンをクリックしユーザの作成・削除・修正をする。 --[Users]ページ ---ユーザの設定 ---ユーザの削除 *プロジェクトの作成と設定 [#v66fb027] **プロジェクトの作成 [#i2fa535f] -[Jenkins Dashboard]([ダッシュボード [Jenkins]])ページで[New Item]([新規ジョブ作成])ボタンをクリックし新しいプロジェクトを作成する。 -[New Item]([新規ジョブ作成])ページで下記を設定する。 --[Item name]([ジョブ名])フィールドを入力 --[Freestyle project]([フリースタイル・プロジェクトのビルド])オプションボタンを選択 --[OK]ボタンをクリック **プロジェクトのプラグイン設定 [#da9a53ff] プロジェクトのプラグインの設定方法について説明する。 -設定は、[Jenkins project]の[Configuration]ページから行う。 -設定が完了したら、[Apply]([適用]) と [Save]([保存]) ボタンをクリックしすべての設定を保存する。 ***Git プラグインの設定 [#he70bdc6] https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin Git プラグインの設定方法について説明する。 -[Source Code Management]([ソースコード管理])の[Git]セクションで Git プラグインを設定する。 -[Git]セクションで以下を設定する。 --Repositoryの設定 ---[Repository URL]に 'https://github.com/組織名/リポジトリ名/'.を入力する。 ---[Credentials]の[Add]([追加])ボタン をクリックしユーザの資格情報を追加する。 ---Gitのブランチ名や参照などの詳細なオプションを設定するには、[Advanced...]([高度な設定...])ボタンをクリック ---[Add Repository]ボタン をクリックする、更にリポジトリを追加 ---[Delete Repository]ボタン をクリックしリポジトリを削除 --Branchの設定 ---[Branch Specifier (blank for 'any')]にリポジトリに存在するブランチ名を入力 ---[Add Branch]ボタンをクリックしリポジトリにブランチを追加 ---[Delete Branch]ボタンをクリックしリポジトリにブランチを削除 -この設定により、以下のパスにリポジトリがclone & checkoutされる。 "C:\Program Files (x86)\Jenkins\workspace\ *プロジェクトのビルド設定 [#h3cc79a1] プロジェクトのビルドの設定方法について説明する。 **ビルド・トリガの設定 [#rdaf5b1b] ビルド・トリガの設定方法について説明する。 -[Build Triggers]([ビルド・トリガ])セクションで定期的に実行するためのビルド・トリガを設定する。 -設定例 : --[Build Periodically]([定期的に実行])を選択 --Schedule に「0 0 * * 0」を入力する~ ---毎週日曜日の 12.00 AMにビルドが起動される。 ---このスケジュールは、crontabの書式で記述される。 ---see : https://ja.wikipedia.org/wiki/Crontab **ビルド・ステップの設定 [#vdb0be18] ビルド・ステップの設定方法について説明する。 -[Build]([ビルド])セクションの[Add build step]([ビルド手順の追加])ボタンをクリックし、以下のビルド・ステップを追加可能。 --[Build a Visual Studio project or solution using [[MSBuild]]]([MSBuildの実行]) --[Execute Windows batch command]([Windowsバッチコマンドの実行]) --[Execute Shell]([シェルの実行]) --[[[FxCop]] exec.]([FxCop実行]) --[Generaet documentation using [[Doxygen]]]([[[Doxygen]]でドキュメントを生成する]) --[Invoke Ant]([Antの呼び出し]) --[Invoke top-level Marven target]([Mavenの呼び出し]) --[Set build status to "pending" on GitHub commit] --, etc. ***バッチ・コマンド、バッチ・ファイルを設定する場合 [#v76cbac0] ビルド・ステップにおける[Windows batch command]([Windowsバッチコマンドの実行])の設定方法について説明する。 -[Build]([ビルド])セクションの[Add build step]([ビルド手順の追加])し[Execute Windows batch command]([Windowsバッチコマンドの実行])を選択する。 -[Execute Windows batch command]([Windowsバッチコマンドの実行])セクションで以下を設定する。 --Windowsのバッチ・コマンドをCommandに入力する。 ***[[MSBuild]] プラグインの設定 [#w40724aa] https://wiki.jenkins-ci.org/display/JENKINS/MSBuild+Plugin ビルド・ステップにおける[Build a Visual Studio project or solution using MSBuild]([MSBuildの実行])の設定方法について説明する。 -[Build]([ビルド])セクションの[Add build step]([ビルド手順の追加])し、 -[Build a Visual Studio project or solution using MSBuild]([MSBuildの実行])を選択する。 -[Build a Visual Studio project or solution using MSBuild]([MSBuildの実行])のセクションで以下を設定する。 -- [[[MSBuild]] Version]に[[MSBuildのName>#wf370ba6]]を入力する。 --[[[MSBuild]] Buid File]にVisual Studio Project solution fileのパスを入力する。 --詳細なビルドオプションを設定するには、[Advanced...]([高度な設定...])ボタンをクリックする。 ***FxCop プラグインの設定 [#g091aeeb] https://wiki.jenkins-ci.org/display/JENKINS/FxCop+Runner+Plugin ビルド・ステップにおける[[[FxCop]] exec.]([FxCop実行])の設定方法について説明する。 -[Build]([ビルド])セクションの[Add build step]([ビルド手順の追加])し -[[[FxCop]] exec.]([FxCop実行])を選択して FxCop プラグインを設定する。 -[[[FxCop]] exec.]([FxCop実行])セクションで下記を設定する。 --[FxCop Name]を入力する。 --[Assembly Files]に対象となる Assembly Files の path を入力(1行 1 path)する。 --[Output XML]に出力XMLファイルのパスを入力する。 ***[[Doxygen]] プラグインの設定 [#j3b212e1] https://wiki.jenkins-ci.org/display/JENKINS/Doxygen+Plugin ビルド・ステップにおける[Generaet documentation using [[Doxygen]]]([[[Doxygen]]でドキュメントを生成する])の設定方法について説明する。 -[Build]([ビルド])セクションの[Add build step]([ビルド手順の追加])し -[Generaet documentation using [[Doxygen]]]([[[Doxygen]]でドキュメントを生成する])を選択して [[Doxygen]] プラグインを設定する。 -[Generaet documentation using [[Doxygen]]]([[[Doxygen]]でドキュメントを生成する])セクションで下記を設定する。 --[Doxygen installation]フィールドに名称を入力する。 --[Doxyfile path]にDoxygenの設定ファイルのパスを入力する。 --詳細なオプションを設定するには、[Advanced...]([高度な設定...])ボタンをクリックする。 **ビルド後アクションの設定 [#h5d6baa7] ビルド後アクションの設定方法について説明する。 -[Post-build Actions]セクションの[Add post-build action]ボタンをクリックし、以下のビルド後アクションを追加可能。 --, etc. ***Publish [[NUnit]] test result reports プラグインの設定 [#wfa4e698] https://wiki.jenkins-ci.org/display/JENKINS/NUnit+Plugin ビルド後アクションにおける[[NUnit]] プラグインの設定方法について説明する。 -[Post-build Actions]セクションの[Add post-build action]ボタンをクリックし -[Publish [[NUnit]] test result reports]を選択して [Jenkins Dashboard]([ダッシュボード [Jenkins]])ページに[[NUnit]]のプラグインによって生成されたHTMLの出力を表示させる。 -[Publish [[NUnit]] test result reports]セクションで[Add]ボタンをクリックし下記を設定する。 --[Test report XMLs]に[[NUnit]]のレポートファイルのパスを入力する。 ***[[Doxygen]] プラグインの設定 [#z7253e56] https://wiki.jenkins-ci.org/display/JENKINS/Doxygen+Plugin ビルド後アクションにおける[[Doxygen]] プラグインの設定方法について説明する。 -[Post-build Actions]セクションの[Add post-build action]ボタンをクリックし -[Publish Doxygen]を選択して [Jenkins Dashboard]([ダッシュボード [Jenkins]])ページに[[Doxygen]]の出力を表示させる。 -[Publish Doxygen]セクションで下記を設定する。 --[Doxyfile path]にDoxygenの設定ファイルのパスを入力する。 --詳細なオプションを設定するには、[Advanced...]([高度な設定...])ボタンをクリックする。 ***Publish HTML reports プラグインの設定 [#k4e672c6] ビルド後アクションにおけるPublish HTML reports プラグインの設定方法について説明する。 -[Post-build Actions]セクションの[Add post-build action]ボタンをクリックし -[Publish HTML reports]を選択して [Jenkins Dashboard]([ダッシュボード [Jenkins]])ページに[[Doxygen]]などのプラグインによって生成されたXMLの出力を表示させる。 -[Publish HTML reports]セクションで[Add]ボタンをクリックし下記を設定する。 --[HTML directory to archive]を入力 --[Index page[s]]を入力 --[Report title]を入力 ***Report Violations プラグインの設定 [#k4e672c6] ビルド後アクションにおけるReport Violations プラグインの設定方法について説明する。 -[Post-build Actions]セクションの[Add post-build action]ボタンをクリックし -[Report Violations]を選択して [Jenkins Dashboard]([ダッシュボード [Jenkins]])ページに[[FxCop]]などのプラグインによって生成されたXMLの出力を表示させる。 -[Report Violations]セクションに下記を設定する。 --[fxcop]のレコードを入力 ---☀ ---☁ ---● ---[XML filename pattern] --[Faux Project Path]を入力 ***E-Mail Notification プラグインの設定 [#k4e672c6] ビルド後アクションにおけるE-Mail Notification プラグインの設定方法について説明する。 -[Post-build Actions]セクションの[Add post-build action]ボタンをクリックし -[E-Mail Notification]を選択して電子メールでビルド状態の通知をさせる。 -[E-Mail Notification]セクションに下記を設定する。 --[Recipients]に受信者を入力する。 *ビルドの実行と確認 [#r25544bd] **ビルドの実行 [#c3d52497] -[Jenkins project]ページで[Build Now]ボタンをクリックしてプロジェクトをビルドする。 -Build Historyの中でビルド情報を確認するためにビルド番号をクリックする。 -Console Output をクリックしてビルド時の console logを確認する。 **プラグインの結果を確認 [#tbcdc4ed] ビルドが成功するとJenkinsで構成されたプラグインの出力が[Jenkins project]ページ上に表示される。 ***FxCop プラグインの結果を確認 [#l814d345] FxCop とViolations プラグインにより生成された結果をチェックし確認する。 -[Jenkins project]ページでViolationsをクリックし -FxCop とViolations プラグインにより生成された結果を表示する。 -[filename]一覧からアイテムをクリックしコード違反の詳細なリポートを表示する。 ***[[Doxygen]] プラグインの結果を確認 [#hecb37c7] [[Doxygen]] プラグインにより生成された結果をチェックし確認する。 -[Jenkins project]ページでDoxyGen HTMLをクリックし -[[Doxygen]] プラグインにより生成された結果を表示する。 ***[[OpenCover]] の結果を確認 [#e707fd2a] [[OpenCover]] とPublish HTML プラグインにより生成された結果をチェックし確認する。 -[Jenkins project]ページでCoverage Reportをクリックし -[[OpenCover]] により生成された結果を表示する。 ***[[NUnit]] の結果を確認 [#l4d43b57] [[NUnit]] により生成された結果をチェックし確認する。 -Test Result Trend グラフでNUnit プラグインにより生成された結果する。 -詳細は、[Jenkins project]ページでLatest Test Resultをクリックし、 -[[NUnit]] プラグインにより生成された結果を表示する。 *参考 [#z0002708] **プラグイン [#bc2a00a4] -Backlog(Git)とJenkins(MSBuild)を連携させ、自動ビルドさせる - VB.NETで作る!~ http://mk3008net.hatenablog.com/entry/2015/03/29/124511 -JenkinsによるGit連携の自動化~ http://changesworlds.com/2015/03/git-by-jenkins/ **セキュリティ [#s9355e8c] -ユーザ作成を含む最低限のセキュリティ設定(Jenkins) - Qiita~ http://qiita.com/n_rooms/items/2e1adefcc26d51b4e866 -Jenkinsでログイン設定してログインできなくなった時の対処 - Qiita~ http://qiita.com/wappy100/items/053fd584cfcd62159082 --Disable security - 日本語 - Jenkins Wiki~ https://wiki.jenkins-ci.org/display/JA/Disable+security **スケジュール [#e5783c1c] -crontabの書き方~ http://miya0.dyndns.org/pc/settei/crontab.html