When creating a build configuration it is important to configure the sequence of build steps to be executed. Each build step is represented by a Build Runner and provides integration with a specific build or test tool. You can add as many build steps to your build configuration as needed. For example, call a NAnt script before compiling VS solutions.
Build steps are invoked sequentially. If a build step fails the rest are not executed. A build step failure can be caused by:
A build process has returned exit code other than 0, and Fail build if condition "build process exit code is not zero" is enabled in the Configuring General Settings of build configuration. (This behaviour doesn't apply to NUnit, MSTest, FxCop, Duplicates (.NET) runners).
If you have enabled "Fail build if at least one test failed" condition in the Configuring General Settings of build configuration, TeamCity will continue executing build steps that go after test runner, but the build will be marked as failed.
In the end, the build gets merged status and the output goes into the same build log.
tip
You can copy a build step from one build configuration to another from the original build configuration settings page.
You can reorder build steps as needed. Note, that if you have a build configuration inherited from a template, you cannot reorder inherited build steps. However, you can insert custom build steps (not inherited) at any place and in any order, even before or between inherited build steps. Inherited build steps can be reordered in the original template only.
For the details on configuring individual build steps, refer to: