<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https://wiki.corp2.eu/index.php?action=history&amp;feed=atom&amp;title=TeamCity</id>
	<title>TeamCity - Історія редагувань</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.corp2.eu/index.php?action=history&amp;feed=atom&amp;title=TeamCity"/>
	<link rel="alternate" type="text/html" href="https://wiki.corp2.eu/index.php?title=TeamCity&amp;action=history"/>
	<updated>2026-08-18T21:17:38Z</updated>
	<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.corp2.eu/index.php?title=TeamCity&amp;diff=1158&amp;oldid=prev</id>
		<title>R: Первинна публікація</title>
		<link rel="alternate" type="text/html" href="https://wiki.corp2.eu/index.php?title=TeamCity&amp;diff=1158&amp;oldid=prev"/>
		<updated>2026-05-08T10:17:58Z</updated>

		<summary type="html">&lt;p&gt;Первинна публікація&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;автоматизації збірки забезпечується через &amp;#039;&amp;#039;&amp;#039;TeamCity&amp;#039;&amp;#039;&amp;#039; — це CI/CD-сервер від компанії &amp;#039;&amp;#039;&amp;#039;JetBrains&amp;#039;&amp;#039;&amp;#039;, який застосовується; додатково реалізовано тестування, перевірки якості коду, публікації артефактів і розгортання програмного забезпечення.; * які тести впали;&lt;br /&gt;
