2017年10月4日水曜日

[CI] Rocro 使ってみた

ソニーネットワークコミュニケーションズ、新会社「Rocro株式会社」を設立
ソフトウェア開発者向けサービス群「Rocro」のベータ版の提供を開始
~自動コードレビュー、自動APIドキュメント生成、自動負荷試験をSaaSで提供~
http://www.sonynetwork.co.jp/corporation/release/2017/pr20170914_0036.html



ちょっと見てみたら、C++ にも対応しているようだったので試してみました。

登録
Rocro にまずはアクセス。
INSPECODE LOADROID DOCSTAND の3つありますが、今回は INSPECODE を使ってみます。



「Sign in」ボタンを押すと Github か Bitbucket の選択肢が出てくるので好きな方を選んでください。
(※後述しますが、現時点では public リポジトリに対応してません)


今回は Github を選択しました。
ナビゲーション通り進めれば登録は完了するはずです。

完了すると、ダッシュボードが表示されます。

Repositories をクリックして検証したいリポジトリを登録しましょう。

リポジトリ登録
「Repositories」を開くと以下のように表示されました。


「As of now, only private repositories are supported. Public repositories will be supported soon.」
Public リポジトリに対応してませんでした(2017/10/2 現在)
いずれ対応するとのことなので、ひとまず今回は Bitbucket に private リポジトリを作って試してみることにします。



気を取り直して Bitbucket でサインインするとこのようになります。



無事、リストアップされましたので、解析したいリポジトリを選択して登録をします。

解析
リポジトリ登録すると自動で解析が始まります。









けっこう待ちます。
(Cppcheck がながいのかな?)







解析が終わりました。赤くなっているということは何かしら問題があったようですね。
アイコンをクリックして結果を見てみましょう。

解析結果を見る


まず開くとこのようなページが表示されます。
失敗原因は Cppcheck のようです。
下にスクロールしていくと出力からどこが原因かがわかります。


(ログから読み解くのではなく、Jenkins みたいに集計できるともっと便利ですが…今後に期待)




ついでなので、ほかの解析結果も見ていきましょう。
「View Report」ボタンを押してください。



まずは「Summary」

シンプルな感じ。

「Files」タブを開くと各ファイルのメトリクスを見れます。

各ファイルをクリックすると詳細が確認できます。(Issues とソースコードとメトリクスの詳細)

「Issues」タブを開くと問題の詳細が確認できます。(サマリーからも飛んでこれます)



うーん。「ブログズミ: 続・ソースコード中の単語からの略語/スペルミス検出に挑戦」で直しきれなかったミススペルが・・・(コメント中のミススペル。コメントもチェックするように変えようかなぁ…)

Settings
一応「Settings」でできることも紹介しておきます。
まず、「Notifications」では通知設定ができます。現時点では「メール」「Slack」「HipChat」の設定ができました。

「Bitbucket/Github」ではホスティングサービスとの連携周りのリセットができます。
(※Github は private リポジトリを持ってなかったため未確認)

「Branches」では、CI を回すブランチを指定することができます。


バッジ
最後にお約束のバッジの付け方です。
バッジも「Settings」の中にあり「Badges」タブを開くと以下のようにテキストが得られます。



今は赤いですが、そのうち対応したい・・・


最後に
まだ public リポジトリに対応していないため、私が使いたいリポジトリでは直ぐには実運用はできない状態ですが、private リポジトリで開発している方なら問題なく使っていけるかと。
特に Cppcheck がデフォルトでチェックされるのが便利ですね!(結果の見やすさ改善は今後に期待)
コードレビュー系の CI サービスで C++ をサポートしてるのって珍しい気がするので、とってもありがたいです。
public リポジトリ対応されたら、iutest での運用を開始しつつ、より深く触っていきたいと思います。

以上。