さまざまなScalaプロジェクト用の継続的インテグレーションツールを探しています。これまでのところ、Sbtのプラグインを介してScalaプロジェクトをサポートしていると思われるJenkinsと、Scalaプロジェクトを直接サポートしていないが、Sbtに一致するコマンドラインビルドツールを簡単に統合できると主張しているPulseを見つけました。私はCIの実際的な経験はありませんが、通常はJavaに関連するCIに関するいくつかの記事を読んでいます。
通常の機能に加えて、たとえば、さまざまなコードバージョン管理システムのサポートやナイトリービルドの公開など、一連の統計を記録し、時間の経過とともにプロットし、特定の数値が予期せず、つまり定義された以上に変化した場合に通知をトリガーできるようにしたいと思います。要素。本質的に、テストスイートからの各テストは、最後にいくつかの統計を出力します。これらの統計は、正規表現によって抽出され、永続化されます(それらが由来するテストケースに関連付けられます)。
理想的には、記録された統計に対してクエリを作成する簡単な方法もあります。たとえば、テストスイートの最後の実行を以前の実行と比較することができます。ただし、これはCIツールで直接実行できるものではない可能性がありますが、少なくとも、記録されたデータをXMLやJSONなどのクエリ可能な形式でエクスポートできるはずです。
ヒント、リンク、体験レポートは大歓迎です!
編集1:
統計は、コードカバレッジやメモリ消費など、ある意味でJVM統計ではありません。これらは、プロジェクトによって実行される実際の作業に関連しています。たとえば、並べ替えアルゴリズムによって実行される比較の数や、SATソルバーでの競合する割り当ての数などです。番号は、各実行の最後にstdioに出力されるか、ファイルに書き込まれます。CIツールでは、時間の経過とともにグラフとしてレンダリングしたり、単純な分析(合計、子午線)を実行したり、数値が平均から外れたときにメールを送信したりできるようにする必要があります。