ニコラス丁にsvn up
を開始:それは、展開のためのポストコミットフックを書くために本当に悪い考えです。
Aar:あなたの理由は何ですか?サイトをチェックするのはそれほど悪くはありませんが、あなたがコミットしたことはありますか?あなたの議論は何ですか?
私はNicholas Dingに同意する必要があります。問題は、ポスト・コミット・フックでデプロイメントをしている間に、開発者がコミットが完了するのを待っていることです。デプロイメントの完了に30秒しかかからない場合、開発者はポスト・コミット・フックが完了するのを30秒待っています。
開発者がファイルをコミットするたびに、コミットが完了するまで30秒待たなければならないと思いますか?あなたはSubversion、一般的な開発プロセス、そしてあなたはCMだと思いますか?デプロイメントをポスト・コミット・フックとして行うことは、まさにキャリア強化の動きではありません。
私はあなたがJenkinsで見てください。ジェンキンスは、連続ビルドシステムと呼ばれるものです。 Jenkinsは、開発者がコミットするたびにビルドを実行するように、Jenkinsを設定できます。この方法では、デプロイメントが行われている間にSubversionを縛らないでください。
素晴らしいことは、Jenkinsも展開を実行できることです。また、デプロイメントが失敗した場合、コミットした開発者に電子メールで送信できます。ジェンキンスもあなたのためにいくつかのテストを実行することができます。たとえば、デプロイメントはうまくいったかもしれませんが、変更されたコードはエラーになります。それは検出するのがいいかもしれません。展開前にJenkinsで展開可能な成果物をテストする場合は、Jenkinsで展開可能な成果物を保存できます。テストがうまくいけば、Jenkinsのビルドに戻り、ボタンをクリックしてデプロイメントを行うことができます。
さらに、Jenkinsは、開発者がすべての変更、ビルド、および展開の履歴を確認できるようにします。また、テスト開始後、すべてのテストの履歴を表示することもできます。 Jira、Bugzilla、MantisBF、Trackなどの一般的な問題追跡システムを使用する場合、Jenkinsはそれらのシステムと統合して、特定の問題がどのビルドで処理されたかを追跡するのに役立ちます。
何かをコンパイルする必要がない場合でも(Webページ全体が単なるPHPファイルとJavaScriptだとします)、Jenkinsをデプロイメントとテストのために使用するだけで、多くのメリットが得られます。
Jenkinsは、Subversionの処理速度を落とさずに、開発プロセスを改善して問題を処理できる素晴らしいソフトウェアです。さらに、Jenkinsはとても使いやすく、とにかくポスト・コミット・フックで何をしたいのかを理解するよりもJenkinsを使う方が速いでしょう。
Webサイトを展開するためのポスト・コミット・フックは、ステージング・サーバーであっても悪い考えです。展開のためのビルドツールがあります。私はMavenだけを使用しましたが、Antのような他の多くのものがあります。 – StuR
悪い考えかどうか、これについて考えていますか? – Aar
あなたはこのリンクを試すことができますが、とにかく展開スクリプトを書く必要があると思います。 https://mikewest.org/2006/06/subversion-post-commit-hooks-101 – mpm