TeamCity 2022.04: Parallel Tests, Improved Integration with Amazon AWS, Built-in Code Quality Analysis, Updated VCS Integrations, and more
TeamCity 2022.04 introduces the new Parallel Tests feature that delivers an extraordinary speed boost when testing your projects. New powerful code analysis features will cut the time you spend on code reviews and increase the maintainability of your projects. Users who run their builds in the cloud will love the improved integration with Amazon S3 and Amazon CloudFront, as well as the new option of managing Cloud Profiles programmatically. There are a number of improvements to VCS integrations, new configuration options, and many great updates to the user interface.
Unparalleled Speed with Parallel Tests
TeamCity is now capable of parallelizing the execution of your tests by intelligently distributing them across multiple build agents, thus minimizing their overall duration. Unlike any other CI/CD solution, this feature takes into account not only the latest run, but also the history of your tests. With that, you can freely refactor your code, break your tests, and do whatever you think is best for your project – without the fear of compromising the parallelization and bogging down your pipelines.
💡 Parallel Tests have made a phenomenal change to the way we develop and test TeamCity. Our own integration tests have become over 10x faster, dropping from 4 hours to about 20 minutes.
Parallelization of test execution can be implemented in a multitude of ways. The easiest way is by using a Maven, Gradle, or .NET build runner, as these build runners support this feature straight out of the box. For other build runners and custom build scripts, TeamCity will save the optimal way to parallelize tests in special instruction files, allowing you to set up parallel testing yourself.
Built-in Code Quality Inspections for Better Code
TeamCity helps you eliminate bugs and improve the quality of your software in so many ways – and now there’s one more! Starting with version 2022.04, you can enable advanced code quality inspections and perform a variety of other new actions – all powered by JetBrains Qodana:
- Run static analysis checks.
- Find duplicates in your code.
- Track how the code quality changes over time, and much more.
Adding code inspections to your build pipelines allows you to cut the time you spend on code reviews, ensures maintainability of your projects, and helps every developer on your team to work more efficiently. We welcome you to check out a live demo.
Taking Cloud Integration to New Heights
The world is quickly migrating to the cloud, and we’re seeing an increasing number of our customers following suit. TeamCity 2022.04 takes the cloud experience a step further by enhancing integration with Amazon Web Services and adding new configuration options.
Migrating build artifacts to Amazon S3
TeamCity has always had powerful integration with Amazon EC2 and Amazon S3 that allowed you to freely scale your build infrastructure, regardless of the size and complexity of your projects. Version 2022.04 allows you to not only store new build artifacts in Amazon S3, but also move existing artifacts from TeamCity’s local storage to Amazon S3. This is particularly useful for teams who are just starting their migration from a self-hosted setup to a cloud platform and want to take full advantage from the outset.
Downloading build artifacts from Amazon CloudFront
Working with build artifacts stored in Amazon S3 can be slow and expensive depending on the geographical distance between you and the region where the S3 bucket is located. To help you reduce costs, TeamCity 2022.04 adds native support for Amazon CloudFront, which allows you to work with artifacts cached on the nearest edge locations provided by AWS. This works on all levels including build agents, web users, API requests, and others – potentially giving your development process a tremendous speed boost.
More ways to manage autoscaling at the project level
Storing CI/CD configuration with your project’s codebase is the best way to ensure that it can always be built, tested and deployed. To provide more flexibility when building software in the cloud, TeamCity 2022.04 extends the Kotlin DSL, giving every project the opportunity to have its own Cloud Profile configuration.
Powering your Deployment Workflows
As previously announced in our roadmap, we are starting to explore the area of deployment, and as the first step in this direction we’re releasing build approvals. Now you can create build configurations that will not start immediately after being triggered, but will stay queued until everyone from the approval team gives their green light. This feature will be particularly useful for advanced teams that don’t want to limit developers’ ability to access the production environment, but at the same time need a higher level of control over the deployment procedure.
Your voice is welcome! If you have any feature requests related to deployment, please don’t hesitate to suggest them in our YouTrack project.
Smarter VCS Integrations
Space merge requests
We’re continuing to improve the integration with JetBrains Space, adding in support for merge requests. When building an MR, TeamCity will now publish the status to the respective merge request timeline in Space.
We have enriched the list of supported issue trackers by adding GitLab. This works just as you’d expect: when a commit message mentions an issue ID, TeamCity automatically adds a link to the respective issue in GitLab and displays information about it.
Queued builds reporting
Previously, the Commit Status Publisher build feature would not send information to the version control system until TeamCity actually started the build, which was prone to occur long after the commit had been made. Starting with the new version, TeamCity updates the commit status immediately after adding the respective build to the queue, providing you with the most up-to-date information. This feature works with all supported VCS services including GitHub, GitLab, Space, Bitbucket and Azure DevOps.
Running a custom build with a specific revision
When running a custom build, you can now specify an exact revision that may not necessarily belong to the list of changes known by the build configuration. This gives you a lot more flexibility in cases where you want to reproduce historical builds, deploy older versions, debug new build configurations, and many other situations.
More Control over Feature Branches
TeamCity has always allowed you to limit the number of builds running simultaneously for a build configuration. With version 2022.04, you can improve resource allocation and set this limit on the branch level. For example, your main branch may have an unlimited number of builds that can occupy as many build agents as they need while you limit your feature branches to running just one build at a time.
Security: Inside and Outside
Log4J and Log4Shell
Although TeamCity has not been affected by the Log4Shell vulnerability (CVE-2021-44228), some security scanners wrongly reported it as vulnerable without checking the exact version number of the Log4J framework used in the product. To avoid false-positive scanner reports, we have upgraded Log4J to the latest version.
Spring and Spring4Shell
Similarly to Log4Shell, the Spring4Shell vulnerability (CVE-2022-22965) does not affect TeamCity. However, to avoid false-positive reports from security scanners, we have upgraded the Spring Framework used in TeamCity to the latest version.
Harmony with Sakura UI
Our new Sakura UI is getting closer and closer to feature parity with the classic TeamCity UI. In version 2022.04, we have reimplemented the Agent Pools and Changes pages and vastly improved the overall performance of the new UI. Now we are just a few steps away from making it a default option – something we plan to do in TeamCity 2022.10. Stay tuned!
These are just some of the ways we’ve improved TeamCity. For upgrade instructions and the full list of changes in version 2022.04, please see the TeamCity documentation.