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, обеспечивающему интеграцию с dotCover.

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

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

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

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

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

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

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

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

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

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

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

TeamCity 2023.11: матричные сборки, кэширование сборок и многое другое

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

Расширенная интеграция с платформами Git-хостинга, в том числе с GitHub, GitLab, Bitbucket и Azure DevOps, упрощает выбор вариантов аутентификации.

Благодаря полностью переработанному интерфейсу плагинов для EC2 и S3 стало проще работать с этими сервисами Amazon.

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

Представляем матричные сборки

Изображение «Матричные сборки»

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

Матричные сборки особенно удобны при тестировании ПО в разных конфигурациях, например в разных операционных системах или версиях браузера.

Подробнее о матричных сборках — в документации.

Кэширование сборок: CI/CD должен быть экономным

Кэширование сборок: CI/CD должен быть экономным

Считается, что в CI/CD-пайплайнах лучше и безопаснее использовать одноразовые билд-агенты. Однако это связано с рядом сложностей.

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

Теперь в этом нет необходимости.

Кэширование сборок поможет оптимизировать время выполнения CI/CD: все файлы, от которых зависит проект, скачиваются один раз, а затем используются по мере необходимости.

Подробнее о кэшировании сборок — в документации.

Уносимся в облака: обновлены плагины EC2 и S3

Уносимся в облака: обновлены плагины EC2 и S3

В версии 2023.11 мы полностью пересмотрели подход к настройке облачных профилей и образов. Новый интерфейс поможет в этом, предложив подходящие параметры.

Теперь вы можете использовать инстансы EC2 для Mac, запускать билд-агенты на спотовых инстансах AWS EC2, используя показатели размещения спотов, и многое другое.

Кроме того, плагин S3 получил новый, более простой и интуитивно понятный интерфейс. Он позволяет удобно работать как с корзинами Amazon S3, так и с S3-совместимыми хранилищами.

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

TeamCity: к работе с Git-хостингами всегда готов

TeamCity предлагает тесную интеграцию с платформами Git-хостинга, включая GitHub, GitLab, Bitbucket (как Cloud, так и Data Center) и Azure DevOps.

GitHub

В версии 2023.05, мы добавили новый вариант подключения к GitHub: вместо традиционной аутентификации с помощью OAuth можно использовать GitHub Apps.

Начиная с версии 2023.11, установить такое подключение станет проще: вам больше не придется настраивать его вручную и регистрировать новые приложения в GitHub.

TeamCity: к работе с Git-хостингами всегда готов

Кроме того, теперь для аутентификации при установлении соединения через GitHub App можно также использовать безличные обновляемые токены на страницах настройки Commit Status Publisher, Pull Requests и баг-трекера GitHub.

GitLab

Начиная с версии 2023.11, можно настроить TeamCity так, чтобы он игнорировал черновики merge-реквестов в функции сборки Pull Requests для GitLab.

GitLab

Функции Commit Status Publisher и Pull Requests для GitLab-репозиториев теперь используют для аутентификации обновляемые токены OAuth.

Поддержка обновляемых токенов при аутентификации

Функции Commit Status Publisher и Pull Requests для GitLab-репозиториев теперь могут использовать для аутентификации обновляемые токены приложений.

Azure DevOps

Новая версия TeamCity поддерживает обновляемые токены OAuth для функций сборки Commit Status Publisher и Pull Requests для Azure DevOps.

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

Bitbucket Cloud

В этой версии мы расширили возможности аутентификации в Bitbucket.

Помимо паролей приложения и аутентификации по учетным данным корня VCS, TeamCity поддерживает также обновляемые и постоянные токены доступа в качестве способа аутентификации в рамках функции сборки «Pull Requests» для Bitbucket Cloud.

Bitbucket Server / Data Center

Теперь функция Pull Requests может использовать обновляемые токены OAuth для подключения к репозиториям Bitbucket Server / Data Center.

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

Расширенная интеграция с Perforce Helix Swarm

Расширенная интеграция с Perforce Helix Swarm

Мы также улучшили существующую интеграцию Swarm и TeamCity. Она позволяет использовать в Swarm статусы сборки из TeamCity, а также переходить из интерфейса TeamCity в интерфейс Swarm.

