Use CI_COMMIT_TAG for tag builds to preserve original tag format (v0.0.1 instead of v0-0-1) |
||
|---|---|---|
| .teamcity | ||
| .gitignore | ||
| README.md | ||
| docker-build-extended.yml | ||
| docker-build.yml | ||
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 |