Upgrading a TeamCity server is much simpler now. When a new version of TeamCity is detected, the server displays the corresponding health item for system administrators. This health item points to a new Update page in the server administration area, where all the upgrade options are listed. On this page there are notes about licenses compatibility, the new version description and controls to perform auto-upgrade.
If you’re running the previous TeamCity EAP, check the Administration | Update page. Upgrade to the new EAP build should be as easy as a click on an Update button.
Current limitations (some of them will be addressed in future releases):
Alternatively, you can invoke the ‘Download ‘Download settings in Kotlin format’ action in your project and copy the pom.xml from the generated zip archive.
Once you switch the project to new API and check in the changes, TeamCity will detect and apply them and after that web UI editing will be enabled.
Notes on patches
When settings are edited in the UI, TeamCity generates a patch script in a dedicated package
‘<project external id>.patches.(buildTypes|templates|vcsRoots|projects)’, script name is
<uuid of the entity>.kts. The patch script is executed after regular dsl scripts and applies the UI changes to the generated settings if the settings are in the expected state. For example, if you change the build configuration name, then the patch scripts checks that the name produced by the regular script isn’t changed and then updates the name. Once the patch script is committed to the settings repository, you can apply its changes to your settings. After that, the patch script should be removed.
Some of the UI actions will still be disabled for projects in Kotlin:
- external id change (for all entities - project, build configuration, template or VCS root)
- move actions
- editing of the versioned settings VCS root
- versioned Settings configuration change in a
- projectOther improvements
- The pom.xml file provided for a Kotlin project has the
'generate' task, which can be used to generate TeamCity XML files locally from the Kotlin DSL files. This task now supports debugging. If you’re using IntelliJ IDEA, you can easily start debugging of a Maven task, see screenshot:
- Kotlin DSL documentation is now generated in the background reducing the server startup time.
It is now possible to define a default template in a project. If defined, it affects build configurations in all the subtree of this project unless other default templates are defined in subprojects. With default templates it is much easier now to add a specific build feature to all build configurations of a project, or switch all build configurations to some specific checkout mode, or provide a default failure condition.
Composite Builds Improvements
Exclude rules and different target paths are not supported yet, but we are planning to add support for them in the next EAP build.Perforce Stream Depth Support
Previously the Perforce VCS Roots in TeamCity only supported streams stored one level below the depot name, i.e. the default stream depth of 1: //myStreamDepot/myStream1). Starting from this EAP, TeamCity supports deeper directory structure within the root depot: depots with a depth of //DEPOTNAME/1/2/n can be specified in the Perforce "Stream" field.
See the related request in our tracker.
Docker Support Improvements
- Now TeamCity reports the Docker server host operating system via the
docker.server.osTypeconfiguration parameters on all platforms including Windows.
- You can now opt to perform the
"docker pull"command before starting a build step with the Docker Wrapper.
- Manual termination: when using cloud agents, you can now choose to stop the instance after current build using the corresponding new option on the agent page - the agent will terminate gracefully. It is also possible to force instance termination if required.
- Now in a number of places in the UI TeamCity provides human readable agent name instead of the image name.
- The Command Line Runner can now log stderr output as error messages. We’ve added the Format stderr output as option with warnings/errors selector (warnings is the default value, as before)
- REST API now allows tests and problems mutes management via .../app/rest/mutes endpoint
- All fixed issues