A typical solution is to have a CI (Continuous Integration) build running on a build server: It will analyze the source code, make build (in debug) and run tests, measure test coverage, etc.
Now, another build type usually known is "Nightly build": do slow stuff like create code documents, make a setup package, deploy to test environment, and run automatic (smoke or acceptance) tests against the test environment, etc.
Now, the question:
- Is it better to have a third separate "Release build" as release build?
- Or do "Nightly build" in release mode and use it as a release?
What are you using in your company?
(The release build should also add some kind of tag to source control of potential product version.)