okuzawatsの日記

Android / Kotlin / GitHub Actions Enthusiast 🤖

GitHub ActionsでSonarCloudにカバレッジをアップロードする

目次

表記のことを行う方法をメモしておきます。

サンプルとしてAndroidアプリのカバレッジレポートをJaCoCoで出力する場合を取り上げています。JaCoCoについてはbuild.gradle.ktsでJaCoCoを動かすなどを参考にして設定済みであることを前提とします。

GitHub Actionsのワークフロー

結論から先に書くと、こんな感じのステップを作ります。このステップを動かすために、いろいろな準備が必要です。

jobs:
  test:
    # 省略
    steps:
      # 省略
      - name: sonarcloud
        uses: SonarSource/sonarcloud-github-action@master
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
        with:
          args: >
            -Dsonar.organization=your-organization-here
            -Dsonar.projectKey=your-project-key-here
            -Dsonar.coverage.jacoco.xmlReportPaths=./app/build/reports/jacoco/debugCoverage/debugCoverage.xml            

準備

CI baseの解析を有効にする

SonarCloudは、GitHubのリポジトリと連携した後、デフォルトブランチとPull Requestを自動で解析する設定になっています。SonarCloudのカバレッジ機能を有効にするためには、この設定を無効化して、Pull Requestベースでの解析を行うように変更する必要があります。

SonarCloudのプロジェクトのダッシュボードから、Administration > Analysis Methodを開き、Automatic Analysisを無効化します。もし"Administration"が表示されない場合は権限的な問題かもしれません。

SONAR_TOKEN

GitHubのリポジトリシークレットに保存する、SonarCloudのトークンです。

このトークンは、SonarCloudのダッシュボードから、My Account > Securityを開き、“Generate Tokens"で作成できます。この辺りは、組織のポリシーがあればそれに従います。今回は自分個人のアカウントで試しているので、自分のアカウントでトークンを作成しました。

オーガニゼーションとプロジェクトキー

yamlの以下の部分です。これら2つは、SonarSource/sonarcloud-github-actionwith を用いた構文を使う場合は必須のパラメータです。

            -Dsonar.organization=your-organization-here
            -Dsonar.projectKey=your-project-key-here

SonarCloudのプロジェクトのダッシュボードから、Informationを開き、“About This Project"の下に表示されている"Project Key"と"Organization Key"をそれぞれ入力します。

カバレッジレポートのパス

yamlの以下の部分です。カバレッジレポートのパスを設定します。言語によってパラメータが異なるので、Test Coverage Parametersを参考に設定します。

            -Dsonar.coverage.jacoco.xmlReportPaths=./app/build/reports/jacoco/debugCoverage/debugCoverage.xml

#Android #GitHub Actions

書いている人 😎

profile

茨城県つくば市在住のモバイルアプリケーションアーキテクト(Androidが得意です)。モバイルアプリのアーキテクチャ、自動テスト、CI/CDに興味があります。いわゆる「レガシーコード」のリファクタリング・リアーキテクチャが好きです。

👉 もっと詳しく

著書 ✍

Android 依存性注入 ヒッチハイク・ガイド🧳

Androidアプリでの依存性注入(Dependency Injection)に入門するためのガイダンスです。依存性注入の概念やメリットを理解し、Dagger Hiltを用いてAndroidアプリに適用する方法を解説しています。

販売サイトへ🏃

ソフトウェアデザイン 2023年6月号📚

特集「クリーンアーキテクチャとは何か?」の第5章「モバイルアプリ開発における実践」を執筆しました。

販売サイトへ🏃

Android クリーンアーキテクチャ ヒッチハイク・ガイド🧳

Androidアプリでのクリーンアーキテクチャに入門するためのガイダンスです。クリーンアーキテクチャの概念を理解し、Androidアプリに適用する方法を解説しています。

販売サイトへ🏃

Android ユニットテスト ヒッチハイク・ガイド🧳

Androidアプリのユニットテストに入門するためのガイダンスです。初学者が混乱せずにAndroidアプリのユニットテストを書き始めることができる、ということを目的としています。

販売サイトへ🏃

Android MVVMアーキテクチャ入門🛠

Androidアプリ開発の初学者に向けた、MVVM(Model-View-ViewModel)アーキテクチャの入門書を書きました。初学者の方を確実にネクストレベルに引き上げる技術書です。NextPublishingより出版されています。

販売サイトへ🏃

関連記事 👀

お問い合わせ✉️

Androidアプリ開発、特にレガシープロジェクトに関するご相談はこちらまで📨

お名前

メールアドレス

お問い合わせ内容