Начиная с версии 2023.11, можно настроить публикацию TeamCity для функции сборки Commit Status Publisher в Perforce Helix Swarm, интегрировав ее с пользовательскими рабочими процессами, которые были настроены в Swarm ранее. Кроме того, Commit Status Publisher больше не требует учетных данных пользователей с правами администратора.

Теперь интеграцию в TeamCity можно настроить без использования учетных данных пользователей с правами администратора в Swarm. Обновленные возможности интеграции позволяют также включить в пользовательские рабочие процессы критерии качества, основанные на проверках TeamCity.

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

Избранные пулы агентов

Улучшенная поддержка черновиков пул-реквестов в функции сборки Pull Requests

Теперь отдельные пулы агентов можно пометить как избранные и переходить к ним из одного места. Это удобно, если вам нужен доступ к пулам агентов, за которые вы отвечаете.

Безграничные возможности терминалов: удобный доступ к агентам

Безграничные возможности терминалов: удобный доступ к агентам

Доступ к агентам через терминал — уникальная функция TeamCity. Удаленный терминал, который можно открыть из интерфейса TeamCity, обеспечивает быстрый и удобный прямой доступ к машине агента. Функция работает на Linux и Windows (при использовании PowerShell) и macOS.

Начиная с версии 2023.11, вам не придется переключать вкладки, чтобы открыть терминалы, — они открываются на той же странице интерфейса TeamCity.

TeamCity 2023.05: темная тема, доступ к агентам через терминал и многое другое

В TeamCity 2023.05 появилось много новых функций, которые вы давно ждали, в том числе темная тема, улучшенный доступ к агентам через терминал, а также улучшения многоузловых развертываний. Интеграция TeamCity с Let's Encrypt и двухфакторная аутентификация для настраиваемых групп пользователей повышают безопасность решения. Кроме того, в этой версии появились такие возможности, как подключение в качестве GitHub App и отправка сообщений в Slack прямо из выполняемой сборки.

Встречайте темную тему

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

Она снижает нагрузку на глаза и помогает сосредоточиться на работе. Кроме того, некоторые считают, что она просто красивее.

Темная тема доступна как в классическом интерфейсе TeamCity, так и в интерфейсе Sakura. В настройках можно выбрать светлую (Light), темную (Dark) или системную (System) тему. В последнем случае интерфейс автоматически построится под настройки ОС.

Доступ к агентам через терминал

Agent terminal

В версии 2023.05 можно прямо в интерфейсе TeamCity открывать удаленные терминалы для доступа к машинам агентов. Благодаря этому удобно просматривать журналы агентов, проверять, какое ПО установлено, выполнять отладку тех или иных ошибок агентов.

Это особенно удобно при диагностике ошибок агента, поскольку при использовании терминала не надо хранить SSH-ключи для подключения к агентам. Функция работает на Mac, Linux и Windows (при использовании PowerShell).

Улучшения многоузловых развертываний

Улучшения многоузловых развертываний

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

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

Включение функции опроса VCS на нескольких узлах

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

Все это помогает упростить процессы сборки, тестирования и развертывания, сократить задержки и повысить общую эффективность работы.

Повышение безопасности

Безопасность — один из главных приоритетов при разработке TeamCity. Чтобы снизить риск утечки данных и перебоев в работе, мы реализовали следующие возможности.

Интеграция с Let’s Encrypt

В новой версии TeamCity появилась интеграция с Let's Encrypt — центром сертификации, предоставляющим бесплатные автоматизированные цифровые сертификаты для использования протокола HTTPS на веб-сайтах. Подключаясь к Let's Encrypt, TeamCity автоматически получает и устанавливает действительный сертификат, который в дальнейшем будет обновляться без каких-либо усилий со стороны пользователя.

Двухфакторная аутентификация

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

Подключение в качестве GitHub App

Подключение в качестве GitHub App

Новой версии TeamCity можно разрешить работать с GitHub в качестве GitHub App. Это новая функция, позволяющая выполнять различные действия и использовать GitHub API, не создавая отдельные учетные записи и не действуя от имени пользователя.

