Time to Lego: TeamCity 2021.1 adds Kotlin and Node.js build runners

JetBrains has pushed out the latest version of its TeamCity continuous integration and deployment (CI/CD) platform, adding many new features such as new build runners for Kotlin and Node.js, improved integration with Perforce, and build triggers to enable new workflows.

TeamCity 2021.1 introduces a new Kotlin Script build runner that works on all platforms supported by TeamCity and is perfect for scripting build tasks such as custom checks or sending service messages, according to JetBrains. By default, TeamCity will run it using Kotlin 1.5.0, but developers can install any other compiler version if they wish.

Similarly, there is now a dedicated build runner for Node.js in this release, offering improved capabilities for building JavaScript projects. It supports npm and yarn, and can work with public and private registries. Developers can add the necessary Node.js build steps manually. Alternatively, they can let TeamCity scan their project’s repository and propose them. All Node.js steps are currently run inside a Docker container. This means Docker needs to be installed on build agents.

TeamCity 2021.1 also brings further integration with the Perforce application lifecycle management platform, including a simplified setup for commit hooks. Developers can now have their builds automatically triggered by installing just a single script on the Perforce server. Meanwhile, a new Perforce Administrator Access connection allows project administrators to clean up workspaces on the Perforce server right from within the TeamCity user interface. An automated clean-up is also supported.

According to JetBrains, build triggers in this release now support custom parameters to enable or disable build steps. You can also change what happens inside build scripts. This might allow for scheduled builds to be different from the builds triggered by version control check-ins, yet be within the same build configuration.

More tweaks

Users are no longer limited to one VCS trigger per build configuration. TeamCity now allows adding multiple triggers with different rules and with different branch filters. This might be used to build the release branch code immediately after a commit, for example, while other branches wait for a quiet period.

High availability has also been addressed in TeamCity 2021.1 with a new “Main TeamCity node” responsibility. This can be transferred from the main node to a secondary node in runtime. If the main server goes down for any reason, such as a maintenance period, its main role and all the responsibilities can be promptly assigned to another server. When the original main server restarts, it will come back online as a secondary node.

Security has also been enhanced through the ability to create access tokens that are time limited or have limited permissions. This means that scripts that interact with the TeamCity API can be given just enough access to do the job they were created for, rather than being granted the same permissions as the current user.

These are just some of the new features introduced in TeamCity 2021.1. For a full list of changes, users should refer to the TeamCity documentation.