Code Promotion: Build or Binary?

Given the fairly basic structure of the tree structure, such as:

  trunk ------- 
    QA | --------
      Stage | -------
         Prod | ------

And the environment that reflects this (Dev, QA, Staging and Production servers) - how do you all manage automatic or manual code promotion? Do you use a CI server to create and promote at all stages? CI in Dev to create binaries that are used everywhere? Another hybrid?

I kicked a couple of thoughts. The first is that each advertising campaign will do the latter, build, and then push the assembly output to the correct server. Secondly, at some point - QA or Staging - the binary files that were advanced would be the same ones that were copied to other stages. The third is to save the secondary source tree for deployed binary files that are automatically moved to the lock with code progress. Any other thoughts or ideas?

+4
source share
2 answers

You absolutely do not want the production code to be identical to the QA being tested, so you should use binaries.

You must also mark the sources used to create each assembly, so you can play the assembly in the dev environment if necessary. At least if you make a mistake at this moment, the consequences will not be so drastic.

+4
source

We use CI at the dev stage and use daily builds that are progressing. These daily builds, if successful, are marked in SVN, so we donโ€™t need to keep a separate copy of the binaries. Any third-party library links are also included so that the tag is an exact source copy of the compiled file.

+1
source

Source: https://habr.com/ru/post/1277305/


All Articles