44 lines
2.6 KiB
Markdown
44 lines
2.6 KiB
Markdown
# Universal CI/CD Scripts
|
||
|
||
CI/CD скрипты на груви для большинства проектов tswf.
|
||
|
||
# Назначение
|
||
|
||
Настройка всей сборки одним файлом - `ci.properties`
|
||
|
||
# Как работает
|
||
|
||
* Jenkins поднимает DooD контейнер (можно в целом заменить на DinD с SysBOX со временем), с груви и докером.
|
||
* CI скрипты на груви:
|
||
* Выполняют сборку проекта в Docker
|
||
* Если установлены специальные релизные тэги, то создает релиз в Gitea с нужными артефактами
|
||
* Если установлены специальные деплой-тэги, то деплоит через обновление тэга в docker-compose файле по SSH на целевом сервере нужный образ.
|
||
|
||
|
||
# Тэги
|
||
Понимание того, что не нужно ограничиваться простым билдом приходит из установленных тэгов.
|
||
|
||
По-умолчанию тэги бывают четырех видов:
|
||
|
||
## Деплой тэги
|
||
|
||
Начинаются с префикса `deploy-`, или переопределенных в `.ci.properties`
|
||
|
||
Если при сборке коммита есть такой тэг - собранный докер образ будет опубликован и прописан в `docker-compose` через SSH файл согласно настройкам в `.ci.properies`
|
||
|
||
## Артефакиные тэги
|
||
Начинаются с префикса `binaries-`
|
||
|
||
Если при сборке коммита есть такой тэг - будут собраны все артефакты и создан релиз в гите.
|
||
|
||
## Докер тэги
|
||
Начинаются с префикса `docker-`
|
||
|
||
Если при сборке коммита есть такой тэг - будет собран и запушен Docker образ приложения.
|
||
|
||
## Релизные тэги.
|
||
|
||
Начинаются с префикса `release-`, или того, который пользователь переопределит в `.ci.properties`
|
||
|
||
Если при сборке пайплайн видит, что установлен релизный тэг, то он постарается создать к собранному коммиту релиз в Gitea, а также запушить собранный образ Docker в указанную в `.ci.properties`registry.
|