Go to file
Sergey Paramoshkin a3febe3f2d Split build job for branches and tags
Use CI_COMMIT_TAG for tag builds to preserve original tag format (v0.0.1 instead of v0-0-1)
2026-02-01 00:16:38 +03:00
.teamcity fix tags 2025-12-07 11:13:34 +03:00
.gitignore first commit 2025-12-07 11:10:46 +03:00
README.md first commit 2025-12-07 11:10:46 +03:00
docker-build-extended.yml Add GitLab CI templates for Docker builds 2026-02-01 00:03:11 +03:00
docker-build.yml Split build job for branches and tags 2026-02-01 00:16:38 +03:00

README.md

CI Templates

Переиспользуемые TeamCity DSL шаблоны для проектов dot-dot.ru.

Подключение к проекту

1. Добавить зависимость в pom.xml вашего проекта

<dependency>
    <groupId>ru.dot-dot.ci</groupId>
    <artifactId>ci-templates</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

2. Настроить Versioned Settings в TeamCity

В настройках проекта TeamCity → Versioned Settings:

  • Synchronization enabled: Yes
  • Project settings VCS root: выбрать VCS root вашего проекта
  • Settings format: Kotlin
  • Allow editing project settings via UI: по желанию

Добавить дополнительный VCS root для ci-templates:

  • VCS URL: git@gitea.dot-dot.ru:dot-dot/ci-templates.git
  • Checkout rules: +:.teamcity => .teamcity/ci-templates

Доступные шаблоны

DockerBuildTemplate

Базовый шаблон для сборки и публикации Docker образов.

import templates.DockerBuildTemplate

object Build : DockerBuildTemplate({
    registry = "registry.dot-dot.ru"
    dockerfile = "Dockerfile"
    tag = "%teamcity.build.branch%"
    extraHosts = listOf("nexus.dot-dot.ru:192.168.100.110")
})

PhpDockerBuildTemplate

Шаблон для PHP проектов с поддержкой Composer, линтеров и анализаторов.

import templates.PhpDockerBuildTemplate

object Build : PhpDockerBuildTemplate({
    backendDir = "backend"
    enableCs = true
    enableAnalyse = true
    composerAuth = """{"http-basic": {"nexus.dot-dot.ru": {"username": "%env.NEXUS_USER%", "password": "%env.NEXUS_PASSWORD%"}}}"""
})

Параметры

DockerBuildConfig

Параметр По умолчанию Описание
registry registry.dot-dot.ru Docker registry URL
dockerfile Dockerfile Путь к Dockerfile
tag %teamcity.build.branch% Тег образа
buildArgs --pull Аргументы docker build
dockerRegistryId PROJECT_EXT_2 ID подключения к registry в TeamCity
extraHosts [] Дополнительные хосты (host:ip)
enableVcsTrigger true Включить VCS триггер
giteaUrl https://gitea.dot-dot.ru/api/v1 URL Gitea API
giteaTokenId credentialsJSON:gitea-token ID токена Gitea

PhpDockerBuildConfig (наследует DockerBuildConfig)

Параметр По умолчанию Описание
backendDir backend Директория с PHP кодом
ciImage null CI образ для линтеров (по умолчанию {project}-ci:latest)
enableCs false Включить проверку code style
enableAnalyse false Включить статический анализ
composerAuth null Содержимое auth.json
nexusHost nexus.dot-dot.ru Хост Nexus
nexusIp 192.168.100.110 IP Nexus для /etc/hosts