EN JP CN

コマンドライン用 Klocwork CI のインストールと統合

コマンドライン用 Klocwork CI のインストールと統合

Klocwork は、お使いのコマンドラインベースのビルド環境に簡単に統合することができます。少数のビルドステップをビルド構成に追加することで Klocwork CI が統合されます。

Klocwork CI をお使いのビルド環境に統合する

低レベルでは、kwconan コマンド ライン ユーティリティは、CI をサポートをします。kwconan コマンドラインユーティリティは、スクリプトをサポートしているビルド環境を統合し、CI ソフトウェアビルドの解析を行います。以下のステップは、カスタムコマンドラインベース環境のユーザー用です。TeamCity 環境への統合は TeamCity プラグイン用 Klocwork のインストールと構成、および Jenkins 環境への統合は Jenkins プラグイン用の Klocwork のインストール を参照してください。

重要: Klocwork CI データはテーブルディレクトリで格納されます。したがって、Klocwork ビルド間の各エージェントでテーブルディレクトリを維持するようシステムを設定する必要があります。

ビルド設定ステップに次のステップを追加してください。

  1. kwinject コマンドを使用してネイティブ build specification (ビルドスペック) をキャプチャ、または更新する

    使用しているビルド環境で、通常のビルドコマンドを発行しますが、その前に kwinject コマンドを追加します。

    kwinject <my_build_command>

    たとえば、使用しているビルドコマンドが "make" の場合、次のコマンドを実行します。

    kwinject make
    ビルドが完了すると、更新された build specification (ビルドスペック) が作成されます。
    注: 正確な結果を得るために、build specification (ビルドスペック) である kwinject.out ファイルは、ビルド間で保持される必要があります。
  2. kwbuildproject コマンドを使用した静的解析結果を生成します。
    前回のビルド以降に入力され修正された欠陥のリストを生成するには、プロジェクトの名前とサーバーの場所を指定して、増分 conan モードで kwbuildproject を実行します。
    kwbuildproject --url http(s)://<host>:<port>/<project_name> --incremental --conan --tables-directory <dir> [<options>] <build_specification1> [<build_specification2>...]
    フィールド
    • <host> は Klocwork サーバーのホスト名です。
    • <port> は Klocwork サーバーのポート番号です。
    • <project_name> は kwconan エージェントを実行する Klocwork プロジェクトの名前です。
    • <dir> は出力テーブルディレクトリ (必須引数) です。
    • <options> は、kwbuildproject の任意のオプションです。
    • <build_specification> は前に生成した build specification (ビルドスペック) です。このコマンドでは任意数の build specification (ビルドスペック) を指定できます。

    kwbuildproject --url http://jsmith02:8080/my_project --incremental --conan --tables-directory mytables /home/klocwork/myproject.out
  3. kwconan 実行コマンドを追加することで結果を解析します。

    ベースラインに照らして結果を解析し、kwconan run コマンドを追加することで、新しい欠陥リストと修正済み欠陥リストを作成します。JSON フォーマットで結果を出力します。この出力をキャプチャし、ファイルに格納することができます。お使いの CI システムによっては、このファイルをアーティファクトに変えることができます。

    kwconan run --tables-directory <dir> --url http://<host>:<port>/<project_name>
    フィールド
    • <dir> は、kwbuildproject によって作成されたテーブルディレクトリへのパスです。フルビルド解析用テーブルディレクトリを使用しようとすると、エラーが返され、結果は表示されません。
    • <host> は Klocwork サーバーのホスト名です。
    • <port> は Klocwork サーバーのポート番号です。
    • <project_name> は kwconan を実行するプロジェクトの名前です。

    kwconan run --tables-directory mytables --url http://jsmith02:8080/my_project --json
  4. 解析結果を解釈し、行動を取ります。結果の表示に問題があれば、追加のヘルプを 継続的インテグレーションの問題 で参照してください。

    結果を確認し、プロセスに従って行動を取ることができます。たとえば、重大な指摘が見つかった場合や、段階的な一連の変更内容が拒否された場合、ビルドに失敗し、その旨をデベロッパーに通知することができます。kwconan run コマンドを実行するスクリプトを作成してステップ 3 とこのステップを組み合わせ、単一のステップとして結果を処理します。

    注: フルビルド解析用に作成されたテーブルディレクトリを使用しようとすると、エラーが返され、結果は表示されません。
  5. kwconan 促進コマンドを実行して、ベースラインを更新します。

    kwconan promote コマンドをビルドステップに追加し、現在の解析結果でベースラインを更新できるようにします。

    このステップを行わず、現在の解析結果を破棄する場合。例えば、事前にコミットしたか、段階的な一連の変更で新しい指摘が検出された場合などです。解析結果を促進しない場合は、次のビルドで報告されます。

    kwconan promote --tables-directory <dir> --url http://<host>:<port>/<project_name>
    フィールド
    • <dir> は、kwbuildproject によって作成されたテーブルディレクトリへのパスです。フルビルド解析用テーブルディレクトリを使用しようとすると、エラーが返され、結果は表示されません。
    • <host> は Klocwork サーバーのホスト名です。
    • <port> は Klocwork サーバーのポート番号です。
    • <project_name> は kwconan を実行するプロジェクトの名前です。