Главное преимущество подключения в качестве GitHub App в том, что TeamCity больше не использует учетные данные пользователя для доступа к GitHub. Вместо этого экземпляру GitHub App в организации или учетной записи пользователя в GitHub предоставляются анонимные возобновляемые токены. Это особенно важно при увольнении сотрудника или изменении его прав доступа.

Улучшенная поддержка черновиков пул-реквестов в функции сборки Pull Requests

Улучшенная поддержка черновиков пул-реквестов в функции сборки Pull Requests

В TeamCity Cloud 2022.12 появилась возможность настроить функцию сборки Pull Requests, так чтобы она игнорировала черновики пул-реквестов в GitHub.

В версии 2023.05 игнорировать черновики пул-реквестов можно также при использовании функции сборки Pull Requests в TeamCity On-Premises. Если выбрать в настройках вариант Ignore Drafts, TeamCity будет пропускать любые черновики пул-реквестов, пока их статус не изменится.

Настраиваемые уведомления

В TeamCity и раньше можно было настроить отправку уведомлений о тех или иных событиях по электронной почте или в Slack. В версии 2023.05 эта функция была доработана: теперь уведомления в Slack и по электронной почте можно отправлять с помощью служебных сообщений.

Настраиваемые уведомления

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

Одна из ситуаций, когда это особенно важно, — отправка сообщений при наступлении определенных условий или критических событий: например, если в текущем развертывании возникла ошибка и ее нужно быстро обработать, пока идет сборка.

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

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

Помимо отправки настраиваемых уведомлений, с помощью служебных сообщений можно добавлять и удалять теги сборки.

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

Поддержка Podman

Поддержка Podman

В версии 2023.05 мы добавили поддержку контейнерного движка Podman, позволяющего управлять контейнерами, даже не имея прав администратора. Он полностью поддерживает команды Docker, поэтому между движками легко переключаться.

Обратная связь

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

Как и всегда, мы будем рады вашим отзывам! Вы можете отставить их в виде заявки в службу поддержки.

TeamCity 2022.10

В TeamCity 2022.10 мы сделали Sakura интерфейсом по умолчанию, добавили много новых облачных возможностей, включая систему управления учетными данными AWS и прямой доступ через терминал к билд-агентам на базе AWS EC2, а также улучшили интеграцию с VCS. Администраторы серверов смогут оценить упрощенный способ настройки HTTPS для локальных установок TeamCity. Кроме того, поддерживается модуль аутентификации для входа через Google-аккаунты и несколько новых функций, которые вы давно ждали.

Интерфейс Sakura: совершенство в каждой детали

Цветущая сакура — это символ обновления и оптимизма, и именно с такими чувствами мы сделали Sakura UI интерфейсом по умолчанию в TeamCity 2022.10.

Sakura — современный, быстрый и красивый интерфейс. Он включает в себя всю функциональность классического интерфейса TeamCity, учитывает потребности пользователей с ограниченными возможностями и предоставляет много новых уникальных функций. Мы работали над Sakura больше четырех лет и постарались довести до совершенства каждую мелочь. Нам удалось протестировать его на тысячах внутренних и внешних проектов, в том числе на таких гигантах, как IntelliJ IDEA и Kotlin. Уверены: вам он тоже понравится!

Мы знаем, что многие пользователи TeamCity привыкли к старому интерфейсу, поэтому он будет доступен для них еще некоторое время. Однако в одной из следующих версий мы полностью откажемся от него в пользу Sakura, и если, на ваш взгляд, мы что-то упустили, пожалуйста, создайте задачу в YouTrack.

Новые возможности в облаке

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

Более простое и безопасное управление учетными данными AWS

Мы разработали новую систему управления учетными данными AWS, которая выдает временные краткосрочные ключи AWS для обеспечения безопасности ваших сборок.

Доступ к билд-агентам AWS EC2 через терминал

Пайплайн доставки должен быть прозрачным и доступным. Для упрощения отладки облачной инфраструктуры мы добавили возможность устанавливать сеансы терминала для билд-агентов AWS EC2 прямо из интерфейса TeamCity, не заходя в консоль управления облачного провайдера и не настраивая списки доступа к сети и пары SSH-ключей.

Эта функция контролируется разрешением Open an interactive session to the agent, которое по умолчанию есть только у администраторов серверов, но при необходимости его можно выдать и другим пользователям.

