What follows sidesteps any benefit that might accrue from the use of a
Hudson CI server (no experience there). My preference is to keep the
workflow infrastructure as simple as possible. For an 'under-
engineered' configuration and workflow that works quite nicely for me:

Configuration
        Development machines with multiple branches
                master, staging, topic_1, topic_2, topic_n

        Heroku apps corresponding to these two branches
                master, staging

        Heroku remotes configured per:
                
http://jqr.github.com/2009/04/25/deploying-multiple-environments-on-heroku.html

Workflow
        # develop in branch topic_n
        # test 'clean' in topic_n

        git checkout staging
        git merge topic_n
        git push heroku_staging staging:master
        # verify staging OK

        git checkout master
        git merge staging

        heroku maintenance:on --app 'your_production_app'
        git tag -a v.n.n.n -m 'your release message'
        git push heroku_prod
        heroku maintenance:off --app 'your_production_app'

        git checkout topic_n
        # develop in branch topic_n
        # rinse, lather, repeat

Gary
http://www.realized-app.com

On Dec 21, 11:48 pm, Yuri Niyazov <[email protected]> wrote:
> Maybe you are the first one to do this that deeply - I just run my tests 
> manually before pushing it to staging, the way its described in "deploying 
> multiple environments" that you mentioned below. If you find a solution that 
> works, I would love to hear about it.
>
> On Dec 21, 2009, at 10:49 PM, Bradley wrote:
>
>
>
> > So apparently that's not a popular topic.  I'm now thinking I'd just
> > have three branches.  Normal master would deploy to testing, a staging
> > and a production environment.  I"m picturing that I would take a Git
> > revision from my CI build and merge that from master to staging for a
> > deploy.  I can't really figure that out though.  I'm assuming I have
> > to git fetch from master into my staging branch with a particular
> > revision code and then merge then push to heroku.  Is this correct?
> > Can someone point me in the right direction?
>
> > On Dec 12, 9:49 am, Bradley <[email protected]> wrote:
> >> Forgive my limited knowledge on all of this, but I'm looking to start
> >> a new site with Heroku that has a dev, staging and prod environment.
> >> I'm brand new ti Git (been using it in a very limited capacity (one
> >> branch) for a couple of weeks) and I JUST set up HudsonCIserver to
> >> run my rails builds)
>
> >> I've found a few articles:
> >> (http://jqr.github.com/2009/04/25/deploying-multiple-environments-on-
> >> heroku.html 
> >> andhttp://suitmymind.com/blog/2009/06/02/deploying-multiple-environments...)
>
> >> on the topic of multiple environments, but I'm wondering if I can get
> >> advice on auto deploying to a dev environment from hudson, and then
> >> the best mechanism for branching a particular build and deploying into
> >> staging, then eventually production.
>
> >> So, I'd like Hudson to run all my tests, and on success push this to
> >> heroku dev environment automatically so my changes are instant.
> >> Originally I thought I'd create a branch for each dev build and push
> >> that, but I'm thinking now that may be unnecessary.  My second though
> >> was to just push the master branch on each hudson deploy, then, when
> >> I'm ready for staging, find whatever build I want, create a branch
> >> from that Git revision then deploy to staging.  Assuming all is good
> >> from that branch, tag it for production release and push to
> >> production.
>
> >> A few questions though.  Do I have to do some heroku setup on each new
> >> branch?  Does that just set up the appropriate remotes with
> >> appropriate branches?  This is where my limited git knowledge comes
> >> in.  I'm assuming I have to tell heroku to push from my new branch,
> >> not master.  Is it better to merge to the same "staging" branch each
> >> time?  I don't like that as much because rolling back a version is a
> >> bit more difficult.
>
> >> Finally, if I do a heroku create on one computer, i'm assuming this
> >> does not propagate to others?  So on myCIserver, I'd have to do the
> >> same thing to set up a heroku deploy to testing.
>
> >> Does anyone have advice on a good, multi-staged environment with auto
> >> deploy andCI?
>
> > --
>
> > You received this message because you are subscribed to the Google Groups 
> > "Heroku" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/heroku?hl=en.

--

You received this message because you are subscribed to the Google Groups 
"Heroku" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/heroku?hl=en.


Reply via email to