4 ms·
Honestly, I find this article a little irresponsible. Continuous integration is really one small part of deployment, and if you think you're ready to deploy at
by ryanbrunner 15y ago
Honestly, I find this article a little irresponsible. Continuous integration is really one small part of deployment, and if you think you're ready to deploy at any time just because your tests pass, you're setting yourself up for some very painful lessons.
First off, there's currently no way to do a truly seamless deployment of code on Heroku. The second your server starts, the dynos will switch over to your new code, meaning that requests will queue while your environment loads. If you have a lighting-fast booting Sinatra app, you might be OK, but for a Rails app of any complexity there may be issues.
Secondly, without paying a LOT of attention to how backwards compatible your code is, database migrations rarely fit well with a truly seamless deployment.
- matlock 15y agoHi Ryan, you could deploy to your staging environment upon every build and only deploy to production when triggered manually. Railsonfire (full disclosure: I am one of the founders) makes this very easy. Just give it a look here: http://help.railsonfire.com/deployment/Heroku-Deployment.html http://help.railsonfire.com/deployment/Heroku-Deployment.htm... You just have to set your branch for the production/staging environment and only when you push to this specific branch the deployment will run. If you need any help setting it up or have questions please send me an email to flo@railsonfire.com