I want to draw a model of process of updating the source code with the use of Continous Integration. The main issue is I don't really understand how it works when there are several programmers working on various aspects of the code at the same time. I can't visualize it in my mind. Here's what I know but I might be wrong:
- New code is sent to repository.
- Continous Integration server asks Version Control System if there is a new code in repository.
- If there is than CIS executes tests on the code.
- If tests show there are problems than CIS orders VCS to revert back to working wersion of the code and communicates it to programmer.
- If tests are passed positively it compiles the repository code and makes new build of a game?
New build is made not after ever single change, but at the end of the day I believe? Are my assumptions above correct? If yes, does it also work when there are several programmers updating repository at once? Is this enough to draw a model of the process in your opinions or did I miss something?
Also, what software would I need for above process? Can you guys give examples for CIS software and VCS software and whatever else I need? Does CIS software perform code tests or do I need another tool for that and integrate it with CIS? Is there a repository software?