Given a pretty basic source tree structure like the following:
trunk ------- QA |-------- Stage |------- Prod |------
And an environment which mirrors that (Dev, QA, Staging and Production servers) - how do you all manage automated or manual code promotion? Do you use a CI server to build and promote at all stages? CI at Dev to build the binaries which are used throughout? Some other hybrid?
I've been kicking around a couple of thoughts. The first being that each promotion would do a get latest, build, and then push the output of the build to the correct server. The second being that at some point - QA or Staging - the binaries that were promoted would be the exact same ones copied to the other stages. The third is keeping a secondary source tree for deployed binaries which would automatically move in lockstep with the code promotion. Any other thoughts or ideas?