2012-03-08 10 views
19

私たちはGit/Githubで自動デプロイメント環境をセットアップしようとしています。私たちは3つの異なる環境を持っています。ローカル、テスト、ライブ。ローカルに新しい機能を追加するときは、最初にテストサーバーにファイルをアップロードして、新しく作成された機能をテストします。すべてが正常であれば、すべてのファイルをライブサーバーにアップロードします。しかし、この「アップロード」プロセスは完璧な解決策ではありません。ファイルをアップロードすることを忘れることがあります。私たちはまた、iPhoneとAndroid上にモバイルアプリを持っているので、モバイルは私たちにとって4番目の環境かもしれません。Git/Githubでデプロイ

私たちがしようとするのは、自動デプロイメント環境をセットアップすることです。新しい機能をテストサーバーにコミットすると、この新しい機能をテストした後、ライブサーバーにプッシュする必要があります。

テストサーバーには多くのコミットがありますが、特定のコミットをライブサーバーにプッシュする必要があります。我々は3-4環境に対処する方法を見つけることができず、コードを混乱させることもありませんでした。ライブサーバーに正しいコードをどのようにプッシュしますか?テストサーバーとライブサーバーはどのように管理しますか? Git/Githubを使って異なる環境やデプロイメントプロセスを設定する方法を教えてくれる良い資料はありますか?ステップバイステップで何をするか教えてくれる記事がありますか?

私はこれらの記事を読んだことがありますが、ローカル、テスト、およびライブ環境に対処する方法は教えていません。

  • http://danielmiessler.com/study/git/http://ryanflorence.com/deploying-websites-with-a-tiny-git-hook/
  • http://toroid.org/ams/git-website-howtohttp://ryanflorence.com/simple-git-deployment/

    EDIT 2012-03-09:私はhttp://beanstalkapp.com/http://springloops.comを見つけたし、彼らは両方の展開に非常に優れているようです。私はそれらのサービスを信頼できるかどうかはわかりませんが、どちらもまさに私が望むものです。私は両方をテストし、結果をここに分けてみんなに知らせる。

  • +2

    Gitはデプロイメントツールではありません。この目標にはるかに適したツールがあります。あなたができることはそれらを一緒に組み合わせることです。 – Ikke

    +1

    私はGitがデプロイメントツールではないことを知っていますが、デベロッパーのように多くのデベロッパーがGit *を使用しています。私たちはGithubを使ってコードを保存するので、Git/Githubをデプロイメントツールとして使用することは素晴らしいと思いました。 –

    +0

    この質問は理想的に[サーバー障害](http://serverfault.com)に適しています - 例えば[this](http://serverfault.com/q/142729/105371)質問)。 –

    答えて

    8

    をこれを見て、それが自分のニーズに合ったかどうかを確認します。 http://beanstalkapp.comが最適です。自動配備機能を持ち、Gitをサポートしています。一週間それをテストした後、私はそれが非常に安定して速く動作すると言うことができます。誰もが私を助け、私に道を見せてくれてありがとう。

    +0

    人々は30日間無料で最も高価なプランを試すことができるようです。 –

    4

    Continuous Integrationシステムが必要なようです。私はJenkinsWebistranoの両方で大きな成功を収めました。

    「どのファイルをコピーする必要がありますか?問題。まだgitタグを使用していますか?そうでない場合は、使用を開始してください!

    2

    gitが正しい選択であるかどうかは、良い質問です。

    もしあなたがそれを行うつもりなら、gitworkflowsのマニュアルページを読むべきです。具体的には、これが何をお勧めし、上記の問題が正しいと思うのは、開発する個々の「もの」をトピック/フィーチャーブランチに入れ、そのブランチを正しいツリーにマージする必要があるということです。これにより、必要なものと安定したものをマージし、そうでないものをマージしないように、物を分けることができます。

    0

    私は現在、このような方法でgitを使用しており、hereについてのブログ記事を投稿しました。

    私が通常行っていることは、受信ブランチにプッシュされたコミットを探すためにポスト受信フックを使用し、見つかったらgit archiveコマンドを使用してコードベースをデプロイすることです。

    これは小規模なプロジェクトでも問題ありません。複数の開発者がプロ​​ジェクトに取り組んでいる場合、または大きく複雑なコードベースの場合は、JenkinsのようなContinuous Integrationシステムを使用することをお勧めします。

    は(簡単なbashの導入スクリプトを含みます)、私は最終的に私が探していたものを見つけた

    乾杯

    2

    私は独自の基本的なデプロイメントツールを作成して、自動的に新しいアップデートをリポジトリからプルダウンするようになりました。 - あなたのニーズに正確に合うとは思えませんが、セットアップの仕方や、それからのアイデア。

    関連する問題