Режим обслуживания облачного агента

Если вам приходилось производить отладку в CI/CD-пайплайне, который выполняется в облаке, вы знаете, что это бывает непросто. Мало того, что поиск и запуск нужного агента требует времени и усилий, так еще надо убедиться, что новые сборки не запустятся в ходе процесса.

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

Управление облачными экземплярами при использовании нескольких серверов

Начиная с TeamCity 2022.10, вторичные серверы TeamCity могут запускать и останавливать облачные экземпляры, обеспечивая бесперебойную непрерывную интеграцию в облаке во время обслуживания основного сервера.

Улучшение интеграции с VCS

Perforce

В TeamCity 2022.10 вас ждут два улучшения интеграции с инструментами Perforce:

  • Perforce Shelve Trigger теперь понимает, что отложенный список изменений относится к потоку не по умолчанию, и позволяет запустить сборку на нём.
  • TeamCity теперь определяет списки изменений, прошедшие ревью в Perforce Helix Swarm, и добавляет ссылки на такие ревью и изменения на страницах Build Overview и Changes соответственно.

Поддержка обновляемых токенов при OAuth-подключении

TeamCity 2022.10 теперь использует кратковременные OAuth-токены при работе с GitLab, Bitbucket Cloud и Azure DevOps, что позволяет создавать корни VCS без необходимости вручную генерировать токены доступа для этих сервисов.

Безопасность на новом уровне

Поддержка HTTPS без дополнительных настроек

Поддержка HTTPS без дополнительных настроек

Безопасность CI/CD-пайплайна важна как никогда. В версии 2022.10 мы упростили настройку HTTPS для вашего сервера TeamCity. Вам нужно только лишь загрузить HTTPS-сертификат или цепочку сертификатов в формате PEM, а TeamCity сделает все остальное.

Токены ограниченного доступа

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

Вход через Google-аккаунт

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

Улучшенная функция очистки диска

Функция Free Disk Space теперь отслеживает размер артефактов и автоматически вычисляет, сколько нужно места на диске для разрешения зависимостей артефактов. Это упрощает работу, поскольку вам необязательно знать размер артефактов, загружаемых во время сборки, и единственное, что нужно указать, это объем дискового пространства, который необходим для самого процесса сборки.

Продвижение персональных сборок

Начиная с TeamCity 2022.10, вы можете продвигать персональные сборки. Сборки, которые запускаются после продвижения, также становятся персональными.

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

TeamCity 2022.04

TeamCity 2022.04 поддерживает параллельное тестирование, благодаря которому вы можете тестировать ваши проекты в разы быстрее. Новые возможности анализа кода ускоряют ревью и упрощают поддержку проектов. Тех, кто запускает сборки в облаке, ждет улучшенная интеграция с Amazon S3 и Amazon Cloudfront, а также возможность управлять конфигурациями Cloud Profile программно. Мы также расширили интеграцию с VCS, добавили новые варианты конфигурации и обновили интерфейс.

Наращиваем скорость за счет параллельного тестирования

В TeamCity появилась возможность параллельного тестирования. За счет распределения тестов между несколькими билд-агентами общее время тестирования сокращается. В отличие от других CI/CD-решений, TeamCity распараллеливает тесты, опираясь не только на результаты последнего запуска, а на всю историю запусков. Поэтому вы можете смело рефакторить код, ломать тесты — делать все, что хотите, не рискуя нарушить процесс распараллеливания или затормозить пайплайны.

В нашем случае параллельное тестирование существенно изменило процесс разработки и тестирования TeamCity. Интеграционное тестирование теперь занимает в 10 раз меньше времени (около 20 минут вместо 4 часов).

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

Встроенные проверки качества кода

Встроенные проверки качества кода

TeamCity помогает исправлять ошибки и улучшать качество вашего кода разными способами. В версии 2022.04 появился еще один: теперь можно активировать продвинутые инспекции качества кода, позволяющие выполнять новые действия (реализация JetBrains Qodana), например:

  • запускать проверки статического анализа;
  • искать в коде дубликаты;
  • отслеживать, как со временем меняется качество кода, и т. д.

Добавив инспекции в пайплайн сборки, вы ускорите ревью кода, упростите поддержку проектов и повысите продуктивность команды. Приглашаем посмотреть демонстрационное видео.

