コードカバレッジ

ビルド完了後、コードカバレッジ率がUI上に表示されるようになり、コードカバレッジデータがアップロードされます。

Coverage in build detail page

現在、カバレッジ bookend では SonarQube をサポートしています。どのカバレッジプラグインがサポートされているかは Screwdriver クラスタ管理者に確認してください。

SonarQube

Sonar properties を sonar-project.properties ファイルや、screwdriver.yaml 内に $SD_SONAR_OPTS の環境変数として設定することができます。sonar.sources のプロパティは必須で、ソースのパスを指定します。

sonar-project.properties

SonarQube を使用するために、sonar-project.properties ファイルをソースコードのルートに追加して、そこに設定を追加していきます。

以下は Javascript examplesonar-project.properties の例です:

sonar.sources=index.js
sonar.javascript.lcov.reportPaths=artifacts/coverage/lcov.info

reportPath プロパティは使用する言語によって変わります。正しい指定の仕方は SonarQube documentation を確認してください。

$SD_SONAR_OPTS

設定を $SD_SONAR_OPTS の環境変数で指定することも出来ます。

screwdriver.yaml の例:

shared:
  environment:
    SD_SONAR_OPTS: '-Dsonar.sources=lib -Dsonar.javascript.lcov.reportPaths=artifacts/coverage/lcov.info'
jobs:
  main:
    requires: [~pr, ~commit]
    image: node:lts
    steps:
      - install: npm install
      - test: npm test

注意

セルフホスト型のSonarQubeを利用する

環境変数 $SD_SELF_SONAR_HOST に Sonar ホストの URL を設定することで、Screwdriver クラスタに設定されているものではないホストにコードカバレッジをアップロードすることができます。
$SD_SELF_SONAR_HOST を使用する場合、そのホストの admin の User Token を環境変数 $SD_SELF_SONAR_ADMIN_TOKEN に設定する必要があります。

screwdriver.yaml の例:

jobs:
  main:
    requires: [~pr, ~commit]
    image: node:lts
    steps:
      - install: npm install
      - test: npm test
  environment:
    SD_SELF_SONAR_HOST: 'http://YOUR_SONAR_URL'
  secrets:
    - SD_SELF_SONAR_ADMIN_TOKEN

注意

関連リンク

GitHub pull request decoration

ScrewdriverのクラスタがSonar Enterpriseを利用している場合、GitHubでのチェックにPull Request decorationを利用することができます。この機能が有効な場合、リポジトリにSonar PR Checks用のGitHub appを追加することで利用することが出来ます。サポート状況の詳細はScrewdriverクラスタ管理者に確認してください。