php uzaktan geliştirme iş akışı: git, Symfony &

0 Cevap php

Düzenlendi: (Luke'un cevabı gördükten sonra)

Ben bir web sitesi geliştirmek için arıyorum ve tüm iş uzaktan (hiçbir yerel dev sunucusu) yapılacaktır. Bunun nedeni A2Hosting benim hosting şirketi çoğaltarak Ben zaman harcamak istemiyorsanız belirli bir yapılandırma (symfony, mysql, git) sahip olduğu zaman ben sadece ssh can ve uzak özelliklerini düzenleme uzaktan veya netbeans yoluyla gelişir.

Canlı, evreleme ve dev: Benim soru üç bölüme siteme ayırmak için git kullanabilirsiniz nasıl.

İşte benim initial thought: bulunuyor

public_html (live site and git repo)
testing: a mirror of the site used for visual tests (full git repo)
dev/ticket# : git branches of public_html used for features and bug fixes (full git repo)

Version Control with git:

Initial setup:

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

Development:

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

integration and deployment process:

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

Snapshots:

Each major deployment sprint should have a standard name and be tracked. Method: git tag Naming convention: TBD

Reverting site to previous state

if something goes wrong, then revert to previous snapshot and debug the issue in dev with a new ticket#. Once the bug is fixed, follow the deployment process again.

Benim sorular:

1-Does this workflow make sense, if not, any recommendations 2-Is my approach for reverting correct or is there a better way to say 'revert to before x commit'

Teşekkürler bu çok uzun yazı okumak için zaman ayırdığınız için :)

0 Cevap