web-dev-qa-db-ja.com

javascriptプロジェクトのステータスレポートを作成する

Grunt と次のようないくつかのプラグインを使用するJavaScriptプロジェクトがあります。

すべての開発者がgruntタスクをローカルで実行するわけではないため(jshint、qunitなど)、コミットしたコードに問題があるかどうかわからない場合があります。うなり声の監視タスクを設定するのは簡単ですが、エラー/警告時にチームに電子メールを送信することは、私が予想していたほど明白ではありませんでした。

適切にフォーマットされたステータスを電子メールで送信するためにgrunt-contrib-emailstatusのようなものを見つけることを期待していましたが、これまでのところこれに遭遇していません。私はそれを逃しましたか?

そうでない場合、ここで推奨される方法は何ですか?過去に、Cruise Control、Jenkins、Hudsonなどがビルドステータスレポートを処理するのを見たことがありますが、この釘には大きすぎるハンマーのようです。一方で、crontabを使用してステータスをメールで送信しようとするのは小さすぎるようです。

2
explunit

私のチームでしたことは次のとおりです。

  • gitを使用するので、gitcommitフックを設定しました。したがって、Gruntをコミットするたびにjshintが実行されます。失敗した場合はコミットできません。

    • Good:jshintを手動で実行するのを忘れることがよくありました。したがって、コミットの失敗は最良のリマインダーです。
    • 悪い:コミットフックとは、gitリポジトリにコミットすることを意味します(オリジンのプッシュを受信しません)。したがって、コミットフックをローカルに設定する必要があります(私はそのためのうなり声のタスクを作成しました)。そのため、アプローチの有効性は各開発者の正直さに依存します(フックを実行せずにコミットを強制することもできます)。別の短所:Git UIを使用する場合は、プログラムがエラーなしでコミットフックを実行できるように、PATHを適切に設定する必要があります。しかし、MacOSXでUIのPATHを設定するのはそれほど簡単ではありません(MacOSXバージョン間でその領域に多くの変更があります)
  • Jenkinsを使用しています。したがって、jshintまたは単体テストが失敗すると、ビルドは失敗します。はい、それは「大きなハンマー」ですが、これらのツールは、そのような継続的インテグレーションタスク用に設計されています。これらは、本番バンドルの作成や、実際のWebブラウザーを使用した機能テストの実行などの他の種類の作業に使用できます。たとえば、CloudbeesでホストされているJenkinsを使用し、SauceLabsに基づいていくつかの機能テストをトリガーします。

また、サーバー側のコミットフックを設定することもできます。 Githubを使用していて、Gitサーバーを制御していないため、これを行うことができませんでした(Githubは、Travis CIなどのサードパーティアプリをリポジトリに接続することでその機能を提供します)。

ただし、gitリポジトリを制御していて、大きなCIツールを使用したくない場合は、post-receiveフックを設定できます( http:/ /git-scm.com/book/en/Customizing-Git-Git-Hooks )バックグラウンドで検証を実行し、電子メールを送信します(基本的に、その場合は自作のCIツールを作成しています;))

1
Diego