Go言語のプロジェクトを GitHub Actions で SonarCloud に連携する設定を試してみました。 テストカバレッジ表示も設定します。
1.SonarCloudとGitHubの連携方法
- SonaCloud を開く。
- 「GitHub」をクリックする
- あとは画面の指示に従って設定を行う
設定の詳細は SonarCloudのドキュメント に書かれています。が、これ読まなくても画面の指示に従ってポチポチクリックするだけで終わります。
ポチポチクリックして設定すると SonarCloud Automatic Analysis という設定が行われて自動的に解析をしてくれます。
2.GitHub Actionsの設定
SonarCloud Automatic Analysisだとカバレッジに対応していないので、GitHub Actionsでの解析に切り替えます。
GitHub Actionsの設定を行うには、Administration - Analysis Method で分析方法の設定画面に移動します。
設定画面でSonarCloud Automatic AnalysisをOFFにして、GitHub Actions - Follow the tutorial のリンクをクリック。
あとは、画面の指示に従って、GitHub Actionsのワークフロー設定とsonar-project.propertiesを設定すればひとまず連携できるようになります。
3.カバレッジ取得のための設定を追加
公式ドキュメントによると、Go言語の場合は sonar.go.coverage.reportPaths
と sonar.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.サンプルプロジェクト
お試しで作ってみたプロジェクトはこちらに: