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