- Developer commits code.
- A new build starts automatically.
- If the build succeeds - run tests.
- If tests are successful - tag the code.
Advantages of this scheme are the following:
- I'll always know what's the status of the product in CVS.
- I can choose the "best" package and promote it without invoking any builds.
- CVS repository
As a conclusion: I see a lot of black magic work and hacks to get this done. Or... am I missing some pretty solution here?