Go言語のプロジェクトを GitHub Actions で SonarCloud に連携する設定を試してみました。 テストカバレッジ表示も設定します。

1.SonarCloudとGitHubの連携方法

  1. SonaCloud を開く。
  2. 「GitHub」をクリックする SonaCloudスクリーンショット
  3. あとは画面の指示に従って設定を行う

設定の詳細は SonarCloudのドキュメント に書かれています。が、これ読まなくても画面の指示に従ってポチポチクリックするだけで終わります。

ポチポチクリックして設定すると SonarCloud Automatic Analysis という設定が行われて自動的に解析をしてくれます。

2.GitHub Actionsの設定

SonarCloud Automatic Analysisだとカバレッジに対応していないので、GitHub Actionsでの解析に切り替えます。

GitHub Actionsの設定を行うには、Administration - Analysis Method で分析方法の設定画面に移動します。 Administration - Analysis Method

設定画面でSonarCloud Automatic AnalysisをOFFにして、GitHub Actions - Follow the tutorial のリンクをクリック。 Administration - Analysis Method

あとは、画面の指示に従って、GitHub Actionsのワークフロー設定とsonar-project.propertiesを設定すればひとまず連携できるようになります。

3.カバレッジ取得のための設定を追加

公式ドキュメントによると、Go言語の場合は sonar.go.coverage.reportPathssonar.go.tests.reportPaths の設定がsonar-project.propertiesに必要っぽいのでそれらを設定します。

こんな感じに設定してみました (ファイル全体はこちら):

sonar.go.coverage.reportPaths=cover.out
sonar.go.tests.reportPaths=result.json

これに合わせてワークフロー設定を以下のように書き換えます (ファイル全体はこちら):

- name: Test
  run: go test -json -coverprofile=cover.out ./... > result.json

4.サンプルプロジェクト

お試しで作ってみたプロジェクトはこちらに:

参考

かわかみしんいち。島根県津和野町在住のフリーランスエンジニア。複合現実(Mixed Reality)と3DUXでおもちゃを作るのが趣味。 https://github.com/ototadana