+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

TeamCity 2020.1 - JetBrains випустив нову версію CI/CD-сервера для забезпечення безперервної інтеграції

TeamCity 2020.1 - JetBrains випускає новий CI/CD сервер для безперервної інтеграції

JetBrains випустила TeamCity 2020.1, нову версію сервера CI/CD.

Що нового в TeamCity 2020.1:

Умови виконання етапів збірки

Етап побудови на основі запиту умов був створений в баг-трекері 9 років тому, і за кількістю голосів він тримав чітке лідерство протягом багатьох років. І ось, нарешті, JetBrains реалізував цю функцію! Тепер ви можете вказати умови для виконання окремих етапів збірки.

TeamCity 2020.1 дозволяє зробити індивідуальні кроки збірки необов'язковими, і це може мати багато різних застосувань. Наприклад, деякі тести можна запускати тільки на обраному агенті або тільки на зазначеній ОС. Ви можете поширювати зміни на різні сервери, залежно від гілки. Ви можете виконувати різні сценарії командного рядка на різних платформах. І так далі.

Чому JetBrains не зробив це раніше? Тому що будь-які конвеєри CI/CD завжди можна було б створити без нього. TeamCity побудований навколо ідеї, що кожна конфігурація збірки повинна відповідати за одну конкретну задачу, без складної логіки всередині. Прикріпіть одну збірку до проміжного сервера, а іншу збірку прикріпіть до виробничого сервера. Хочете створити багато одноманітних збірок? Kotlin DSL і шаблони, які допоможуть вам.

Але багато користувачів очікують від продукту різної поведінки, і замість того, щоб створювати ланцюжки збірок, хочуть задати умови для виконання окремих кроків всередині збірок. Їхні запити нарешті були реалізовані – JetBrains сподівається, що тепер TeamCity стане для них зрозумілішим і зручнішим. JetBrains , зі свого боку, буде уважно стежити за тим, як використовується ця можливість.

Всі продукти JetBrains розвиваються абсолютно прозоро, і для кожного з них доступний публічний трекер помилок. У YouTrack ви завжди можете запропонувати щось нове, повідомити про помилку або додати голос до якогось запиту.

Запуск агентів побудови на кластері Kubernetes

Підтримка запуску агентів збірки в Kubernetes з'явилася в TeamCity ще в 2017 році у вигляді окремого плагіна. У версії 2020.1 JetBrains вдосконалив цей плагін, виправив ряд багів і включив його в основний дистрибутив, зробивши доступним з коробки. Ідея залишилася колишньою: агенти збірки запускаються в міру необхідності, виконують свою роботу, а потім видаляються після завершення збірки.

Масштабування кількох серверів

Вже два роки JetBrains активно розвиває здатність декількох установок TeamCity працювати разом в кластерному режимі. Версія 2020.1 розширила перелік обов'язків, які можуть бути покладені на вторинні сервери, а також ввела можливість виконання ряду дій на рівні користувача в інтерфейсі користувача.

Почнемо з нових обов'язків. Багато з клієнтів мають величезні інсталяції TeamCity з сотнями і тисячами тригерів, які спрацьовують комітами, появою нових артефактів, таймером і т.д. Тепер до цього процесу можна підключити вторинний сервер і розвантажити основний.

Усередині JetBrains майже всі продукти збираються за допомогою TeamCity. На сьогоднішній день JetBrains має понад 1100 агентів збірки, якими керують два сервери. Раніше бували ситуації, коли час обробки деяких тригерів було більше інтервалу між тригерами цих тригерів. Наприклад, комусь потрібно було запускати збірку щохвилини, але сервер не міг цього зробити, оскільки відповідний тригер оброблявся кожні дві хвилини. Після перемикання обробки тригерів на вторинний сервер ця проблема зникла.

Крім обробки тригерів, JetBrains розширив інтерфейс вторинного сервера: тепер він дозволяє редагувати профіль користувача, змінювати зовнішній вигляд проектів і конфігурацій, управляти агентами збірки. Це дозволяє продовжити роботу з TeamCity під час простою основного сервера.

