TeamCity 2017.2: 100 free builds, Docker, .NET CLI, composite builds and improvements in Kotlin DSL
Hello, Habr! Last week we released a new version of our CI and CD server: TeamCity 2017.2 ! As you probably understood from the title, it is full not only of new functionality, but will also give a pleasant surprise to those who use the free (Professional) version. But first things first.
First of all, the list of all improvements is , as always, very impressive - read it after reading this post if you want more details. Here we will focus on the most “delicious” features of the latest release.
After upgrading to version 2017.2, all TeamCity Professional users will be pleasantly surprised - instead of the standard 20 build configurations, TeamCity now provides 100! It is available absolutely free for every user of version 2017.2. No pitfalls. For those not familiar with the terminology, the build configuration in TeamCity is the same as the job in Jenkins terms.
In 2017.2, Docker first-class support officially appeared.
With the addition of the new Docker build runner, it became possible to build Docker images as a separate build step. As soon as TeamCity detects the dockerfile in your repository, it will automatically offer you to add a Docker Build step.
Starts Docker Compose services at the start of the build and stops them when the build ends.
Allows you to run other build runners (for example, Gradle, Maven, Ant or any command line) in a separate Docker container.
For each build that performs any Docker-related actions, you can enable the build feature of Docker Support. This will add an additional “Docker” tab to the build page and also allow:
Short video demo of new Docker features (in English):
In 2017.2, support was implemented for the .NET CLI toolchain for collecting .NET Core projects right out of the box. In fact, we heavily redesigned and included the popular .NET CLI plugin in the distribution, and now there is no need to install it separately.
What is included in it:
Video review (also in English):
A new type of build configuration has appeared - a composite build. Composite builds aggregate the results of several builds connected to each other through snapshot dependencies, and display them as a single build. They give a unified view of the entire chain of builds, showing overall progress, alerts about failed tests, problems with builds, and also display all artifacts.
A composite build does not occupy the agent and is shown as executing as soon as one of its dependencies is launched. In particular, this allows you to significantly reduce the number of configurations on a dashboard, removing dependencies and leaving only composite configurations there.
Now you can mark build configurations that perform deployment tasks as deployment. As a result, the builds on which such configurations depend will receive the Deployments section, where you can easily trap the current build in the selected environment.
Updating the server has become much easier. TeamCity independently checks for a new version and informs the system administrator of its appearance. Automatically checks the license, and also provides the opportunity to start the upgrade procedure in one click.
Now you can set default templates for all build configurations in the project. This allows you to easily implement changes immediately in all build configurations of the project, changing only one template. Also added the ability to attach build configurations to multiple templates at the same time.
If earlier, when the storage of project settings in Kotlin DSL format was enabled, the admin UI switched to read-only mode, now this restriction has been removed. Project settings and build configurations remain editable at the same time that DSL is enabled (the ability to define them in code). At the same time, changes made through the web interface turn into patches on Kotlin, which are added to a specific place under the project in the VCS repository.
Managing plugins has also become more convenient - a list of installed plugins has appeared in the admin panel, with which you can turn off or remove existing plugins, as well as add new ones. When adding a plugin, TeamCity will offer to restart the server from the UI.
You can download the latest version of TeamCity 2017.2 from our website . Leave comments and suggestions on the new version in our bug tracker .
You can also try all new features without downloading and installing a server using TeamCity TestDrive - a free TeamCity test drive in the cloud.
We remind you that you can use TeamCity without restrictions on time and functionality, for free. If three agents and 100 build configurations suddenly cease to be enough for you, or you want to communicate with our support team by mail, you can always purchase an Enterprise license after having received a trial version for 60 days.
And finally, once again, a complete list of new features 2017.2 .
Have a nice build!
First of all, the list of all improvements is , as always, very impressive - read it after reading this post if you want more details. Here we will focus on the most “delicious” features of the latest release.
100 build configurations
After upgrading to version 2017.2, all TeamCity Professional users will be pleasantly surprised - instead of the standard 20 build configurations, TeamCity now provides 100! It is available absolutely free for every user of version 2017.2. No pitfalls. For those not familiar with the terminology, the build configuration in TeamCity is the same as the job in Jenkins terms.
Docker
In 2017.2, Docker first-class support officially appeared.
Docker build runner
With the addition of the new Docker build runner, it became possible to build Docker images as a separate build step. As soon as TeamCity detects the dockerfile in your repository, it will automatically offer you to add a Docker Build step.
Docker compose runner
Starts Docker Compose services at the start of the build and stops them when the build ends.
Docker wrapper
Allows you to run other build runners (for example, Gradle, Maven, Ant or any command line) in a separate Docker container.
Docker Support Build Feature
For each build that performs any Docker-related actions, you can enable the build feature of Docker Support. This will add an additional “Docker” tab to the build page and also allow:
- clean Docker images published by the build in the Docker registry if the build itself that published them is deleted;
- enable automatic authentication in the Docker registry before starting the build.
Short video demo of new Docker features (in English):
.NET CLI Support
In 2017.2, support was implemented for the .NET CLI toolchain for collecting .NET Core projects right out of the box. In fact, we heavily redesigned and included the popular .NET CLI plugin in the distribution, and now there is no need to install it separately.
What is included in it:
- Standalone .NET CLI Build Runner
- Automatic recognition of build steps by the provided URL
- Discovering .NET CLI on Build Agents
- Hierarchical representation of the build log
- Reporting tests, compilation errors and other build problems in real time
- Code Coverage Analysis with JetBrains dotCover
Video review (also in English):
Composite builds
A new type of build configuration has appeared - a composite build. Composite builds aggregate the results of several builds connected to each other through snapshot dependencies, and display them as a single build. They give a unified view of the entire chain of builds, showing overall progress, alerts about failed tests, problems with builds, and also display all artifacts.
A composite build does not occupy the agent and is shown as executing as soon as one of its dependencies is launched. In particular, this allows you to significantly reduce the number of configurations on a dashboard, removing dependencies and leaving only composite configurations there.
Deployment builds
Now you can mark build configurations that perform deployment tasks as deployment. As a result, the builds on which such configurations depend will receive the Deployments section, where you can easily trap the current build in the selected environment.
Automatic upgrade
Updating the server has become much easier. TeamCity independently checks for a new version and informs the system administrator of its appearance. Automatically checks the license, and also provides the opportunity to start the upgrade procedure in one click.
Default and multiple patterns
Now you can set default templates for all build configurations in the project. This allows you to easily implement changes immediately in all build configurations of the project, changing only one template. Also added the ability to attach build configurations to multiple templates at the same time.
Kotlin DSL: Editable UI
If earlier, when the storage of project settings in Kotlin DSL format was enabled, the admin UI switched to read-only mode, now this restriction has been removed. Project settings and build configurations remain editable at the same time that DSL is enabled (the ability to define them in code). At the same time, changes made through the web interface turn into patches on Kotlin, which are added to a specific place under the project in the VCS repository.
Improved plugin management
Managing plugins has also become more convenient - a list of installed plugins has appeared in the admin panel, with which you can turn off or remove existing plugins, as well as add new ones. When adding a plugin, TeamCity will offer to restart the server from the UI.
You can download the latest version of TeamCity 2017.2 from our website . Leave comments and suggestions on the new version in our bug tracker .
You can also try all new features without downloading and installing a server using TeamCity TestDrive - a free TeamCity test drive in the cloud.
We remind you that you can use TeamCity without restrictions on time and functionality, for free. If three agents and 100 build configurations suddenly cease to be enough for you, or you want to communicate with our support team by mail, you can always purchase an Enterprise license after having received a trial version for 60 days.
And finally, once again, a complete list of new features 2017.2 .
Have a nice build!