universal-ci-cd-scripts/README.md

44 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.