Right now, the current deploy process at my work is based around tagging from the trunk and switching various PHP web sites for clients on our QA and Production servers. While this is simple from the technical level, it becomes really tedious when you have over a dozen updates to a dozen different sites that need to go out in one day.
Towards this end, I'm implementing the following stack:
And it will work like this:
- Code goes into
svnpost-commit hook triggers
capistranoscript to deploy to the dev server
- project managers check out the dev server, and if the bug is fixed, they go into
hudsonand promote the build
hudsonruns a post-promotion script which tags and deploys the code to whatever server is specified by the promotion
Capistrano (along with the symfony framework) will be used to migrate the databases.
Am I missing anything here? I've never done anything more complicated than subversion before, so that's why I'm asking.