SonarQube の構成
SonarQube は、ソース・コードの全体的な正常性と品質の概要を提供し、新しいコード内で見つかった問題を強調表示します。 コード・アナライザーは、20 を超えるコーディング言語において、NULL ポインター間接参照などの注意を要するバグ、論理エラー、リソース・リークを検出します。
以下のようにして、ソース・コードの品質を継続的に分析および測定するように SonarQube を構成します。
-
IBM Cloudコンソールから、メニューアイコンの
>Platform Automation>Toolchains をクリックします。 「ツールチェーン」ページで、ツールチェーンをクリックしてその「概要」ページを開きます。 あるいは、アプリの「概要」ページの「継続的デリバリー」カードで、**「ツールチェーンの表示」をクリックします。 次に、「概要」**をクリックします。
a. **「ツールの追加」**をクリックします。
b. 「ツール統合」セクションで**「SonarQube」**をクリックします。
-
SonarQube ツール統合のこのインスタンスの名前を入力します。
-
ツールチェーンから SonarQube カードをクリックしたときに開くようにしたい SonarQube インスタンスの URL を入力します。
-
オプション: SonarQube サーバーへの接続に使用するユーザー名を入力します。
ユーザー名の指定が必要なのは、SonarQube サーバーへの接続にパスワードを使用する場合のみです。 接続に認証トークンを使用する場合は、このフィールドを空のままにしてください。
-
SonarQube サーバーへの接続に使用するパスワードまたは認証トークンを入力します。
-
パブリック・インターネット上にサーバーが見つからない場合は、 拡張を選択します。 IBM Cloud は、提供された接続の詳細を検証できないため、このサーバーへの API アクセスを必要とする特定の機能が無効になります。 デリバリー・パイプラインは、このサーバーにネットワーク経由でアクセスできるプライベート・ワーカーを使用しないと機能しません。
-
「統合の作成」 をクリックします。
-
ツールチェーンの「概要」ページの**「サード・パーティー・ツール」カードで、「SonarQube」**をクリックして、接続先の SonarQube インスタンスのダッシュボードを表示します。
継続的統合パイプラインへの Sonarqube の追加
デフォルトの SonarQube インスタンス
独自の SonarQube インスタンスがない場合、パイプラインの実行中にパイプラインが SonarQube インスタンスを作成します。 そのインスタンスには、static-scan ステージの実行が完了した後にアクセスできます。
既存の SonarQube インスタンス
独自の SonarQube インスタンスを既存のパイプラインに追加するには、ツールチェーンにツール統合を追加してから、Sonarqube ツール統合パラメーターをパイプラインに追加します。
必須パラメーター
SonarQube スキャンを実行するには、パイプラインに以下の継続的統合パラメーターが必要です。
名前 | タイプ | 説明 | 必須またはオプションです |
---|---|---|---|
クラスター名 | テキスト | Docker ビルド・クラスターの名前。 | 必須 |
dev-region | テキスト | クラスターをホストしている IBM Cloud リージョン。 | 必須 |
opt-in-sonar | テキスト | sonarQube スキャンを有効にするオプション。 | 必須 |
sonarqube | ツール統合 | Sonarqube ツール統合。 | オプション |
パイプラインのパラメーターについて詳しくは、パイプラインのパラメーターを参照してください。
複数の SonarQube ツール統合をパイプラインに追加した場合は、ツール統合パラメーターである sonarqube パイプライン・パラメーターの値を変更して、それらのツール統合を切り替えることができます。
品質ゲートの更新
パイプラインで作成された SonarQube インスタンスを使用する場合は、デフォルトの品質ゲートを更新できます。
-
static-scan
タスクのパイプライン・ログの URL を使用して、作成された SonarQube ダッシュボードに移動します。SonarQube dashboars -
「品質ゲート (Quality Gates)」>**「作成」**をクリックします。
-
以下のいずれかのオプションを使用して、品質ゲートを設定します。
- **「既定として設定」**をクリックして、新規作成される品質ゲートをデフォルトとして設定します。
- ダッシュボードで、プロジェクトを選択してから、「プロジェクト設定」>**「品質ゲート (Quality Gate)」**をクリックして、新規作成される品質ゲートをそのプロジェクトに使用します。
-
プロジェクトに関連付ける品質ゲートを指定します。 新しいスキャンはこの品質ゲートで評価され、エビデンスはこの品質ゲートの結果から作成されるようになります。
SonarQube,の詳細については、SonarQubeドキュメントを参照してください。
独自の構成ファイルの使用
独自の SonarQube インスタンスを使用しなくてもデフォルトの構成を変更することができます。 作成した構成ファイルを格納するリポジトリーに、sonar-project.properties
ファイルを作成します。 IBM のスクリプトは、リポジトリーで既存の構成ファイル configuration sonar-project.properties
を検出すると、デフォルトのファイルの代わりにそのファイルを使用します。
コンフィギュレーション・ファイルで可能な分析パラメーターについては、分析パラメーターを参照してください。
構成ファイルに正しいログイン資格情報とホスト URL を追加したことを確認してください。
別の静的スキャン実装の使用
.pipeline-config.yaml
ファイルを変更して独自のカスタム・スクリプトを static-scan
ステージに追加することで、独自の静的スキャン実装を使用できます。
APIを使用したSonarQubeの設定
SonarQube ツール統合は、 、 read、および update ツール統合を作成するときに ツールチェーン HTTP API および SDK で使用できる以下の構成パラメーターをサポートします。
sonarqube
値を使用して、要求本体に tool_type_id
プロパティーを指定する必要があります。
パラメーター | 使用法 | タイプ | Terraform 引数 | 説明 |
---|---|---|---|---|
インデント接続 | 任意、更新可能、'Default: false |
ブール値 | インデント接続 | この統合の構成検証を無視するように Continuous Delivery に指示するには、 true に設定します。 また、 SonarQube サーバーがパブリック・インターネット上でアドレス可能でない場合は、 true に設定します。 |
dashboard_url | 必須、更新可能 | ストリング | サーバー URL | このツール統合の SonarQube サーバー・ダッシュボアの URL。 グラフィカル UI では、 SonarQube ツール統合カードをクリックすると、ブラウザーがこのダッシュボードに移動します。 |
名前 | 必須、更新可能 | ストリング | 名前 | このツール統合の名前。 |
user_login | オプション、更新可能 | ストリング | user_login | SonarQube サーバーで認証するためのユーザー ID。 |
user_password | オプション、更新可能 | パスワード | user_password | SonarQube サーバーで認証するためのパスワードまたはトークン。 このパラメーターには、ツールチェーン・シークレットの参照を使用できます。 秘密参照について詳しくは、 Continuous Delivery を参照してください。 |