Можливість завантажити готову збірку агентського дистрибутива

При підключенні до сервера TeamCity агенти збірки спочатку перевіряють власну версію і актуальність встановлених плагінів. При розбіжностях запускається оновлення, яке може зайняти значний час (до декількох хвилин). Щоб полегшити життя користувачам, що працюють з агентами хмарної збірки, версія 2020.1 додає можливість завантажувати готовий дистрибутив агента збірки, який не потребуватиме оновлення при підключенні до сервера.

Історія інвестицій

Щоб виправити падаючі збірки, TeamCity дозволяє призначити інвестиції (розслідування), щоб хтось із команди вивчив причину падіння. Інвестиції дозволяють зрозуміти, чи має хтось справу зі зламаною збіркою і який поточний стан проблеми. У JetBrains ця функція використовується всіма без винятку командами, вона є невід'ємною частиною нашого процесу розробки.

У минулому JetBrains часто стикалися з наступною ситуацією. Збірка падає, починаєш шукати проблему і розумієш, що десь її вже бачив. Починаєш згадувати, хто вкладав минулого разу, що це було і чим закінчилося. Але так як така інформація ніде не зберігається, доводиться це дізнаватися в чатах.

У TeamCity 2020.1 JetBrains додав можливість переглядати історію інвестицій: хто її створив і як вона дійшла до свого поточного стану. Вона виявилася настільки корисною, що наш колега Лані прокоментував цю особливість наступним чином:

"Хто б не створив таблицю історії розслідувань, велике спасибі! Це найкорисніше доповнення до TeamCity за останній рік!»

Сподіваємося, що вам теж сподобається!

Сповіщення на рівні проекту

Раніше TeamCity підтримував тільки особисті повідомлення: кожен користувач міг зайти в налаштування і вибрати, які повідомлення він хоче отримувати. У новій версії адміністратори проекту можуть налаштувати повідомлення відразу для всієї команди. Робиться це на рівні конфігурації збірки, що дає можливість успадковувати настройки підпроектів, а також редагувати, повторно використовувати і ділитися ними за допомогою Kotlin DSL.

На базі нового движка повідомлень JetBrains розробила новий функціонал, що дозволяє отримувати повідомлення про стан збірок в Slack.

Нові інтеграції

Хмара програмного забезпечення Jira

TeamCity роками може інтегруватися з Jira: коли завдання згадуються в повідомленнях про фіксацію, до них автоматично додаються посилання на відповідні завдання в Jira. У новій версії JetBrains розширив інтеграцію і став відправляти інформацію про стан збірок в Jira Software Cloud. Тепер по кожному завданню в Джирі можна побачити пов'язані з ним будівлі, коли вони були зібрані, і де вони були поставлені.

Azure DevOps

JetBrains додав підтримку запитів на витягування Azure DevOps, розширивши список хостів VCS, для яких працює функція Pull Requests. TeamCity тепер дозволяє автоматично збирати запити на витягування Azure DevOps, подібно до того, як він працює з GitHub і GitLab.

Новий інтерфейс "Сакура"

Рік тому JetBrains випустила новий експериментальний інтерфейс під кодовою назвою «Сакура», і за цей час відмінно себе зарекомендувала. Це круто: виглядає свіжо, швидко працює і побудований на сучасних технологіях, що дозволяє додавати нові можливості без гальм.

Поки що сакура ще не підтримує всі-всі сценарії, які доступні в класичному інтерфейсі. Однак JetBrains прямує до цього. У версії 2020.1 JetBrains оновив сторінки Агентів і Проектів, а також додав можливість налаштувати бічну панель.

Це ще не всі зміни нової версії! Повний перелік змін дивіться в документації  

https://www.jetbrains.com/help/teamcity/2020.1/what-s-new-in-teamcity-2020-1.html

Дистрибутиви TeamCity 2020.1 можна завантажити з веб-сайту JetBrains

https://www.jetbrains.com/teamcity/download/ 

Зображення Докера TeamCity також доступне на Docker Hub

https://hub.docker.com/r/jetbrains/teamcity-server/

Інші новини

Найкраща ціна