iutest の開発は「できるだけ無料の範囲でやる」というのもテーマの1つでもありますので、
紹介するものも基本的に無料で使えます。
コードホスティングサービス
SourceForge.JP
iutest は主に SourceForge.JP で開発しています。
バージョン管理には Subversion を使用。
また、マイルストーンごとのリリースもこちらでしています。
追記: OSDN に名称が変わりました
Github


github にもコードをアップしています。
やはり、コミュニティの強みがあるのかなと思います。
基本的には、github の方は SourceForge.JP の svn での変更を半自動的に push しているだけです。
コミットメッセージがアレなのはすみません、手抜きです。
コンパイラー・IDE
gcc/clang


このへんは当然でしょう。
Visual Studio

Visual Studio Express や Visual Studio Community を使用しています。
Wandbox
Wandbox はオンラインコンパイラーです。gcc や clang の様々なバージョンでコンパイルできます。
このへんは C++ Advent Calendar 2014 でも書いたのでそちらをご覧ください。
ブログズミ: Shippable + Wandbox で C++ の CI 環境構築
CI
Jenkins

Jenkins は CI ツールの定番ですね。
ローカルマシーンで稼働中です。
ただ、こちらは常時起動しているわけではなく、github に push するときとか、テストを実行するときに起動しています。
以前は、Cloudbees の Jenkins の無料プランを使っていたのですが、今は使っていません。
理由としては無料プラン内で収まらなくなったことと、メンテナンスがめんどくさくなったからです。
Jenkins は設定とかのメンテナンスが面倒だなー思うことが多々あります…そのへんはなんとかしたいですが…
(会社だとビルド処理はすべて外部ファイルに書いて git で管理してます)
最終的には、サービス体系が変わったのを機に使わなくなりました。
とはいえ、Jenkins は便利なので OpenShift 上で動かしています。(あまり使ってないけど)
Travis-CI

Travis-CI では、gcc/clang でのテスト、fused-src を使ってのテスト、カバレッジ計測、Coverity Scan のためのテストが走っています。
iutest のテストの主だった部分がこちらで行われています。
Drone.io
Drone.io は C++ がサポートされた CI サービスの1つです。
特徴としては、他の CI サービスが yml ファイルに処理を記述するのに対し、Drone.io では Jenkins のように Web ページ上で管理します。
設定が公開されないのがメリットになると思います。
iutest では、コンパイル速度の計測を行っています。
(あまり意味があるのか微妙だが、)コンパイル速度を意識して修正する場合に、こちらの数値を基準にしています。

Shippalbe

Shippable も CI サービスの1つです。
こちらは C++ がサポート言語にありませんが、Wandbox を利用してコンパイルと実行テストをしています。
詳しいことは C++ Advent Calendar 2014 で書いたので、そちらを参考にしてください。
ブログズミ: Shippable + Wandbox で C++ の CI 環境構築
特徴としては、無料プランでプライベートリポジトリが使えるのと、github の他 bitbucket にも対応しています。
有料プランとの比較はこちらを参考にしてください。
https://www.shippable.com/pricing.html
wercker

wercker も CI サービスの1つです。
こちらはβ期間中ですが、無料で github/bitbucket のプライベートリポジトリが扱えます。
ただ、こちらも C++ がサポート言語にありません。
iutest では Shippable と同じように Wandbox を使ったコンパイルと実行テストをしています。
Visual Studio Online
上記 CI サービスでは、Visual Studio が使えませんので、Visual Studio でのコンパイル・実行テストとしてVisual Studio Onlineを利用しています。
無料プランの場合、60分/月の制限があります。
iutest では制限を超えないように、1週間に1回、実行されるように設定しています。
静的解析・カバレッジ
Coveralls
Coveralls は計測したカバレッジの集計をし、推移や差分が見れるサービスです。
Travis などで gcov または lcov などで計測した結果を cpp-coveralls などのレポートツールを使って Coveralls と連携します。

Cppcheck
無料の C++ 静的解析ツールといえば Cppcheck でしょう。
ローカルの Jenkins で実行しています。
導入当初はお世話になりましたが、現在はお世話になることがほぼなくなりました。
Coverity Scan

Cppcheck よりも高度な静的解析ツールとして Coverity Scan を利用しています。
Coverity 自体は有償ツールなのですが、Coverity Scan はオープンソースであれば無料で使えます。
iutest でもリリース前にチェックするようにしています。
その他
OpenShift
OpenShift は Red Hat が提供する PaaS です。
簡単操作で Jenkins や Redmine などが使えます。
Jenkins でのテスト環境は作ってありますが、今はそんなに使ってません。
CloudBees

Jenkins の項でも書きましたが、以前は CloudBees の Jenkins を使っていました。
久しぶりにログインしたら Enterprise Trial というプランがあったので、また試してみようかなーと思ってます。
0 件のコメント:
コメントを投稿