Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Development Tools

How do you manage the deployment from staging to live, whilst keeping things automated?

Note, since writing this I've just discovered the concept of using different development git branches

I want to level up my deployment workflow. So far I understand the following steps;

  1. Work locally and push commits up to Bitbucket/GitHub.
  2. Use a deployment service like Beanstalk or deply.io to automatically pull new commits to the staging server. (great this happens automatically)
  3. Check everything is ok on the staging server.
  4. Ok great, everything looks good on the staging server, so now let's deploy to the live site.
  5. ???

Would you have to manually deploy to the live server? I'm trying to get things so that I just type git push and everything is taken care of.

Can Beanstalk and co tell the difference between when you're intending the commits to go to staging, and when you want them to go to live?

Hope someone can get the sense for what I'm asking.

Best wishes, Mike

P.S. I just had a chat with the support team at Beanstalk and this is what they said:

"If you're comfortable with using Bitbucket then our other service DeployBot could work just fine for you. With DeployBot you can add your Bitbucket repo and then when you make changes you can automatically deploy from there. That would essentially cut out Beanstalk as the middle man.

But if you want to use Beanstalk you can set up an environment. You could have 1 repo push to your Dev branch and deploy to the dev environment. Then you can repeat that process for the live/master"

So looks like using separate branching is the key... no... yes... what do you think, this is still new to me.