Design Patterns - Manual testing environments by branch - Automatic testing environment by PR on release branch - Automatic testing environment by a "RC" tag - Automatic testing environment at each new version - Hybrid using manual branching with PRs on release
tips_ - Tearing down an environment is equally important as creating one - Do NOT use the production database (yeah… It happened) - Not all features need a testing environment - Make the environment creation and destruction as a manual approach - Do NOT use production passwords anywhere else (yeah… It also happened) - Keep it simple - Don't early-optimise