* у якому build вони впали;&lt;br /&gt;
* хто зробив зміни перед падінням;&lt;br /&gt;
* скільки часу виконувалися тести;&lt;br /&gt;
* які тести нестабільні;&lt;br /&gt;
* історію результатів.; # Збірка frontend.; # Виконуються smoke-тести.; # Команда отримує повідомлення про успіх або помилку.;&amp;lt;div style=&amp;quot;background:#e8f5e9; border-left:5px solid #43a047; padding:12px; margin:12px 0;&amp;quot;&amp;gt;&lt;br /&gt;
До основних переваг TeamCity можна віднести:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Build chain&amp;#039;&amp;#039;&amp;#039; — це ланцюг взаємопов’язаних збірок.; # платформа перевіряє стан сервісу після актуалізація.; Це сприяє швидше виявляти помилки та не переносити проблеми в production.; dotnet test&lt;br /&gt;
&lt;br /&gt;
TeamCity потрібен для автоматизації процесів розробки та доставки програмного забезпечення.; Приклад спрощеної ідеї Kotlin DSL:&amp;lt;syntaxhighlight lang=&amp;quot;kotlin&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* JAR-файл;&lt;br /&gt;
* WAR-файл;&lt;br /&gt;
* ZIP-архів;&lt;br /&gt;
* Docker image;&lt;br /&gt;
* NuGet-пакет;&lt;br /&gt;
* npm package;&lt;br /&gt;
* звіти тестів;&lt;br /&gt;
* coverage report;&lt;br /&gt;
* лог-файли;&lt;br /&gt;
* інсталяційний пакет;&lt;br /&gt;
* зібраний frontend.;== Основні поняття TeamCity ==&lt;br /&gt;
=== Project ===&lt;br /&gt;
&lt;br /&gt;
* збірка Docker image;&lt;br /&gt;
* запуск контейнерів для тестів;&lt;br /&gt;
* публікація image у registry;&lt;br /&gt;
* deployment контейнерів;&lt;br /&gt;
* запуск сервісів залежностей для тестів;&lt;br /&gt;
* робота з Docker Compose;&lt;br /&gt;
* підготовка середовища для integration tests.;== Build chain ==&lt;br /&gt;
&lt;br /&gt;
TeamCity має змогу інтегруватися з системами контролю версій.; # TeamCity отримує сигнал про зміни.; У K2 ERP TeamCity доцільно використовувати для автоматизованих збірок, тестів, перевірок інтеграцій, формування артефактів і контрольованого deployment у різні середовища.; Для Java-проєктів TeamCity часто запускає Gradle або Maven.; Саме build agent компілює код, запускає тести, виконує Gradle, Maven, npm, Docker, .NET CLI або інші команди.;== інтеграційні функціональні можливості з .NET ==&lt;br /&gt;
== Артефакти збірки ==&lt;br /&gt;
&lt;br /&gt;
* потребу в адмініструванні сервера;&lt;br /&gt;
* потребу в build agents;&lt;br /&gt;
* потребу в ліцензіях залежно від масштабу;&lt;br /&gt;
* потребу в налаштуванні доступів;&lt;br /&gt;
* потребу в контролі секретів;&lt;br /&gt;
* потребу в оновленнях;&lt;br /&gt;
* потребу в резервному копіюванні;&lt;br /&gt;
* ризик накопичення складних build configurations;&lt;br /&gt;
* ризик нестабільних тестів;&lt;br /&gt;
* ризик неконтрольованого deployment;&lt;br /&gt;
* потребу в моніторингу диску, CPU і пам’яті.;=== TeamCity Server ===&lt;br /&gt;
[[OpenCart]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Рекомендація:&amp;#039;&amp;#039;&amp;#039; у CI/CD потрібно розділяти швидкі unit-тести та довші інтеграційні тести.; # Виконується збірка.; CI/CD має бути налаштований так, щоб секрети не потрапляли в артефакти або повідомлення.; # Код відправляється в репозиторій.; Офіційна документація JetBrains описує TeamCity On-Premises як CI/CD-рішення для різних workflows і development practices.; # Створення Docker-образу.; ([jetbrains.com](https://www.jetbrains.com/teamcity/features/))&lt;br /&gt;
&lt;br /&gt;
Під час впровадження TeamCity потрібно враховувати:&lt;br /&gt;
&lt;br /&gt;
* Git;&lt;br /&gt;
* GitHub;&lt;br /&gt;
* GitLab;&lt;br /&gt;
* Bitbucket;&lt;br /&gt;
* Azure DevOps Repos;&lt;br /&gt;
* інші VCS залежно від налаштувань.; JetBrains у документації описує TeamCity як CI/CD-сервер, який підтримує роботу continuous integration і continuous delivery.; TeamCity підтримує роботу підхід &amp;#039;&amp;#039;&amp;#039;Configuration as Code&amp;#039;&amp;#039;&amp;#039;.; ([jetbrains.com](https://www.jetbrains.com/help/teamcity/continuous-integration-with-teamcity.html))&amp;lt;div style=&amp;quot;background:#e8f4ff; border-left:5px solid #1e88e5; padding:12px; margin:12px 0;&amp;quot;&amp;gt;&lt;br /&gt;
TeamCity має змогу зберігати артефакти, передавати їх у наступні build configurations або публікувати в зовнішній registry.; Типові тести:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Практичне сфера застосування:&amp;#039;&amp;#039;&amp;#039; TeamCity надає можливість побудувати бізнес-процес, у якому кожен commit автономно перевіряється збіркою і тестами.; # Результат deployment зберігається в історії.; &amp;#039;&amp;#039;&amp;#039;VCS Root&amp;#039;&amp;#039;&amp;#039; — це конфігурація підключення до репозиторію коду.;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[FREDO]]&lt;br /&gt;
Приклади build steps:&lt;br /&gt;
&lt;br /&gt;
 tasks = &amp;quot;clean build&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Gradle build;&lt;br /&gt;
* Maven build;&lt;br /&gt;
* npm install;&lt;br /&gt;
* npm test;&lt;br /&gt;
* dotnet build;&lt;br /&gt;
* dotnet test;&lt;br /&gt;
* Docker build;&lt;br /&gt;
* запуск shell-скрипта;&lt;br /&gt;
* запуск PowerShell-скрипта;&lt;br /&gt;
* публікація артефактів.;&amp;lt;div style=&amp;quot;background:#fff3e0; border-left:5px solid #fb8c00; padding:12px; margin:12px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; у TeamCity — це логічна група build configurations, налаштувань, шаблонів і параметрів.; Для Java-проєкту, як ілюстрація, build runner має змогу запускати:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
Для безпечної роботи TeamCity потрібно контролювати:&lt;br /&gt;
&lt;br /&gt;
object Build : BuildType({&lt;br /&gt;
&lt;br /&gt;
== інтеграційні функціональні можливості з Git ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.jetbrains.com/teamcity/ TeamCity — JetBrains]&lt;br /&gt;
* [https://www.jetbrains.com/teamcity/features/ TeamCity Features]&lt;br /&gt;
* [https://www.jetbrains.com/help/teamcity/teamcity-documentation.html TeamCity Documentation]&lt;br /&gt;
* [https://www.jetbrains.com/help/teamcity/continuous-integration-with-teamcity.html Continuous Integration with TeamCity]&lt;br /&gt;
* [https://www.jetbrains.com/teamcity/ci-cd-guide/ci-servers/ What is a CI server?]&lt;br /&gt;
* [https://www.jetbrains.com/teamcity/ci-cd-guide/continuous-deployment/ Continuous Deployment — TeamCity Guide]&lt;br /&gt;
&lt;br /&gt;
 root(DslContext.settingsRoot)&lt;br /&gt;
project {&lt;br /&gt;
&lt;br /&gt;
Типові варіанти:&lt;br /&gt;
&lt;br /&gt;
== Джерела ==&lt;br /&gt;
&lt;br /&gt;
У типовому процесі TeamCity підключається до репозиторію коду, як ілюстрація Git, GitHub, GitLab, Bitbucket або іншої системи контролю версій.; Типовий CI-процес має змогу виглядати так:&lt;br /&gt;
завдяки наявності TeamCity користувачі можуть командам автоматизувати бізнес-процес розробки.;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
TeamCity має змогу бути корисним для:&lt;br /&gt;
&lt;br /&gt;
* назву build configuration;&lt;br /&gt;
* номер build;&lt;br /&gt;
* commit hash;&lt;br /&gt;
* автора змін;&lt;br /&gt;
* гілку;&lt;br /&gt;
* статус build;&lt;br /&gt;
* дату і час запуску;&lt;br /&gt;
* дату і час завершення;&lt;br /&gt;
* build log;&lt;br /&gt;
* результати тестів;&lt;br /&gt;
* артефакти;&lt;br /&gt;
* версію застосунку;&lt;br /&gt;
* Docker image tag;&lt;br /&gt;
* середовище deployment;&lt;br /&gt;
* користувача, який запустив deployment;&lt;br /&gt;
* причину помилки;&lt;br /&gt;
* історію змін pipeline.; Це сервер автоматизації CI/CD, який отримує код із Git або іншої VCS, запускає збірку, тести, перевірки, створює артефакти та має змогу виконувати deployment.; Він автоматизує перевірку, збірку, тестування, публікацію і розгортання, щоб команда швидше бачила, чи працюють зміни.;=== TeamCity On-Premises ===&lt;br /&gt;
[[M.E.Doc.ЕДО]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=== Build Step ===&lt;br /&gt;
Для команд, які розробляють ERP, SaaS, API, інтеграційні сервіси, Java, .NET, Docker або мікросервісні системи, TeamCity має змогу бути центральним інструментом контролю якості та доставки змін.; # Запуск backend-тестів.; # Запускається deployment у тестове середовище.; }&lt;br /&gt;
== CI/CD у TeamCity ==&lt;br /&gt;
&lt;br /&gt;
Приклади артефактів:&lt;br /&gt;
&lt;br /&gt;
=== Build Agent ===&lt;br /&gt;
=== TeamCity Cloud ===&lt;br /&gt;
&lt;br /&gt;
TeamCity має змогу використовуватися у хмарному або локальному варіанті.; Він застосовується, коли одна збірка залежить від результату іншої.; # Виконується статичний аналіз.; ([jetbrains.com](https://www.jetbrains.com/help/teamcity/continuous-integration-with-teamcity.html))&lt;br /&gt;
&lt;br /&gt;
== TeamCity Cloud і TeamCity On-Premises ==&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
інтеграційні функціональні можливості надає можливість:&lt;br /&gt;
&lt;br /&gt;
== Build triggers ==&lt;br /&gt;
&lt;br /&gt;
* конфігурація зберігаються в Git;&lt;br /&gt;
* зміни можна переглядати через code review;&lt;br /&gt;
* простіше відновити конфігурацію;&lt;br /&gt;
* простіше копіювати pipeline між проєктами;&lt;br /&gt;
* можна відстежувати історію змін;&lt;br /&gt;
* менше ручних змін через інтерфейс.; # Запускаються тести.; Це означає, що конфігурація build configurations можна зберігати у вигляді коду в репозиторії.; # Формуються артефакти.; # Build agent завантажує код.; Такий варіант має змогу бути зручним, якщо команда не хоче самостійно адмініструвати TeamCity Server.; Це комфортно для команд, які працюють з Kotlin або Java-екосистемою.;== інтеграційні функціональні можливості з Gradle і Java ==&lt;br /&gt;
&lt;br /&gt;
* запуск після commit у Git;&lt;br /&gt;
* запуск за розкладом;&lt;br /&gt;
* запуск після завершення іншої збірки;&lt;br /&gt;
* ручний запуск користувачем;&lt;br /&gt;
* запуск за тегом;&lt;br /&gt;
* запуск для pull request або merge request;&lt;br /&gt;
* запуск при зміні конкретної гілки;&lt;br /&gt;
* запуск при зміні певних файлів.;&amp;lt;/syntaxhighlight&amp;gt;Для .NET-проєкту:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* паролі;&lt;br /&gt;
* токени API;&lt;br /&gt;
* приватні ключі;&lt;br /&gt;
* production connection strings;&lt;br /&gt;
* ключі електронного підпису;&lt;br /&gt;
* секрети CI/CD;&lt;br /&gt;
* персональні інформаційні дані клієнтів;&lt;br /&gt;
* конфіденційні фінансові інформаційні дані;&lt;br /&gt;
* вміст production-баз;&lt;br /&gt;
* приватні сертифікати.; Це зменшує хаос у build configurations і надає можливість керувати CI/CD як частиною репозиторію.; Коли розробник надсилає зміни в репозиторій, TeamCity має змогу автономно запустити збірку, виконати тести, перевірити код, створити артефакт і повідомити команду про результат.;== Див.; додатково ==&lt;br /&gt;
[[Rider]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#fff3e0; border-left:5px solid #fb8c00; padding:12px; margin:12px 0;&amp;quot;&amp;gt;&lt;br /&gt;
TeamCity має змогу використовуватися для Docker-сценаріїв:&lt;br /&gt;
[[Java]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Build Step&amp;#039;&amp;#039;&amp;#039; — це окремий крок у build configuration.; Типовий CD-процес має змогу виглядати так:&lt;br /&gt;
[[Інтеграція РРО в Python]]&lt;br /&gt;
== інформаційні дані, які бажано зберігати ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;істотно:&amp;#039;&amp;#039;&amp;#039; TeamCity — це не IDE і не платформа контролю версій.;== інтеграційні функціональні можливості з Docker ==&lt;br /&gt;
Приклад build chain:&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
У TeamCity CI/CD має змогу включати:&lt;br /&gt;
[[ДПС]]&lt;br /&gt;
&lt;br /&gt;
== інформаційні дані, які не варто відкривати в build logs ==&lt;br /&gt;
&lt;br /&gt;
* deployment у staging;&lt;br /&gt;
* deployment у testing;&lt;br /&gt;
* deployment у production після ручного підтвердження;&lt;br /&gt;
* публікація Docker image;&lt;br /&gt;
* актуалізація Kubernetes deployment;&lt;br /&gt;
* завантаження артефакту на сервер;&lt;br /&gt;
* запуск Ansible або shell-скрипта;&lt;br /&gt;
* актуалізація SaaS-сервісу;&lt;br /&gt;
* rollback за потреби.; # TeamCity запускає production deployment.; buildType(Build)&lt;br /&gt;
&lt;br /&gt;
TeamCity має змогу брати участь у deployment-процесах.; steps {&lt;br /&gt;
== Build runners ==&lt;br /&gt;
== Kotlin DSL ==&lt;br /&gt;
&lt;br /&gt;
== Обмеження та ризики ==&lt;br /&gt;
./gradlew clean build&lt;br /&gt;
&lt;br /&gt;
* права користувачів;&lt;br /&gt;
* групи доступу;&lt;br /&gt;
* доступ до проєктів;&lt;br /&gt;
* доступ до production deployment;&lt;br /&gt;
* секрети;&lt;br /&gt;
* токени;&lt;br /&gt;
* SSH-ключі;&lt;br /&gt;
* доступ до Docker registry;&lt;br /&gt;
* доступ до build agents;&lt;br /&gt;
* журнал дій;&lt;br /&gt;
* актуалізація TeamCity;&lt;br /&gt;
* актуалізація build agents;&lt;br /&gt;
* ізоляцію агентів;&lt;br /&gt;
* доступ до артефактів;&lt;br /&gt;
* доступ до логів;&lt;br /&gt;
* доступ до змінних середовища.; # Deployment у staging.; JetBrains у власному CI/CD-гайді пояснює, що CI-сервер координує кроки CI/CD-процесу: від відстеження змін у VCS до запуску build, test і deployment-задач.; Це корисно для C#, ASP.NET Core, API, backend-сервісів, desktop-застосунків і бібліотек.; Окремо варто відзначити .NET, Kotlin, JavaScript, Python, Android, Docker, мікросервісних, backend, frontend, mobile, SaaS і корпоративних проєктах.; # Артефакт публікується в registry або сховище.; ([jetbrains.com](https://www.jetbrains.com/teamcity/ci-cd-guide/ci-servers/))&lt;br /&gt;
== Безпека TeamCity ==&lt;br /&gt;
&lt;br /&gt;
* build agent недоступний;&lt;br /&gt;
* неправильні облікові інформаційні дані до Git;&lt;br /&gt;
* репозиторій недоступний;&lt;br /&gt;
* неправильна гілка;&lt;br /&gt;
* не встановлений потрібний SDK;&lt;br /&gt;
* не встановлений Docker;&lt;br /&gt;
* помилка Gradle або Maven;&lt;br /&gt;
* помилка npm;&lt;br /&gt;
* тести падають;&lt;br /&gt;
* нестабільні тести;&lt;br /&gt;
* не вистачає пам’яті на build agent;&lt;br /&gt;
* неправильно налаштовані змінні середовища;&lt;br /&gt;
* відсутній секрет або токен;&lt;br /&gt;
* немає прав на deployment;&lt;br /&gt;
* артефакт не збережено;&lt;br /&gt;
* production deployment запущено помилково.; ([jetbrains.com](https://www.jetbrains.com/help/teamcity/teamcity-documentation.html))&lt;br /&gt;
&lt;br /&gt;
# Розробник створює гілку в Git.; Це дає швидкий зворотний зв’язок розробникам.; &amp;#039;&amp;#039;&amp;#039;Рекомендація:&amp;#039;&amp;#039;&amp;#039; усі deployment-збірки, особливо production, мають мати обмежені права доступу, журнал запусків, зрозумілі параметри, ручне підтвердження або чіткі автоматичні умови.; Приклад Gradle-команди:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Build artifacts&amp;#039;&amp;#039;&amp;#039; — це файли, які створюються після успішної збірки.;[[Medoc REST API]]&lt;br /&gt;
&lt;br /&gt;
On-Premises має змогу бути зручним, якщо потрібен більший контроль над інфраструктурою, мережами, агентами, секретами, доступом до внутрішніх репозиторіїв і deployment-середовищ.; &amp;#039;&amp;#039;&amp;#039;Build Configuration&amp;#039;&amp;#039;&amp;#039; — це характеристика конкретної збірки.; # Створюється артефакт або Docker image.; Після появи нових змін CI/CD-сервер запускає потрібні build configurations на build agents.; Через VCS Root TeamCity знає, де знаходиться код, яку гілку брати, які облікові інформаційні дані використовувати і які зміни відстежувати.;&amp;lt;div style=&amp;quot;background:#e0f2f1; border-left:5px solid #00897b; padding:12px; margin:12px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TeamCity Cloud&amp;#039;&amp;#039;&amp;#039; — це керований хмарний варіант TeamCity, де частину інфраструктурних задач бере на себе JetBrains.; gradle {&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Не плутати:&amp;#039;&amp;#039;&amp;#039; TeamCity має змогу зберігати секрети як параметри збірки, але їх не можна виводити в логах або передавати в незахищені скрипти.; # Відповідальна особа підтверджує production deployment.; &amp;#039;&amp;#039;&amp;#039;Build Runner&amp;#039;&amp;#039;&amp;#039; — це тип build step, який виконує конкретну технологічну задачу.; TeamCity — це CI/CD-сервер JetBrains для автоматизації збірки, тестування, публікації артефактів і розгортання програмного забезпечення.; Швидкі тести варто запускати на кожен commit, а важкі перевірки — окремо або за розкладом.; # Збірка backend.;=== Build Configuration ===&lt;br /&gt;
TeamCity має змогу використовувати різні build runners:&lt;br /&gt;
&lt;br /&gt;
== Типовий сценарій CI для K2 ERP ==&lt;br /&gt;
&lt;br /&gt;
* отримання коду з репозиторію;&lt;br /&gt;
* автоматичний запуск build після commit;&lt;br /&gt;
* компіляцію;&lt;br /&gt;
* запуск тестів;&lt;br /&gt;
* статичний аналіз;&lt;br /&gt;
* створення артефактів;&lt;br /&gt;
* публікацію Docker-образів;&lt;br /&gt;
* deployment у тестове середовище;&lt;br /&gt;
* ручне підтвердження перед production;&lt;br /&gt;
* автоматичне розгортання за умовами.;[[Edin]]&lt;br /&gt;
&lt;br /&gt;
* автоматичний запуск збірки після змін у репозиторії;&lt;br /&gt;
* компіляція коду;&lt;br /&gt;
* запуск unit-тестів;&lt;br /&gt;
* запуск інтеграційних тестів;&lt;br /&gt;
* запуск статичного аналізу;&lt;br /&gt;
* перевірка якості коду;&lt;br /&gt;
* створення артефактів;&lt;br /&gt;
* публікація артефактів;&lt;br /&gt;
* збірка Docker-образів;&lt;br /&gt;
* запуск deployment;&lt;br /&gt;
* контроль build history;&lt;br /&gt;
* повідомлення про помилки;&lt;br /&gt;
* контроль прав доступу;&lt;br /&gt;
* робота з build chains;&lt;br /&gt;
* автоматизація процесів CI/CD-процесів.; TeamCity має змогу збирати і показувати результати тестів.; Він має запускати тести, перевірки, збірку, створення артефактів і контрольований deployment у середовища.; Один проєкт має змогу відповідати одному програмному продукту, репозиторію, модулю або команді.; # Автоматичні smoke-тести.; У документації JetBrains зазначено, що build agent — це програмне забезпечення, яке виконує build process і встановлюється окремо від TeamCity Server.; Типові deployment-сценарії:&lt;br /&gt;
&lt;br /&gt;
Build chain надає можливість бачити весь бізнес-процес як єдиний pipeline і оперативно визначати, на якому етапі сталася помилка.; &amp;#039;&amp;#039;&amp;#039;TeamCity Server&amp;#039;&amp;#039;&amp;#039; — це центральний сервер, який керує проєктами, build configurations, користувачами, правами доступу, історією збірок, артефактами, налаштуваннями, тригерами та результатами виконання.; # TeamCity показує результат.;== Висновок ==&lt;br /&gt;
&lt;br /&gt;
[[Tilda Commerce]]&lt;br /&gt;
У контексті K2 ERP TeamCity має змогу використовуватися для автоматизації розробки, тестування і розгортання модулів ERP, інтеграційних сервісів, API, frontend, backend, Java, .NET, Python або інших компонентів.; У ньому задається, звідки брати код, які кроки виконувати, які тести запускати, які артефакти зберігати і коли запускати build.; ([jetbrains.com](https://www.jetbrains.com/help/teamcity/continuous-integration-with-teamcity.html))&amp;lt;div style=&amp;quot;background:#fff8e1; border-left:5px solid #f9a825; padding:12px; margin:12px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Тестування в TeamCity ==&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* dotnet restore;&lt;br /&gt;
* dotnet build;&lt;br /&gt;
* dotnet test;&lt;br /&gt;
* dotnet publish;&lt;br /&gt;
* NuGet pack;&lt;br /&gt;
* deployment scripts.; Це має змогу бути автоматичне або ручне розгортання.;[[Gradle]]&lt;br /&gt;
&lt;br /&gt;
== Deployment у TeamCity ==&lt;br /&gt;
TeamCity надає можливість бачити:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;TeamCity має змогу зберігати результати тестів, показувати failed tests, будувати історію стабільності тестів і повідомляти команду про проблеми.; ([jetbrains.com](https://www.jetbrains.com/teamcity/ci-cd-guide/continuous-deployment/))&lt;br /&gt;
&lt;br /&gt;
* зручний вебінтерфейс;&lt;br /&gt;
* підтримку CI/CD-процесів;&lt;br /&gt;
* build agents;&lt;br /&gt;
* build chains;&lt;br /&gt;
* інтеграцію з Git;&lt;br /&gt;
* підтримку Gradle, Maven, .NET, Docker та інших інструментів;&lt;br /&gt;
* зберігання історії збірок;&lt;br /&gt;
* показ результатів тестів;&lt;br /&gt;
* підтримку Configuration as Code;&lt;br /&gt;
* Kotlin DSL;&lt;br /&gt;
* контроль прав доступу;&lt;br /&gt;
* гнучкі тригери;&lt;br /&gt;
* інтеграцію з JetBrains-екосистемою;&lt;br /&gt;
* підтримку on-premises і cloud-сценаріїв.;&amp;lt;div style=&amp;quot;background:#ffebee; border-left:5px solid #e53935; padding:12px; margin:12px 0;&amp;quot;&amp;gt;&lt;br /&gt;
})&lt;br /&gt;
&lt;br /&gt;
== Можливі помилки під час роботи ==&lt;br /&gt;
./gradlew clean test build&lt;br /&gt;
&lt;br /&gt;
== переважні аспекти TeamCity ==&lt;br /&gt;
Сервер координує роботу build agents, але сам зазвичай не виконує важкі build-задачі.; JetBrains у CI/CD-гайді пояснює різницю між continuous delivery і continuous deployment: у continuous delivery production-реліз запускається вручну, а в continuous deployment — автономно після успішного проходження попередніх етапів.;== TeamCity у K2 ERP ==&lt;br /&gt;
&lt;br /&gt;
* відстежувати зміни;&lt;br /&gt;
* запускати build після commit;&lt;br /&gt;
* запускати build для pull request;&lt;br /&gt;
* показувати автора змін;&lt;br /&gt;
* відображати changelog;&lt;br /&gt;
* прив’язувати build до конкретного commit;&lt;br /&gt;
* повертати статус перевірки в репозиторій.; &amp;#039;&amp;#039;&amp;#039;Зверніть увагу:&amp;#039;&amp;#039;&amp;#039; TeamCity сам не пише код і не виправляє помилки.; JetBrains описує TeamCity як CI/CD-сервер, а його build-система складається із сервера та build agents.; # Запускається build configuration.; &amp;#039;&amp;#039;&amp;#039;Build Agent&amp;#039;&amp;#039;&amp;#039; — це окремий бізнес-процес або машина, яка фактично виконує збірку.; &amp;#039;&amp;#039;&amp;#039;CI/CD&amp;#039;&amp;#039;&amp;#039; означає &amp;#039;&amp;#039;&amp;#039;Continuous Integration&amp;#039;&amp;#039;&amp;#039; і &amp;#039;&amp;#039;&amp;#039;Continuous Delivery&amp;#039;&amp;#039;&amp;#039; або &amp;#039;&amp;#039;&amp;#039;Continuous Deployment&amp;#039;&amp;#039;&amp;#039;.;[[Технічне завдання: Редактор ER-моделей K2 ERP]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
У TeamCity або пов’язаних системах бажано зберігати:&lt;br /&gt;
&lt;br /&gt;
[[Технічне завдання: Редактор BP-моделей K2 ERP]]&lt;br /&gt;
&lt;br /&gt;
Основні задачі TeamCity:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;TeamCity On-Premises&amp;#039;&amp;#039;&amp;#039; — це варіант, коли TeamCity Server встановлюється на сервері компанії або в її хмарній інфраструктурі.; &amp;#039;&amp;#039;&amp;#039;Інтеграційний акцент:&amp;#039;&amp;#039;&amp;#039; для великих команд TeamCity краще налаштовувати через Kotlin DSL або шаблони.; * Gradle;&lt;br /&gt;
* Maven;&lt;br /&gt;
* Ant;&lt;br /&gt;
* .NET;&lt;br /&gt;
* command line;&lt;br /&gt;
* PowerShell;&lt;br /&gt;
* Docker;&lt;br /&gt;
* npm;&lt;br /&gt;
* Python;&lt;br /&gt;
* тестові runner-и;&lt;br /&gt;
* deployment runner-и;&lt;br /&gt;
* власні скрипти.; &amp;#039;&amp;#039;&amp;#039;Для K2 ERP:&amp;#039;&amp;#039;&amp;#039; TeamCity бажано використовувати як центральний CI/CD-сервер для модулів системи.;[[SAF-T UA]]&lt;br /&gt;
Для .NET-проєктів TeamCity має змогу запускати:&lt;br /&gt;
&lt;br /&gt;
# TeamCity успішно завершує CI-збірку.;== Для чого потрібен TeamCity ==&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
TeamCity застосовується у Java.; TeamCity має змогу використовувати &amp;#039;&amp;#039;&amp;#039;Kotlin DSL&amp;#039;&amp;#039;&amp;#039; для опису build configurations як коду.; &amp;#039;&amp;#039;&amp;#039;Build Trigger&amp;#039;&amp;#039;&amp;#039; визначає, коли запускати збірку.; # Запуск frontend-тестів.;== Типовий сценарій CD для K2 ERP ==&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;div style=&amp;quot;background:#f3e5f5; border-left:5px solid #8e24aa; padding:12px; margin:12px 0;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#ede7f6; border-left:5px solid #5e35b1; padding:12px; margin:12px 0;&amp;quot;&amp;gt;&lt;br /&gt;
=== VCS Root ===&lt;br /&gt;
&lt;br /&gt;
переважні аспекти Configuration as Code:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Для команди розробки:&amp;#039;&amp;#039;&amp;#039; найчастіше TeamCity налаштовують так, щоб build запускався автономно після змін у репозиторії.;[[Е-ТТН]]&lt;br /&gt;
&lt;br /&gt;
 name = &amp;quot;Build&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* збірки backend-сервісів;&lt;br /&gt;
* збірки frontend;&lt;br /&gt;
* запуску unit-тестів;&lt;br /&gt;
* запуску інтеграційних тестів;&lt;br /&gt;
* перевірки модулів ЕДО;&lt;br /&gt;
* перевірки інтеграцій з ДПС;&lt;br /&gt;
* перевірки інтеграцій з Medoc REST API;&lt;br /&gt;
* перевірки інтеграцій з EDIN, СОТА, FREDO;&lt;br /&gt;
* перевірки SAF-T UA XML;&lt;br /&gt;
* збірки Docker-образів;&lt;br /&gt;
* deployment у тестове середовище;&lt;br /&gt;
* deployment у production після підтвердження;&lt;br /&gt;
* зберігання артефактів релізів.; Continuous Integration означає, що зміни коду регулярно потрапляють у спільний репозиторій, після чого автономно запускається збірка для раннього виявлення проблем.; Типові тригери:&lt;br /&gt;
&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* unit-тести;&lt;br /&gt;
* integration-тести;&lt;br /&gt;
* API-тести;&lt;br /&gt;
* UI-тести;&lt;br /&gt;
* smoke-тести;&lt;br /&gt;
* regression-тести;&lt;br /&gt;
* performance-тести залежно від процесу.; Під час роботи з TeamCity можуть виникати такі проблеми:&lt;br /&gt;
&lt;br /&gt;
== Загальний характеристика ==&lt;br /&gt;
&lt;br /&gt;
[[СОТА]]&lt;br /&gt;
&lt;br /&gt;
У build logs не варто виводити:&lt;br /&gt;
JetBrains серед можливостей TeamCity окремо вказує configuration as code, customization and extensibility, metrics and insights, CI, test automation, security and compliance.; # Ручне підтвердження production deployment.; # Розробник вносить зміни в компонент K2 ERP.; vcs {&lt;br /&gt;
&lt;br /&gt;
== Configuration as Code ==&lt;br /&gt;
&lt;br /&gt;
 [[SaaS]]&lt;/div&gt;</summary>
		<author><name>R</name></author>
	</entry>
</feed>