Qiitaの記事をもとに、GitHub ActionsでPull Request(PR)を作成・更新したときにSonarQube Serverの解析を実行する方法を紹介します。レビュー前にバグやCode Smellを検出できます。
SonarQubeの準備
SonarQubeで対象リポジトリのプロジェクトを作成し、Project Keyを控えます。続いて My Account > Security でAnalysis Tokenを生成し、後で使うためにコピーします。
GitHub Secretsの設定
リポジトリの Settings > Secrets and variables > Actions で次のRepository Secretsを追加します。
| Name | 値 |
|---|---|
SONAR_TOKEN | SonarQubeで作成したトークン |
SONAR_HOST_URL | SonarQube ServerのURL |
GitHub Actionsはクラウド上で動くため、localhost のSonarQubeには接続できません。インターネットから到達できるサーバーを指定するか、試験時はngrokなどのトンネルを利用します。
ワークフローの作成
.github/workflows/sonar-analysis.yml を追加します。
| |
my-project は自分のProject Keyに置き換えてください。fetch-depth: 0 は全履歴を取得し、SCM情報を解析できるようにする設定です。
PRで確認する
ブランチに変更をプッシュしてPRを作成すると、ActionsのChecksで解析ジョブの実行状況を確認できます。成功後、SonarQubeのプロジェクト画面でPRの解析結果を確認します。Bugs、Vulnerabilities、Code Smellsと、該当するソースコードの行が表示されます。
まとめ
PR作成・更新時にSonarQube解析を自動実行することで、レビューの早い段階で品質問題を把握できます。Quality Gateを組み合わせれば、基準を満たさないPRのマージを防ぐ運用にも発展できます。