This isn’t actually specifically about Rails but I couldn’t find anywhere suitable put it.
I’m curious how ThoughtBot handles deploying to QA/staging branches so that a customer can review/approve a feature.
I’ve worked with two different approaches in the past in a team environment when doing branch-per-feature development:
- Have a pool of QA instances (e.g. virtualized on AWS). Provide a way a developer can be assigned a QA instance for a duration to deploy to, and then later release it back into the pool.
- Have a staging branch that everyone merges into.
I’ve found option 1 works well, but option 2 can end up in a mess due to conflicts (i.e. even if your branch can be cleanly merged into master, it may not cleanly merge into staging).