Ask HN: What is the best way to deploy changes to code?

2 points by mekazu ↗ HN
Have you had good experiences with any particular tools for code deployment? What principles should I adhere to when deploying changes? Is there a good way to combine unit testing with deployment?

My hope is to devise a mechanism to ensure that what is in our code-base stays in sync with what is in the working environment with minimal complexity and reduced change associated risks. I don't want to be too specific or else this would become more of a stackoverflow or google question - if it hasn't already.

2 comments

[ 5.8 ms ] story [ 14.0 ms ] thread
We use Jenkins to push + github for storage and branches. To keep it brief the general process is we code on master, cut a branch when we have features to go out. QA always builds from master, staging and production from the branch. If everything checks out on QA and staging, we push it to production.

We try release as often as possible, the bigger the change the bigger the risk so we typically do a prod push at least every second day.

OP: Furthermore, if using github, consider using hooks to build automatically after a commit. And have errors flash on your phone/email when something goes wrong during any step till deployment. Automate as much as possible.