TeamCity — CI/CD сервер от JetBrains (создателей IntelliJ IDEA, PyCharm). Позиционируется как enterprise CI/CD с фокусом на производительность: умное кеширование, параллельные сборки, инкрементальное тестирование (только изменившихся частей кода). Глубокая интеграция с IDE JetBrains.
Основные возможности
- Build Chains — зависимости между сборками: тестирование → сборка → деплой.
- Smart Tests Reorder — запускать сначала тесты, которые упали в прошлый раз.
- Pre-tested Commits — проверить код до merge в основную ветку.
- Агенты — build agents выполняют сборки. Можно добавить на Windows, Linux, macOS.
- DSL-конфигурация — описание билдов в Kotlin DSL или XML.
Kotlin DSL пример
// .teamcity/settings.kts
project {
buildType {
id = BuildId("Deploy")
name = "Deploy to Production"
vcs { root(DslContext.settingsRoot) }
steps {
script {
name = "SSH Deploy"
scriptContent = """
ssh deploy@server.com '
cd /var/www && git pull && pm2 restart app
'
"""
}
}
triggers {
vcs { branchFilter = "+:main" }
}
}
}
TeamCity vs GitHub Actions vs Jenkins
- TeamCity — enterprise, платный для больших команд, мощный, JetBrains-интеграция.
- GitHub Actions — бесплатный, простой, хорошо для GitHub-проектов.
- Jenkins — open-source, максимальная гибкость, но требует настройки.
История
TeamCity выпущен JetBrains в 2006 году. Первая версия с веб-интерфейсом управления сборками. TeamCity 10 (2016) добавил .NET Core поддержку. TeamCity 2018 — Kotlin DSL. TeamCity Cloud (SaaS версия) — 2021. В 2024 году активно конкурирует с GitHub Actions и GitLab CI.
Связь с хостингом
TeamCity устанавливается на VDS как Java-приложение. Требования: Java 11+, 8 GB RAM для комфортной работы. TeamCity Server + Agent(s) на том же или отдельных серверах. Build agent может деплоить на prod-сервер через SSH или Docker. Бесплатная Professional версия: 3 агента, 100 конфигураций.
История TeamCity
TeamCity разработан JetBrains и выпущен в 2006 году. Написан на Java/Kotlin. Версия 2.0 появилась в 2007 году с поддержкой Maven. TeamCity 2018.1 — поддержка контейнеров и Kubernetes. TeamCity Cloud (SaaS-версия) запущена в 2021 году. Бесплатная версия: 3 агента сборки и 100 конфигураций. Конкурирует с Jenkins, GitHub Actions, GitLab CI. Особенность: SmartTests — запускает только тесты, затронутые изменениями кода.
TeamCity vs Jenkins vs GitHub Actions
| Параметр | TeamCity | Jenkins | GitHub Actions |
|---|---|---|---|
| Язык конфигурации | GUI / Kotlin DSL | Groovy/YAML | YAML |
| Умный запуск тестов | да (SmartTests) | нет | нет |
| Отладка сборки | пошаговая | ограниченная | ограниченная |
| Стоимость | бесплатно/от $299/год | бесплатно | бесплатно/от $4/мес |
Практическое применение TeamCity на хостинге
TeamCity Server устанавливается на отдельный VPS (минимум 4 GB RAM), агенты сборки могут быть на других серверах или в Docker-контейнерах. CI/CD pipeline: сборка → тесты → деплой через git deploy или SSH. Интеграция с Docker Registry для хранения артефактов сборки.
Типичные ошибки
- TeamCity Server без бэкапа конфигурации — потеря истории сборок и настроек.
- Агенты с разными версиями зависимостей — непредсказуемые сборки.
- Не настроен cleanup build artifacts — диск заполняется историей сборок.