LinuxでSVNを実行しています。コミットしたら、自動デプロイメントを実行したいと思っていました。私の検索によると、svnpost-commitでうまくいくようです。しかし、SVNインストールからコミット後のSVNを見つけることができませんでした。それで、それは別のインストールなのだろうか?ダウンロードしてインストールできるSVNコミット後フックはありますか?
2 に答える
まず、おそらくこれをポストコミットとして実行したくないでしょう。その理由は、ユーザーが続行する前にフックが完了するのを待たなければならないため、フックで実行するのに時間がかかりすぎるようなことはしたくないからです。
質問に答えるには、サーバーのリポジトリディレクトリを見てください。次のディレクトリとファイルが表示されます。
- README.txt
- conf
- db
- フォーマット
- フック
- ロック
ディレクトリの1つはと呼ばれhooks
ます。このディレクトリを見てください:
- post-commit.tmpl
- post-lock.tmpl
- post-revprop-change.tmpl
- post-unlock.tmpl
- pre-commit.tmpl
- pre-lock.tmpl
- pre-revprop-change.tmpl
- pre-unlock.tmpl
- start-commit.tmpl
これらは、さまざまなフックのテンプレートです。これらはすべて単純なBASH/Korn/Bourneシェルスクリプトであることがわかります。このsvnlook
コマンドを使用して、ユーザーがコミットしたばかりのリビジョンまたはトランザクション(pre-commitフックの場合)に関する情報を取得します。
コマンドを実行してsvnlook changed
何が変更されたかを確認し、この情報に基づいてファイルをフェッチしてデプロイする必要があります。これは、作業ディレクトリを作成してチェックアウトする必要があることを意味します。開発者がチェックインを行い、コミット後のフックがチェックアウトとデプロイを行うのを待っていると想像してください。
Jenkinsのようなものにコミット後のタスクを実行させることをお勧めします。Jenkinsは通常、継続的ビルドサーバーです。誰かがコミットを行うたびに、Jenkinsはそのプロジェクトのチェックアウトを行い、ビルドを行います。あらゆる種類のテストを実行し、問題が発生した場合は開発者に電子メールを送信できます。
ただし、実際にビルドするものがない場合は、チェックアウトとデプロイを行うこともできます。JenkinsはJava1.6を使用して実行しますが、それ以外の場合は、インストールと使用が非常に簡単です。これはすべてメニュー方式であり、XMLファイルの作成方法やそれを使用するプログラムの作成方法を知る必要はありません。
だから、ジェンキンスを見て、そこからデプロイを行うことについて見てください。このようにして、Jenkinsがデプロイを処理している間、開発者は作業を続行できます。また、Jenkinsにメール、IM、ツイートを送信させたり、展開に問題がある場合は信号を緑から赤に変更したりすることもできます。
個別のインストールではありません。リポジトリディレクトリには、「フック」ディレクトリがあります。post-commit.tmplを見つけることができます。ファイルを変更し、OSの種類に応じて実行可能ファイルに名前を変更するだけです。