AppVeyor統合
CppDepend と AppVeyor 統合による開発効率の向上
この素晴らしい詳細チュートリアルはに基づく NDepend (.NET版CppDepend相当) 統合 Jimmy Pelletier 著。著者の許可を得て以下に転載。
このドキュメントでは、品質管理と履歴分析のために CppDepend を CI パイプラインに統合する方法を段階的に説明します。品質管理については、CppDepend ルールに違反したときにビルドを失敗させる方法を示し、履歴分析については、CppDepend レポートをビルドアーティファクトとして公開します。
前提条件と仮定
この記事の手順に従うには、いくつかの前提条件があります。必要なもの:
- GitHub にチェックインされた C/C++ プロジェクト。
- A DevOpsライセンスキー。このファイルを入手するには、までご連絡ください support@codergears.com。試用期間中の場合は、メールに会社名と郵送先住所をお知らせください。DevOps ライセンスキーをお持ちの場合は、メールにライセンスキーをお知らせください。
C/C++、Visual Studio、Git の使用方法を理解していることを前提としています。
ビルド中にツールを利用可能にする
CppDepend をビルド パイプラインの一部として実行するには、次のことを行う必要があります CppDepend.Console.exe ビルド中に実行できます。AppVeyor のようなクラウドビルドエージェントを使用する場合、ツールのインストールや環境のセットアップの選択肢は限られています。CppDepend をソース管理にチェックインするだけです。まず CppDependインストーラーをダウンロード その内容を tools ディレクトリにコピーします。私は次の場所に置きました /tools/CppDepend。また、を有効化する必要があります DevOpsライセンスキー.
CppDependプロジェクトを作成
CppDepend で作業するには、CppDepend プロジェクトを作成する必要があります。手順は次のとおりです:
- でVisual StudioにCppDependをインストール CppDepend.VisualStudioExtensionInstaller.exe.
- Visual Studioでソリューションを開きます。
- ソリューションをビルドしてアセンブリを生成。
- CppDepend メニューから「Attach New CppDepend project to Current VS Solution」を選択します。
- 「VSプロジェクトを追加」をクリック。
- ソリューションを選択。
- 「プロジェクトを解析」をクリック。
- 「CppDepend」メニューの「Project」メニューから「Edit Project」を選択します。
- 右側の「Paths Referenced」を選択します。
- 一覧表示された各パスを選択し、右クリックで「Set as Path Relative (to the CppDepend Project File Location)」を選択します。
- 変更を保存します。
注意: これらの手順を実行するには、CppDepend Developer ライセンスが必要です。DevOps ライセンスのみをお持ちの場合でも、VisualCppDepend.exe の Start Page > New CppDepend project から VS ソリューションから CppDepend プロジェクトを作成し、分析するプロジェクトのリストを作成できます。この場合でも、上記で説明したように、参照パスを CppDepend プロジェクトファイルの場所に対する相対パスとして設定する必要があります。
ビルドスクリプトを作成
次に、プロジェクトのビルド方法を AppVeyor に伝えるビルドスクリプトを追加する必要があります。AppVeyor ビルドスクリプトの動作の詳細については、次を参照してください AppVeyorドキュメント ですが、ここに含めるものはかなり自明であり、執筆時点(2018 年 9 月)では正しいものです。ファイルはリポジトリのルートに配置され、名前は appveyor.yaml.
注目すべき点は、CppDepend プロジェクトファイルの完全な絶対パスを解決して CppDepend に渡す必要があることです。ここでは、CppDepend プロジェクトファイルの名前は SomeProject.cdproj.
AppVeyorのセットアップと最初のビルド
次に、AppVeyor でビルドするために GitHub リポジトリを設定します。
- GitHub アカウントで AppVeyor にログインまたはサインアップします。
- ホーム画面から「新しいプロジェクト」をクリック。
- GitHub アカウントで利用可能なリポジトリのリストからプロジェクトを追加します。
- 「New Build」をクリック。
ビルドを失敗させる
CppDepend は、Quality Gate が失敗すると失敗するようになりました。AppVeyor は、ゼロ以外の終了コードを返すコマンドがあるとビルドを終了します。少なくとも 1 つの Quality Gate の失敗は、 CppDepend.Console.exe 次の説明にあるように、ゼロ以外の終了コードを返します クオリティゲートとビルド失敗.
したがって、ビルドの失敗をテストする最も簡単な方法は、「Critical Issues」Quality Gate を変更することです。まず、このルールをクリティカルな問題のみを考慮するように制限している述語を削除します。次に、 failif しきい値を設定して、1 つの問題でも失敗するようにします。既定のルールセットとほぼすべてのソリューションで、これは品質ゲートを作動させるのに十分なはずです。 クオリティゲートCQLinqクエリ 次のようになります:
1// <QualityGate Name="Critical Issues" Unit="issues" />23failif count > 1 issues45warnif count > 0 issues67from i in Issues89select new { i, i.Severity, i.Debt, i.AnnualInterest }
CppDependレポートの公開
CppDepend レポートを公開するには、CppDepend が次に書き込む一連のファイルが必要です /CppDependOut ビルド プロセス中。AppVeyor を使用すると、これらのファイルを zip にまとめてダウンロード用に提示できます。次を末尾に追加してください appveyor.yaml ファイル:
次に、完了したビルドの「Artifacts」タブから zip ファイルをダウンロードし、展開して HTML レポートを表示します。
