JetBrains 製コード解析ツール Qodana を GitHub Actions で動かしてみた
Qodana とは?
Qodana is a code quality monitoring tool that identifies and suggests fixes for bugs, security vulnerabilities, duplications, and imperfections. Qodana already supports PHP, Java, and Kotlin projects, and will eventually support all languages and technologies covered by JetBrains IDEs.
[訳]
Qodana はバグや脆弱性や重複や不完全さを検出し修正を提案してくれるコード品質監視ツールです。
現在は PHP, Java, Kotlin がサポートされ最終的には JetBrains IDE がカバーするすべての言語や技術がサポートされる予定です。
実行環境
Docker ベースなので以下の環境で実行できます。
- 手動
- CI パイプライン
- GitHub Actions
- GitHub Application
- JetBrains TeamCity standalone & Cloud
今回は GitHub Actions で試します。
対象コード
ほどよいボリュームのコードということで laravel/lumen をお借りしました。
フォークして qodana
ブランチを作成してあります。
GitHub Actions
設定はデフォルトのままで動きました。
レポートが HTML で出力されるのですがローカルで index.html を開くと Fetch API が使えずエラーになるので GitHub Pages でホストします。
リポジトリ設定で qodana
ブランチと /docs
フォルダーを設定しました。
name: Qodana
on:
push:
branches: [ qodana ]
paths:
- .github/workflows/qodana.yml
jobs:
qodana:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: composer install
- name: Qodana - Code Inspection
uses: JetBrains/qodana-action@v1.0-eap
with:
report-dir: docs # GitHub Pages 用に指定
- name: Count changes
id: changes
run: |
git add -N docs
echo "::set-output name=count::$(git diff --name-only docs | wc -l)"
- name: Deploy to GitHub Pages
run: |
git config user.name github-actions
git config user.email github-actions@github.com
git add docs
git commit -m "Qodana report"
git push
if: steps.changes.outputs.count > 0
- uses: actions/upload-artifact@v2
with:
name: result
path: qodana
- uses: actions/upload-artifact@v2
with:
name: report
path: docs
実行時間
コード規模にもよると思いますが3分くらいでした。
レポート
レポートは以下にホストしてあります。
サマリーのグラフと詳細のリストが表示されました。
Discussion