3

さまざまなScalaプロジェクト用の継続的インテグレーションツールを探しています。これまでのところ、Sbtのプラグインを介してScalaプロジェクトをサポートしていると思われるJenkinsと、Scalaプロジェクトを直接サポートしていないが、Sbtに一致するコマンドラインビルドツールを簡単に統合できると主張しているPulseを見つけました私はCIの実際的な経験はありませんが、通常はJavaに関連するCIに関するいくつかの記事を読んでいます。

通常の機能に加えて、たとえば、さまざまなコードバージョン管理システムのサポートやナイトリービルドの公開など、一連の統計を記録し、時間の経過とともにプロットし、特定の数値が予期せず、つまり定義された以上に変化した場合に通知をトリガーできるようにしたいと思います。要素。本質的に、テストスイートからの各テストは、最後にいくつかの統計を出力します。これらの統計は、正規表現によって抽出され、永続化されます(それらが由来するテストケースに関連付けられます)。

理想的には、記録された統計に対してクエリを作成する簡単な方法もあります。たとえば、テストスイートの最後の実行を以前の実行と比較することができます。ただし、これはCIツールで直接実行できるものではない可能性がありますが、少なくとも、記録されたデータをXMLやJSONなどのクエリ可能な形式でエクスポートできるはずです。

ヒント、リンク、体験レポートは大歓迎です!


編集1:

統計は、コードカバレッジやメモリ消費など、ある意味でJVM統計ではありません。これらは、プロジェクトによって実行される実際の作業に関連しています。たとえば、並べ替えアルゴリズムによって実行される比較の数や、SATソルバーでの競合する割り当ての数などです。番号は、各実行の最後にstdioに出力されるか、ファイルに書き込まれます。CIツールでは、時間の経過とともにグラフとしてレンダリングしたり、単純な分析(合計、子午線)を実行したり、数値が平均から外れたときにメールを送信したりできるようにする必要があります。

4

3 に答える 3

4

私たち(Atlassian –私が働いている会社)はBambooを販売しており、SBTとMavenビルド(maven-scalaプラグインを使用)をある程度サポートしています。これらはScalaプロジェクトの内部で使用しており、セットアップはそれほど難しくありませんでした。それはあなたが探している歴史的な特徴のほとんどを持っています。

于 2012-06-22T01:01:19.357 に答える
4

Jenkinsプラグインを作成して、このstdoutを収集し、求めているすべてのことを実行できます。標準を取得する代わりに、その出力をファイルにリダイレクトし、プラグインにファイルを読み取らせます。

とにかく、そのようなことをしているプラ​​グインはたくさんあります。Jenkinsのチュートリアルを調べて、例と同じようなことをするプラグインを入手してください。

最後に、 Travis CIもScalaをサポートしていることは知っていますが、経験はありません。そのため、TravisCIがScalaをサポートしているかどうかはわかりません。

于 2012-06-22T20:16:50.897 に答える
0

CIシステムでのScalaサポートについては、ビルドツールのサポートを確認する方が適切です。

とりわけ、maven、gradle、ant、sbtはScalaを処理でき、すべてのCIシステムが少なくとも最初の3つをサポートすることを期待しています。Jenkinsは確かにサポートしています。

統計を収集するには、Javaバイトコードで動作するツールを探してください。ツールは、Scalaコンパイラによって生成されたバイトコードも処理できるはずです。

Sonarは多くの統計を収集し、それらをWebサイトから入手できるようにします。どの統計がJavaにとって意味があるかを確認することは実験する価値があります。

突然の変更でイベントをトリガーするには、Sonarのデータベースにクエリを実行できます。

更新された質問に関する更新:

Teamcityは、カスタムチャートのレンダリングをサポートしています。

http://confluence.jetbrains.net/display/TCD65/Custom+Chart

http://confluence.jetbrains.net/display/TCD65/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-ReportingBuildStatistics

http://confluence.jetbrains.net/display/TCD65/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-provideStatsUsingFile

数年前に成功したものを使用しました。

Jenkinsにはこのためのプラグインがありますが、私が少しの間試したとき、私は個人的にそれを機能させることができませんでした。

https://wiki.jenkins-ci.org/display/JENKINS/Measurement+Plots+Plugin

于 2012-06-22T09:18:19.793 に答える