TeamCity 2024.03: встроенный плагин HashiCorp, ненадежные сборки и многое другое

В версии 2024.03 мы добавили несколько функций, которых давно ждали наши пользователи. Например, плагин HashiCorp Vault теперь встроен в TeamCity. Новая группа ненадежных сборок позволяет различать изменения, внесенные доверенными пользователями, и те, что получены из внешних источников.

Кроме того, новый билд-раннер dotCover позволяет пользователям запускать процессы в рамках профилирования покрытия кода, объединять снэпшоты между этапами сборки и создавать сводные отчеты по параллельным тестам, выполненным в TeamCity, для всей цепочки сборок.

Подробнее о новых возможностях TeamCity — ниже.

Плагин HashiCorp Vault теперь встроен в TeamCity

Пользователи TeamCity уже давно охотно пользуются интеграцией с HashiCorp Vault через специальный плагин. В прошлом году мы пересмотрели принципы этой интеграции, так что ее стало гораздо проще настроить.

Начиная с версии 2024.03, плагин встроен в TeamCity и является неотъемлемой частью любого развертывания нашего решения.

Подробнее об интеграции TeamCity и HashiCorp Vault — в нашей документации.

Необязательные зависимости, использующие артефакты

Зависимости, использующие артефакты, позволяют конфигурациям сборки получать файлы, созданные другими конфигурациями или другими сборками в рамках той же конфигурации. Эти зависимости определяются правилами артефактов, которые указывают, какие файлы нужно скачать и откуда.

Раньше, если TeamCity не удавалось найти файлы на основании этих правил, сборки завершались с ошибкой «Unable to resolve artifact dependency».

Начиная с версии 2024.03, мы внедрили более гибкий подход к обработке зависимостей артефактов. Теперь в некоторых случаях можно настроить игнорирование зависимостей:

  • если исходная сборка вообще не существует (и если нет других, обязательных правил);
  • если в исходной сборке отсутствует необходимый файл;
  • если правило артефакта ссылается на архив, в котором отсутствует необходимый файл.

Оставить отзыв об этой функции можно в тикете YouTrack.

Подробнее об этом и других изменениях читайте в документации.

Контроль над внешними пул-реквестами с помощью группы ненадежных сборок

Функция пул-реквестов позволяет проводить ревью кода перед его слиянием с основной кодовой базой. Можно выбрать запуск сборок от всех контрибьюторов или только от сотрудников своей организации. Первый вариант связан с рисками для безопасности, поскольку на сервер TeamCity может попасть вредоносный код, а второй ограничивает сотрудничество с более широким кругом контрибьюторов.

В версии 2024.03 мы внедрили так называемую группу ненадежных сборок, которая позволяет TeamCity различать изменения, внесенные доверенными пользователями и полученные из внешних источников.

Контроль над внешними пул-реквестами с помощью группы ненадежных сборок

На данный момент этой функцией можно воспользоваться при работе с GitHub и GitLab. Подробнее читайте в документации.

Новый билд-раннер dotCover

TeamCity уже некоторое время поддерживает использование JetBrains dotCover в качестве инструмента для контроля покрытия кода в .NET-проектах. В версии 2024.03 мы добавили новый билд-раннер к плагину .NET Support, обеспечивающему интеграцию с dotCover.

Новый билд-раннер dotCover позволяет:

  • запускать произвольные процессы в рамках профилирования dotCover для создания снэпшотов покрытия кода;
  • использовать снэпшоты с этапа сборки, созданные другими билд-раннерами .NET или dotCover;
  • создавать сводные отчеты по параллельным тестам для всей цепочки сборок и преобразовывать их в пользовательские отчеты TeamCity.

Подробнее читайте в документации

Политики повторного выполнения тестов .NET в TeamCity

В версии 2024.03 мы добавили новую функцию в билд-раннер .NET: теперь можно настроить политики повторного выполнения неудачных тестов для всей сборки.

Контроль над внешними пул-реквестами с помощью группы ненадежных сборок

Эта функция помогает решить проблему неустойчивых тестов и устранить разовые неудачи при выполнении интеграционных тестов.

Подробнее читайте в документации.

Поддержка кэша конфигурации в билд-раннере Gradle

Эта новая возможность Gradle значительно увеличивает производительность сборки за счет кэширования результатов этапа и его использования в следующих сборках. До выхода версии 2024.03 билд-раннер Gradle в TeamCity не поддерживал кэш конфигурации.

В новом релизе TeamCity мы добавили эту функцию, чтобы повысить эффективность и производительность сборок в Gradle. Подробнее о том, как включить использование кэша конфигурации в настройках TeamCity, читайте в документации.