web-dev-qa-db-ja.com

PHPリモート開発ワークフロー:git、symfony、hudson

私はウェブサイトを開発したいと思っており、すべての作業はリモートで行われます(ローカル開発サーバーはありません)。これは、共有ホスティング会社a2hostingが特定の構成(symfony、mysql、git)を持っているためです。リモートで、またはnetbeansリモート編集機能を使用してsshおよび開発できる場合、複製に時間をかけたくありません。

私の質問は、gitを使用して自分のサイトをライブ、ステージング、開発の3つの領域に分割する方法です。

ここに私の最初の考え:

  • public_html(ライブサイトとgitリポジトリ)
  • テスト:ビジュアルテストに使用されるサイトのミラー(完全なgitリポジトリ)
  • dev/ticket#:機能およびバグ修正に使用されるpublic_htmlのgitブランチ(完全なgitリポジトリ)

gitによるバージョン管理:

初期設定:

cd public_html  
git init  
git add *  
git commit -m ‘initial commit of the site’  
cd ..  
git clone public_html testing  
mkdir dev

開発:

cd /dev
git clone ../testing ticket#
all work is done in ./dev/ticket#, 
then visit www.domain.com/dev/ticket# to visually test
make granular commits as necessary until dev is done
git Push Origin master:ticket#  
if the above fails:
    merge latest testing state into current dev work: git merge Origin/master
    then try the Push again
mark ticket# as ready for integration

統合および展開プロセス:

cd ../../testing
git merge ticket#  -m "integration test for ticket# --no-ff (check for conflicts )
run hudson tests

visit www.domain.com/testing for visual test  

if all tests pass:  
    if this ticket marks the end of a big dev sprint:  
        make a snapshot with git tag  
        git Push --tags Origin  
    else  
        git Push Origin
        cd ../public_html
        git checkout -f  (live site should have the latest dev from ticket#)
else:
    revert the merge: git checkout master~1; git commit -m "reverting ticket#"
    update ticket# that testing failed with the failure details

スナップショット:

主要な展開スプリントにはそれぞれ標準名を付け、追跡する必要があります。

  • メソッド:git tag
  • 命名規則:未定

サイトを以前の状態に戻す

何か問題が発生した場合は、以前のスナップショットに戻り、dev#で新しいチケットを使用して問題をデバッグします#。バグが修正されたら、展開プロセスを再度実行します。


私の質問:

  1. このワークフローは、そうでない場合でも、推奨事項を意味しますか
  2. 正しく戻すための私のアプローチですか、または「xコミット前に戻す」と言うより良い方法がありますか
5
user2022
  1. はい、ワークフローは理にかなっています。私が得られない唯一のことは、別個のテストプラットフォームの必要性です。つまり、テストチームが自分のプラットフォームを提供するのに役立ちますが、それがあなただけの場合は便利ですか。そんなにない。私見、小規模な開発チームにとって、この種のことは不要であり、面倒になります。

  2. ここで明らかなことを提案します(そして、撃downされる準備はできています)が、 git-revert はどうですか?

2
Tom Wright