Agent pools provide a way to break a single, common pool of agents on separate parts - pools. Each pool has agents and projects assigned. Agent belongs to one agent pool only, but projects can be assigned to several pools.
Builds of a project assigned to a pool can run on the agents from this pool only.
Build failure conditions
"Fail build if" settings of build configuration were moved to a separate step. Also there were two useful additions:
- you can now fail a build on a metric change (read more)
- you can fail a build if a specific message (matching some regexp) is logged in the build log
Dependency based test run
Maven, Gradle and IntelliJ IDEA Project build runners now support dependency based run of tests. For example, say your project has these modules: A-prod, A-test, B-prod, B-test.
Modules with -prod suffix contain production code, while modules with -test suffix contain tests for corresponding production modules. Module B-prod depends on module A-prod.
Module A-test depends on module A-prod. Module B-test depends on module B-prod and A-prod.
Now if a build starts with a change in module A-prod TeamCity agent will run tests in both modules A-test and B-test (because B-test depends on A-prod and can be affected by the change).
However, if a change was made in B-prod only, TeamCity will only run tests from B-test module.
So, in general, the more independent your modules - the better. It's a recommended way to design a software, but now you can get real benefits from such approach - faster builds.
Build performance monitor
Several UI improvements
- new icons
- multi-line text fields for build steps command line parameters
- new projects are not added on the overview automatically (yellow warning is shown instead)
- artifact dependencies improvements
- build log tree view
- investigations and muted tests pages improved