ワークフローを改善しようとしており、いくつかの指針を期待しています。これが私が現在行っていることです。リモートの git リポジトリ (codebasehq) を使用し、いくつかのマシンでローカルに作業し、リモート リポジトリに変更をプッシュします。これは現在問題ありませんが、リモート リポジトリからライブ サイトまたはステージング サイトにもプルしたいと考えています。これを行うためのベストプラクティスは何ですか? Web ルートまたはこれよりも高度な何かへのコピーをチェックアウトするだけですか? ありがとう
2 に答える
Hudson / Jenkinsは、確実なgitサポートを備えた優れたビルド自動化ツールです。これは、実行する必要があるもう1つのサーバーです。時間またはイベントトリガーに基づいて、1つまたは複数のサーバーにデプロイするようにHudsonでさまざまなジョブを構成できます。
これは、cron、git commitフック、およびbashスクリプトを接続して、任意のデプロイメントタスクを実行するための便利な方法と考えることができます。
ワークフローの例として、私は他の10人の開発者とチームで作業しています。私たちはそれぞれプライベートブランチで作業し、機能がテストされて機能するときにマスターにマージします。誰かがマスターにプッシュすると、Hudsonはマスターをプルし、すべてのテストを実行し、内部受け入れテストのために最新のアプリケーションwarをJBossサーバーにデプロイします。
同様に、12時間ごとに別のJBossインスタンスにデプロイするように設定されたHudsonジョブがあります。このインスタンスは顧客のデモに使用するため、真に継続的インテグレーション/アクセプタンステストサーバーよりもわずかに揮発性を低くする必要があります。
また、パフォーマンステストを実行するよりも、特定のプロジェクトモジュールなどを構築するジョブがあります。これは非常に柔軟なプラットフォームであり、多くのプラグインがあります。
コピーを Web ルートにチェックアウトすることは問題ありませんが、Capistranoなどの展開ツールを検討することもできます。セットアップが完了したらcap deploy
、ローカル マシンの 1 つから発行するだけで、ライブ サーバーでの新しいコピーのチェックアウト、アプリケーションの起動などを処理します。