はじめに
ソフトウェア開発者向けサービス群 Rocroのクローズドβに参加させていただきましたので、Rocroサービスの導入方法を書こうと思います。
Rocroとは?
プレスリリースからの引用ですが「ソフトウェア開発者の周辺に発生する定常的なワークフローの効率化を支援するために、自動コードレビュー&修正、自動APIドキュメント生成&ホスティング、自動負荷試験を行うクラウドサービス」とのこと。
具体的にRocroは下記3つのサービスで構成されています。
- Inspecode(インスペコード): 自動コードレビュー&コード修正サービス
- Checkstyle、golint、Pyflakesなど40以上の定評のあるツールで自動コードレビュー。
- 強力な自動修正機能。修正コードをPull requestでマージ。
- 複数のツールによる解析を並列に実行することで、非常に短時間で解析が完了。
- Docstand(ドックスタンド): APIドキュメント生成&ホスティングサービス
- レポジトリと連携して最新のAPIドキュメントを自動生成&ホスティング。
- 面倒なドキュメントの維持管理作業を自動化。
- Loadroid(ロードロイド): 自動負荷試験サービス
- クラウド負荷試験サービス。シナリオを書くだけで、クラウド上に負荷サーバーを自動構築、負荷試験実施、結果の自動集計。
- 大規模負荷試験、数十万台のIoT機器を模擬した試験など、難度の高い試験が手軽に可能。
現在は「ベータ期間中につき、無料」なのでどんどん試すチャンスですね。
※ 9月15日時点ではパブリックリポジトリには未対応
引用・参考サイト
http://www.sonynetwork.co.jp/corporation/release/2017/pr20170914_0036.html
https://rocro.com/
適用するプロジェクト情報
今回Rocroを試したプロジェクトの情報は下記です。
- 開発言語 Go 1.8
- パッケージ管理 glide
- Githubのプライベートリポジトリにてソースコード管理
Rocroの導入手順
では実際にInspecodeを導入するまでの手順を記載します。
1. Sign in
公式サイトの「Sign in」ボタンをクリックします。
そうすると、GithubかBitBucketを選択する画面が表示されますので選択します。
選択後必要情報を入力すれば無事Sign in完了です。
2. 使用するリポジトリの選択
画面上部の「Repositries」を選択します。
画像では削除していますがAdmin権限を持っているリポジトリが一覧で表示されますので、Inspecodeを実行したい
リポジトリに対して「Registory」をクリックします。
3. 設定ファイルの作成
2.まででデフォルト設定のgo fmtやgoimportsは動作しました。
がGoで使える全ツール試してみたいので設定ファイル(rocro.yaml)をリポジトリ直下に置きます。
設定ファイルの内容は全ツールの自動修正機能を含む全てを動作させるような設定を書きます。
inspecode:
experimental:
env:
GLIDE_INSTALL_STRIP_VENDOR: 1
# golang configuration.
gas: default
go-test: default
errcheck: default
go-vet: default
gofmt: auto-fix
goimports: auto-fix
golint: auto-fix
gosimple: default
ineffassign: default
interfacer: default
misspell: auto-fix
※補足 GLIDE_INSTALL_STRIP_VENDOR: 1について
これはプロジェクトで使用しているパッケージの中で入れ子になったvendor/フォルダがあり、それを除外するような指定です。glideコマンドだと glide install -v
ですね。
ちなみにデフォルト設定で動作するツールや設定方法などは公式ドキュメントに記載されています。
4. Rocroを回す
設定が終わればコードがPUSHされたタイミングでInspecodeが走ります。
動作画面は下記のようになり、ツールで並列に実行可能なものは一気に動作されていたのが好印象でした。
う、修正するところいっぱいある。。。
まとめ
ざっとですが、Rocroの導入方法を紹介しました。 Jenkinsで一からCI環境を整えたり、CircleCIを導入したりと似たようなことは行ってきましたが、Rocroはかなり簡単にCI環境を導入できた印象です。また、ツールで実行できるところは並列で実行されたりと速度も期待できそうです。