For almost two years Beanstalk has been a huge part of my daily workflow, and today I can’t imagine working without it. Beanstalk has helped bridge the gap between a manual FTP-uploading hell and a much more sophisticated Git version control workflow.
Let’s take it from the top: Beanstalk is a Git-hosting, code-reviewing, auto-deploying mean machine. Whether you are in love with the Terminal, or you use a GUI-client like Tower, doesn’t matter – Beanstalk works with all of them, although there are many cool features when matching Beanstalk and Tower together, but let’s talk about that another day.
You (should) have local development environments, where all your projects reside, and you may have multiple Git repositories. Now what is your backup plan for all these projects? Beanstalk can host all of these repositories, just like Github or Bitbucket, simply push your branches. All your changes, branches, commits, etc, can be viewed through your Beanstalk account. You can clone repositories from Beanstalk, and you can even add and remove code and make commits, all from the app.
Within the interface you can, perform code reviews and set up actions to perform automatically after a review, such as a merge to master.
From these reviews you can open up issues related to the review and keep all your productivity centered around a single tool. Gone are the days where you blindly accept changes from multiple people, and see your project burn, live.
You’ve pushed all your recent changes to Beanstalk, and you have performed your reviews. Now it’s time to use Beanstalk’s real power, at the push of a button or even automatically on a merge. You can set up each individual repository with deployment environments, and you can connect through a myriad of ways:
This way, you can control the deployment proces, deploy to multiple servers at once, and even do it all automatically. You can attach hooks and you can integrate services such as Slack, to keep your team up to date.
Let’s revisit the setup.
- You have a local environment where you develop and utilise Git, perhaps through a GUI.
- Then you push your changes to Beanstalk, where you can set up code reviews, track issues and more.
- Finally you can deploy the whole thing and your code is live.
This means you can set up an environment, where your master-branch always deploys changes on a merge. That’s one-click-deployment right there!
There is much much more to explore with Beanstalk, and many ways of using it that I haven’t touched in this article. Sign up and go explore, it’s free with your first repository.