Новый уровень интеграции с облачными платформами

Мир стремительно переходит в облако, и многие наши клиенты следуют этой тенденции. В TeamCity 2022.04 мы улучшили интеграцию с Amazon Web Services и добавили новые варианты конфигурации.

Миграция артефактов сборки на Amazon S3

Интеграция TeamCity с Amazon EC2 и Amazon S3 позволяет легко масштабировать инфраструктуру сборки, вне зависимости от объема и сложности проекта. С TeamCity 2022.04 можно не только сохранять в Amazon S3 новые артефакты сборки, но и перемещать туда существующие из локального хранилища TeamCity. Если ваша команда только приступила к миграции с локальной инфраструктуры на облачную платформу, вы сможете извлечь максимум пользы с самого начала.

Скачивание артефактов сборки с Amazon CloudFront

Скачивание артефактов сборки с Amazon CloudFront

Чем дальше вы находитесь от корзины S3, в которой хранятся ваши артефакты сборки, тем дольше и дороже вам обходится работа с ними. Поэтому мы добавили в TeamCity нативную поддержку Amazon CloudFront — сервиса, позволяющего работать с артефактами, которые кэшируются на ближайших серверах AWS. Это работает на всех уровнях (билд-агенты, веб-пользователи, API-запросы и пр.), а значит, вы сможете значительно ускорить процесс разработки.

Другие способы организовать автоматическое масштабирование на уровне проекта

Хранение CI/CD-конфигурации вместе с кодом проекта гарантирует, что проект можно в любой момент собрать, протестировать и развернуть. TeamCity 2022.04 расширяет Kotlin DSL: теперь у каждого проекта может быть своя конфигурация Cloud Profile.

Новые возможности при развертывании

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

Нам важно, что вы думаете. Если вы хотите предложить новую функциональность в области развертывания, сообщите нам об этом в YouTrack.

Улучшение интеграции с VCS

Merge-реквесты Space

Мы продолжаем улучшать интеграцию с JetBrains Space и в новой версии добавили поддержку merge-реквестов. Теперь статус сборки merge-реквеста публикуется в истории реквеста в Space.

Задачи GitLab

Список поддерживаемых баг-трекеров теперь включает GitLab. Все просто: если в сообщении коммита упоминается ID задачи, TeamCity автоматически добавит ссылку на соответствующую зачачу в GitLab и покажет информацию о ней.

Сообщение о сборках, помещенных в очередь

Раньше функция Commit Status Publisher отправляла информацию в систему контроля версий только после того, как запускалась сборка, а это могло произойти намного позже коммита. Теперь TeamCity обновляет статус коммита сразу после добавления соответствующей сборки в очередь, предоставляя вам самую актуальную информацию. Это работает для всех поддерживаемых VCS-сервисов, включая GitHub, GitLab, Space, Bitbucket и Azure DevOps.

Сборка определенной ревизии

Сборка определенной ревизии

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

Больше контроля над функциональными ветками

Больше контроля над функциональными ветками

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

Безопасность: снаружи и изнутри

Log4J и Log4Shell

Хотя уязвимость Log4Shell (CVE-2021-44228) не затрагивала TeamCity, некоторые сканеры безопасности не проверяли, какую именно версию фреймворка Log4J использует TeamCity, и в конечном счете указывали на эту уязвимость. Мы обновили Log4J до последней версии, и вы больше не будете получать ложноположительные отчеты.

Spring и Spring4Shell

Как и Log4Shell, уязвимость Spring4Shell (CVE-2022-22965) не затрагивает TeamCity. Однако, чтобы сканеры безопасности не давали ложноположительных отчетов, мы обновили Spring Framework, используемый в TeamCity, до последней версии.

Обновления интерфейса Sakura

По функциональности интерфейс Sakura все больше напоминает классический интерфейс TeamCity. Мы переработали страницы Agent Pools и Changes, а также значительно улучшили производительность всего интерфейса. Мы планируем сделать Sakura интерфейсом по умолчанию в TeamCity 2022.10. Следите за новостями!

И это далеко не все улучшения TeamCity. Полный список изменений и инструкции по обновлению, вы найдете в документации.