-
Notifications
You must be signed in to change notification settings - Fork 0
MS_JenkinsSetup
- 戻る(Jenkins)
自動的に GitHub などから Git リポジトリを取得して
CI する Jenkins サーバを構築する場合の基本的な情報。
補足(本ページの位置付け): 本ページは
Windows 上に Jenkins を立てて .NET Framework を CI するという、
2018 年頃の構成を克明に記録した手順書である。
現在の推奨構成とは大きく異なるため、先に差分を示しておく。【本ページの構成(当時)】 Windows Server └ Jenkins(Windows サービス) ├ Git プラグイン → GitHub から clone ├ MSBuild プラグイン → .sln をビルド ├ NUnit / OpenCover → テストとカバレッジ ├ FxCop / StyleCop → 静的解析 └ Doxygen → ドキュメント生成 → 【すべて 1 台のマシンに手でインストールする】★ 【現在の一般的な構成】★ ・CI は【GitHub Actions / Azure Pipelines】 → サーバの構築・保守が不要 → [GitHub Actions](MS_GitHubActions) ・ジョブ定義は【リポジトリ内の YAML】 → GUI で設定しない = 設定が Git で追える ★ ・実行環境は【コンテナ】 → 「Jenkins サーバに何が入っているか」に 依存しない 【それでも Jenkins が選ばれる場面】 ・【オンプレ / 閉域網】でしか動かせない ・特殊なハードウェア(実機テスト、ライセンス ドングル) ・既存の大量のジョブ資産 → その場合も 【Jenkinsfile(Pipeline as Code)】で書く ★ (本ページの GUI 設定は Jenkins 2.x 以降では旧来の方式)
インストール開始前に以下の環境を準備する。
Jenkins の前提 Windows OS
CI 対象の version
- .NET Framework のインストール
https://learn.microsoft.com/ja-jp/dotnet/framework/install/
Ant が原因で JRE では動作しない。
- Java SE - Downloads | Oracle Technology Network | Oracle
http://www.oracle.com/technetwork/java/javase/downloads/index.htm
補足(Jenkins の Java 要件は変わった): 本ページ執筆時と
要求バージョンが大きく上がっている。【現在の要件】★ ・Jenkins 2.4xx 以降 → 【Java 11 / 17 / 21】 ・Java 8 は【サポート終了】 → 古い Jenkins を上げる際は 【Java の入れ替えが先】になる 【JDK の入手先も変わった】 ・Oracle JDK は 【ライセンス変更】(2019年)を経て 現在は NFTC で無償利用可能だが条件がある ・実務では【OpenJDK 系ディストリビューション】が主流 ★ - Eclipse Temurin(Adoptium) - Microsoft Build of OpenJDK - Amazon Corretto - Azul Zulu → いずれも無償で商用利用でき、LTS が提供される
Git クライアント
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).
移行メモ(体裁): 移行元では「'git' コマンド**)**が通常のパスで」と
対応しない閉じ括弧が入っていたため削除した。
なお、この項の記述は Jenkins 公式ドキュメントの
Unix 系向けの説明を引いたものであり、
本ページの前提である Windows 環境には直接当てはまらない
(Windows ではgit.exeのパスを後述のプラグイン設定で指定する)。
- Doxygen: Downloads
https://www.doxygen.nl/download.html
- Graphviz - for Doxygen プラグイン
http://www.graphviz.org/
・・・
移行メモ(誤字・未執筆): 移行元では「StyelCop」と
綴りが誤っていたため「StyleCop」に修正した(本ページ内 4 箇所)。
また本節の内容は「・・・」のみで未執筆である。
- FxCop Installer - Home
https://fxcopinstaller.codeplex.com/
補足(FxCop / StyleCop はアナライザーに置き換わった): 本ページで
静的解析の中心に据えられている 2 つは、現在は別物になっている。【FxCop の系譜】★ FxCop(スタンドアロン) → 【非推奨】。CodePlex も閉鎖済み ↓ FxCop アナライザー(NuGet) → 【2020年に非推奨】 ↓ 【.NET アナライザー】(SDK に同梱)★ → .NET 5 以降、SDK に組み込み済み → csproj で有効化するだけ <AnalysisMode>Recommended</AnalysisMode> <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild> → 【別途インストール不要】 【StyleCop の系譜】 StyleCop(スタンドアロン)→ 開発終了 ↓ 【StyleCop.Analyzers】(NuGet)★ → Roslyn ベース。現在も保守されている → .editorconfig で規則を制御する 【何が良くなったか】★ ・【エディタ上でリアルタイムに警告が出る】 → CI で初めて気付く、が無くなる ・ビルドの一部として動く → 別ツールの実行手順が不要 ・【.editorconfig でチームの規約を共有できる】 → Git で管理・レビューできる ★ ・警告をエラーに昇格させて強制できる <TreatWarningsAsErrors>true</TreatWarningsAsErrors> 【CodePlex について】 ・Microsoft の OSS ホスティング サービス ・【2017年に閉鎖】(アーカイブのみ)★ → 本ページの codeplex.com のリンクは いずれも到達しない
以下はプラグインとしてではなくコマンドから実行する。
-
NUnit
.NET のテスティング・フレームワーク - OpenCover
.NET のカバレッジツール - ReportGenerator
様々な .NET カバレッジツールが出力する XML 出力を可視化する。
- https://jenkins-ci.org/ にアクセスする。
- Native packages [Windows] からダウンロードする。
- [jenkins-バージョン番号.zip] から jenkins.msi を取り出す。
- jenkins.msi をダブルクリックして、デフォルトの設定でインストールする。
- ローカルの Web サーバ上で Jenkins のサイトが実行され、
- ブラウザで [Jenkins Dashboard]([ダッシュボード [Jenkins]]) ページが表示される。
一般的なプラグインは自動アップロードされる。
オフラインの場合は、手動アップロードする。
[Jenkins Dashboard]([ダッシュボード [Jenkins]]) ページ上にある
-
[Manage Jenkins]([Jenkins の管理]) をクリックする。
-
[Manage Plugins]([プラグインの管理]) をクリックする。
-
オンライン時、一般的なプラグインを追加する場合、
- [Available]([利用可能]) タブを選択し、次のセクションでプラグインを選択する。
- [Install without restart]([再起動せずにインストール]) ボタンをクリックし
プラグインをインストール。
-
オフライン時やカスタム・プラグインの場合、
- [Advanced...]([高度な設定...]) タブを選択し、プラグインをアップロードする。
- [Available]([利用可能]) タブを選択し、次のセクションでプラグインを選択する。
- [Install without restart]([再起動せずにインストール]) ボタンをクリックし
プラグインをインストール。
-
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/
- ビルドしたプログラムに 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/
- 対象
- ???
- 各種プラグインが生成した HTML を
-
Violations プラグイン
- 静的コード解析の結果表示のプラグイン
- https://updates.jenkins-ci.org/download/plugins/violations/
- 対象
- StyleCop
- FxCop
-
Email-ext プラグイン
- email notifications を送る。
- https://updates.jenkins-ci.org/download/plugins/mailer/
-
Credentials プラグイン
- Credentials を追加して認証+権限付与をできるようにする。
- https://updates.jenkins-ci.org/download/plugins/credentials/
-
その他
以下はプラグインとしてではなくコマンドから実行する。-
- .NET のテスティング・フレームワーク
- http://www.nunit.org/
-
OpenCover
- .NET のカバレッジツール
- https://opencover.codeplex.com/
-
ReportGenerator
- 様々な .NET カバレッジツールが出力する XML 出力を可視化する。
- https://reportgenerator.codeplex.com/
-
補足(プラグインの現況): 挙げられているプラグインのうち、
廃止・置き換えが進んだものがある。【Violations プラグイン】★ ・【廃止済み】(distribution から削除) ・後継は【Warnings Next Generation】★ → 100 種類以上の解析ツールの出力を統合表示 → FxCop / StyleCop / MSBuild の警告も扱える 【Email-ext と mailer】 ・原文は Email-ext の説明に 【mailer プラグインの URL】を載せている → 両者は別プラグインである ★ - Mailer … 基本的なメール通知 - Email Extension … テンプレート、条件分岐、 添付が可能な拡張版 【OpenCover / ReportGenerator】 ・OpenCover は【開発停止】(2019年頃) → 後継は【Coverlet】★ (.NET Core 以降の標準的なカバレッジ ツール) dotnet test --collect:"XPlat Code Coverage" ・ReportGenerator は【現在も活発に保守中】★ → GitHub(danielpalme/ReportGenerator)へ移動 → Coverlet の出力(cobertura)も可視化できる 【NUnit】 ・現在も現役だが、.NET の標準テンプレートは 【xUnit】または MSTest が既定 ・Jenkins 側は JUnit 形式を扱えるため、 dotnet test --logger:junit で出力するのが簡単 ★
ここでは、
- バイナリのパス
- サーバーの URL
など、プラグインの基本的な設定をする。
詳しい動作は、
- プロジェクト
- ビルドステップ
などで設定する。
プラグインの基本的な設定は、
[Manage Jenkins]([Jenkins の管理]) セクションの、
[Configure System]([システムの設定]) ボタンをクリックしプラグインを設定。
移行メモ(誤字): 移行元の「セクッション」を「セクション」に修正した。
Git プラグイン
https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin
- Git セクションで、
- [Name]([名前]) フィールドを入力する。
- [Path to executable] に "git.exe" のパスを設定する。
MSBuild プラグイン
https://wiki.jenkins-ci.org/display/JENKINS/MSBuild+Plugin
- [MSBuild] セクションで、
- [MsBuildInstallations…]([MSBuild 追加]) をクリックする。
- [Name]([名前]) フィールドを入力する。
- [Path to MSBuild]([MSBuild.exe ファイルパス]) に "MSBuild.exe" のパスを設定する。
https://wiki.jenkins-ci.org/display/JENKINS/FxCop+Runner+Plugin
- [FxCop] セクションで、
- [FxCopInstallations…] ボタンをクリックする。
- [Name]([名前]) フィールドを入力する。
- [Path to FxCopCmd.exe]([FxCopCmd.exe ファイルパス]) に
"FxCopCmd.exe" のパスを設定する。
- [Dependency Graph Viewer Configuration] セクションで、
- [Enable rendering with graphviz] チェック ボックスをオン。
- [Dot Executable Path] に "Graphvizxx.xx\bin\dot.exe" のパスを設定する。
-
[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
- 安全性の低いアプリがアカウントにアクセスするのを許可する
補足(Gmail の「安全性の低いアプリ」は廃止された): この手順は
現在は使えないので、代替を明記しておく。【廃止の経緯】★ 2022年5月 個人アカウントで 「安全性の低いアプリのアクセス」を無効化 2024年9月 Google Workspace でも 【LSA / 平文パスワードによる SMTP を全廃】★ → 本ページの手順(パスワード直入力)は 【もう通らない】 【現在の選択肢】★ ① 【アプリ パスワード】 → 2 段階認証を有効にしたうえで 16 桁の専用パスワードを発行する → 現在も SMTP で使える(個人アカウント) → ただし Workspace では管理者が 許可していないと使えない ② 【OAuth 2.0(XOAUTH2)】 → 本来の推奨。Jenkins 側の対応が必要 ③ 【メール以外の通知に変える】★★ → Slack / Teams の Webhook → 実務ではこちらが主流になった (メールは埋もれる、通知が遅い) 【一般化できる教訓】★ 「サービスのパスワードを CI に直接持たせる」構成は 【どのサービスでも塞がれる方向】にある → トークン / OIDC / Webhook へ移行する → 認証情報は Credentials プラグインや シークレット ストアに置き、 設定に直書きしない
以下はプラグインとしてではなくコマンドから実行する。
- NUnit
- OpenCover
- ReportGenerator
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 Jenkins]([Jenkins の管理]) ページで
[Manage Credentials]([認証情報の管理]) ボタンをクリックし
ユーザ作成することもできる。 -
[Manage Credentials]([認証情報の管理]) ページで
[Add Credentials]([認証情報の追加]) ボタンをクリックし
[Username with password]([ユーザー名とパスワード]) を選択する。 -
[Username with password]([ユーザー名とパスワード]) セクションに下記を設定する。
- [Scope]([スコープ]) を選択
● グローバル : サインアップしたユーザはグローバルが設定されている。
● システム : ・・・ - [Username]([ユーザー名]) を入力
- [Password]([パスワード]) を入力
- [Description]([説明]) を入力
- [Save]([保存]) ボタンをクリック
- [Scope]([スコープ]) を選択
-
-
ユーザの管理
-
[Manage Jenkins]([Jenkins の管理]) ページで
[Manage Users]([ユーザーの管理]) ボタンをクリックし
ユーザの作成・削除・修正をする。 -
[Users] ページ
- ユーザの設定
- ユーザの削除
-
補足(Jenkins のセキュリティで最も重要なこと): 本節の設定は
最低限であり、実際にはもっと強い制約が要る。【Jenkins は「任意コード実行装置」である】★★ ・ジョブは【シェル/バッチを実行する】 ・つまりジョブを作れる = サーバ上で何でもできる → 「ログイン済みユーザーに許可」は 【全員が管理者相当】ということ ★ → 本ページの設定例は 小規模・信頼された環境の前提 【実務での設定】★ ・【Matrix-based security】または 【Role-based Authorization Strategy】プラグイン → ジョブ単位で read / build / configure を分ける ・匿名ユーザーの権限は【全部外す】 ・【Script Console】(/script)は 管理者以外に絶対に触らせない → Groovy で何でも実行できる 【インターネットに晒さない】★★ ・Jenkins は歴史的に 【深刻な RCE 脆弱性が繰り返し報告】されている (2024年の CVE-2024-23897 など) → VPN / 社内網に限定する → 公開が必要なら 前段にリバース プロキシと認証を置く 【認証情報の扱い】 ・【Credentials プラグイン】に集約する(原文どおり) ・ジョブの設定やログに 【平文で出さない】(マスク機能を使う) ・可能なら【シークレット ストア】 (HashiCorp Vault / Azure Key Vault)と連携する ★【用語の変化】 ・「slave(スレーブ)」は 【agent(エージェント)】に用語変更された(2016年〜)★ → 現在の UI では「ノード」「エージェント」と表示される
-
[Jenkins Dashboard]([ダッシュボード [Jenkins]]) ページで
[New Item]([新規ジョブ作成]) ボタンをクリックし新しいプロジェクトを作成する。 -
[New Item]([新規ジョブ作成]) ページで下記を設定する。
- [Item name]([ジョブ名]) フィールドを入力
- [Freestyle project]([フリースタイル・プロジェクトのビルド]) オプションボタンを選択
- [OK] ボタンをクリック
プロジェクトのプラグインの設定方法について説明する。
-
設定は、[Jenkins project] の [Configuration] ページから行う。
-
設定が完了したら、[Apply]([適用]) と [Save]([保存]) ボタンをクリックし
すべての設定を保存する。
Git プラグインの設定
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] ボタンをクリックしリポジトリを削除
- [Repository URL] に
-
Branch の設定
- [Branch Specifier (blank for 'any')] にリポジトリに存在するブランチ名を入力
- [Add Branch] ボタンをクリックしリポジトリにブランチを追加
- [Delete Branch] ボタンをクリックしリポジトリのブランチを削除
-
-
この設定により、以下のパスにリポジトリが clone & checkout される。
C:\Program Files (x86)\Jenkins\workspace\
移行メモ(誤記): 移行元では「[Delete Branch] ボタンをクリックし
リポジトリにブランチを削除」となっていたが、
追加([Add Branch])と対になる操作であるため「リポジトリのブランチを削除」と
読み替えた。
また clone 先パスの記述に閉じ引用符がなかったため整形した。
プロジェクトのビルドの設定方法について説明する。
ビルド・トリガの設定方法について説明する。
-
[Build Triggers]([ビルド・トリガ]) セクションで
定期的に実行するためのビルド・トリガを設定する。 -
設定例 :
-
[Build Periodically]([定期的に実行]) を選択
-
Schedule に「0 0 * * 0」を入力する
- 毎週日曜日の 12:00 AM にビルドが起動される。
- このスケジュールは、crontab の書式で記述される。
- see : https://ja.wikipedia.org/wiki/Crontab
-
補足(定期ビルドは CI ではない): 設定例が
週 1 回の定期実行になっている点は、目的に照らすと弱い。【CI の定義に照らすと】★ 継続的インテグレーション = 「変更のたびに統合して検証する」 → 週 1 回では 【壊れてから最大 1 週間気付かない】 → 原因の特定が難しくなる → [CI](MS_CI) の効果が出ない 【本来のトリガ】★ ・【SCM ポーリング】(H/5 * * * *) → 5 分ごとに変更を確認 → 手軽だが無駄が多い ・【Webhook】★(推奨) → GitHub の push で Jenkins を起動する → 即時。無駄がない → GitHub 側で Jenkins に到達できる必要がある (閉域網では逆にポーリングを選ぶ) ・定期実行が向くもの → 【夜間の重いテスト】(E2E、負荷) → 依存パッケージの脆弱性スキャン ★ 【H の記法】 ・「0 0 * * 0」ではなく【「H H(0-3) * * 0」】のように H(hash)を使うと、 ジョブごとに実行時刻が分散される ★ → 全ジョブが 0 時ちょうどに殺到するのを防ぐ
ビルド・ステップの設定方法について説明する。
-
[Build]([ビルド]) セクションの [Add build step]([ビルド手順の追加]) ボタンを
クリックし、以下のビルド・ステップを追加可能。- [Build a Visual Studio project or solution using MSBuild]([MSBuild の実行])
- [Execute Windows batch command]([Windows バッチコマンドの実行])
- [Execute Shell]([シェルの実行])
- [FxCop exec.]([FxCop 実行])
- [Generate documentation using Doxygen]([Doxygen でドキュメントを生成する])
- [Invoke Ant]([Ant の呼び出し])
- [Invoke top-level Maven target]([Maven の呼び出し])
- [Set build status to "pending" on GitHub commit]
- , etc.
移行メモ(誤字): 移行元の「Generaet documentation」(2 箇所)を
「Generate documentation」に、
「Invoke top-level Marven target」を「Maven」に修正した。
ビルド・ステップにおける [Windows batch command]([Windows バッチコマンドの実行]) の
設定方法について説明する。
-
[Build]([ビルド]) セクションの [Add build step]([ビルド手順の追加]) し
[Execute Windows batch command]([Windows バッチコマンドの実行]) を選択する。 -
[Execute Windows batch command]([Windows バッチコマンドの実行]) セクションで
以下を設定する。- Windows のバッチ・コマンドを Command に入力する。
MSBuild プラグインの設定
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 を入力する。 - [MSBuild Build File] に Visual Studio Project solution file のパスを入力する。
- 詳細なビルドオプションを設定するには、
[Advanced...]([高度な設定...]) ボタンをクリックする。
- [MSBuild Version] に前述の「MSBuild プラグイン」で設定した
移行メモ(誤字): 移行元の「[MSBuild Buid File]」を
「[MSBuild Build File]」に修正した。
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 プラグインの設定
https://wiki.jenkins-ci.org/display/JENKINS/Doxygen+Plugin
ビルド・ステップにおける
[Generate documentation using Doxygen]([Doxygen でドキュメントを生成する]) の
設定方法について説明する。
-
[Build]([ビルド]) セクションの [Add build step]([ビルド手順の追加]) し
-
[Generate documentation using Doxygen]([Doxygen でドキュメントを生成する]) を
選択して Doxygen プラグインを設定する。 -
[Generate documentation using Doxygen]([Doxygen でドキュメントを生成する])
セクションで下記を設定する。- [Doxygen installation] フィールドに名称を入力する。
- [Doxyfile path] に Doxygen の設定ファイルのパスを入力する。
- 詳細なオプションを設定するには、
[Advanced...]([高度な設定...]) ボタンをクリックする。
ビルド後アクションの設定方法について説明する。
- [Post-build Actions] セクションの [Add post-build action] ボタンをクリックし、
以下のビルド後アクションを追加可能。- , etc.
Publish NUnit test result reports プラグインの設定
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 のレポートファイルのパスを
(workspace フォルダ以下の相対パスで)入力する。
- [Test report XMLs] に NUnit のレポートファイルのパスを
ビルド後アクションにおける Publish HTML reports プラグインの設定方法について説明する。
-
[Post-build Actions] セクションの [Add post-build action] ボタンをクリックし
-
[Publish HTML reports] を選択して
[Jenkins Dashboard]([ダッシュボード [Jenkins]]) ページに
OpenCover などのプラグインによって生成された XML の出力を表示させる。 -
[Publish HTML reports] セクションで [Add] ボタンをクリックし下記を設定する。
- [HTML directory to archive] を(workspace フォルダ以下の相対パスで)入力
- [Index page[s]] を入力
- [Report title] を入力
Doxygen プラグインの設定
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 の設定ファイルのパスを入力する。
- workspace フォルダ以下の相対パスとして入力する。
- また、Doxyfile 内のパスも workspace フォルダ以下の相対パスとして入力する。
-
詳細なオプションを設定するには、
[Advanced...]([高度な設定...]) ボタンをクリックする。
-
ビルド後アクションにおける Report Violations プラグインの設定方法について説明する。
-
[Post-build Actions] セクションの [Add post-build action] ボタンをクリックし
-
[Report Violations] を選択して
[Jenkins Dashboard]([ダッシュボード [Jenkins]]) ページに
StyleCop、FxCop などのプラグインによって生成された XML の出力を表示させる。 -
[Report Violations] セクションに下記を設定する。
-
[fxcop] のレコードを入力
- ☀
- ☁
- ●
- [XML filename pattern]
-
[Faux Project Path] を入力
-
移行メモ(記号): 上記の「☀ / ☁ / ●」は、
Report Violations プラグインの設定画面で
警告数のしきい値(sunny / stormy / 表示件数)を表すアイコンを
そのまま書き写したものと思われる。移行元のまま残した。
ビルド後アクションにおける E-Mail Notification プラグインの設定方法について説明する。
-
[Post-build Actions] セクションの [Add post-build action] ボタンをクリックし
-
[E-Mail Notification] を選択して電子メールでビルド状態の通知をさせる。
-
[E-Mail Notification] セクションに下記を設定する。
- [Recipients] に受信者を入力する。
移行メモ(アンカー ID の重複): 移行元では
「Publish HTML reports プラグインの設定」「Report Violations プラグインの設定」
「E-Mail Notification プラグインの設定」の 3 節が
**同じアンカー ID(#k4e672c6)**になっていた(PukiWiki 側の不整合)。
見出しはそのまま移行した。
-
[Jenkins project] ページで [Build Now] ボタンをクリックしてプロジェクトをビルドする。
-
Build History の中でビルド情報を確認するためにビルド番号をクリックする。
-
Console Output をクリックしてビルド時の console log を確認する。
ビルドが成功すると Jenkins で構成されたプラグインの出力が
[Jenkins project] ページ上に表示される。
・・・
FxCop と Violations プラグインにより生成された結果をチェックし確認する。
-
[Jenkins project] ページで Violations をクリックし
-
FxCop と Violations プラグインにより生成された結果を表示する。
-
[filename] 一覧からアイテムをクリックしコード違反の詳細なレポートを表示する。
Doxygen プラグインの結果を確認
Doxygen プラグインにより生成された結果をチェックし確認する。
-
[Jenkins project] ページで DoxyGen HTML をクリックし
-
Doxygen プラグインにより生成された結果を表示する。
OpenCover の結果を確認
OpenCover と Publish HTML プラグインにより生成された結果を
チェックし確認する。
-
[Jenkins project] ページで Coverage Report をクリックし
-
OpenCover により生成された結果を表示する。
NUnit の結果を確認
NUnit により生成された結果をチェックし確認する。
-
Test Result Trend グラフで NUnit プラグインにより生成された結果を確認する。
-
詳細は、[Jenkins project] ページで Latest Test Result をクリックし、
-
NUnit プラグインにより生成された結果を表示する。
移行メモ(誤字): 移行元の「詳細なリポート」を「レポート」に、
「生成された結果する」を「生成された結果を確認する」に修正した。
補足(この構成を現在の書き方にすると): 本ページの手順全体は、
現在なら数十行の YAML で表現できる。対応関係を示しておく。
本ページの手順 現在の等価物 Git プラグインで clone actions/checkout@v4MSBuild プラグイン dotnet build/msbuild★NUnit プラグイン dotnet test --logger trxOpenCover + ReportGenerator Coverlet + ReportGenerator ★ FxCop / StyleCop + Violations .NET アナライザー / StyleCop.Analyzers ★ Doxygen プラグイン DocFX / Doxygen をステップで実行 HTML Publisher actions/upload-artifactE-Mail Notification Slack / Teams への Webhook ★ Credentials プラグイン secrets.*/ OIDC ★手作業のツール インストール コンテナ イメージ / setup- Action* ★ 【最大の違い】★★ 本ページ:設定が【Jenkins サーバの中】にある → GUI で作られ、Git で追えない → サーバが壊れると【再現できない】 → 「誰も触れないジョブ」が生まれる 現在 :設定が【リポジトリの中】にある → 変更が PR でレビューされる → いつでも再現できる → 【Pipeline as Code】★ 【Jenkins を使い続ける場合も】 ・【Jenkinsfile】に移行する → Freestyle project から Pipeline へ → 宣言的パイプライン(declarative pipeline) ・【Configuration as Code(JCasC)】プラグイン → Jenkins 本体の設定も YAML で管理する ★ → これだけで「属人化した CI サーバ」問題の 大半が解消する
-
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/
-
ユーザ作成を含む最低限のセキュリティ設定(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
- Disable security - 日本語 - Jenkins Wiki
- crontabの書き方
http://miya0.dyndns.org/pc/settei/crontab.html
移行メモ(リンク切れ): 本ページの
wiki.jenkins-ci.orgは
Jenkins 公式ドキュメント(www.jenkins.io)およびプラグイン サイト
(plugins.jenkins.io)へ移行しており、到達しない。
jenkins-ci.org本体もjenkins.ioへ移った。
またcodeplex.com(2017 年閉鎖)、
www.stack.nl/~dimitri/doxygen/(doxygen.nlへ移転)、
msdn.microsoft.comも同様である。
明らかな移転先が判明しているもの(.NET Framework / Doxygen)は
現行 URL に差し替え、その他は記録として残した。
Tags: 移行, .NET開発, テスト, デバッグ, ドキュメンテーション, ツール類, CI
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。