| gradle | ||
| src/main/groovy | ||
| .gitignore | ||
| build.gradle | ||
| ci.example.properties | ||
| Example.Jenkinsfile | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| install.sh | ||
| README.md | ||
| settings.gradle | ||
Universal CI/CD Scripts
CI/CD скрипты на груви для большинства проектов tswf.
Назначение
Настройка всей сборки одним файлом - ci.properties
Как работает
- Jenkins поднимает DooD контейнер (можно в целом заменить на DinD с SysBOX со временем), с груви и докером.
- CI скрипты на груви:
- Выполняют сборку проекта в Docker
- Если установлены специальные релизные тэги, то создает релиз в Gitea с нужными артефактами
- Если установлены специальные деплой-тэги, то деплоит через обновление тэга в docker-compose файле по SSH на целевом сервере нужный образ.
- CI скрипты на груви:
Тэги
Понимание того, что не нужно ограничиваться простым билдом приходит из установленных тэгов.
По-умолчанию тэги бывают четырех видов:
Деплой тэги
Начинаются с префикса deploy-, или переопределенных в .ci.properties
Если при сборке коммита есть такой тэг - собранный докер образ будет опубликован и прописан в docker-compose через SSH файл согласно настройкам в .ci.properies
Артефакиные тэги
Начинаются с префикса binaries-
Если при сборке коммита есть такой тэг - будут собраны все артефакты и создан релиз в гите.
Докер тэги
Начинаются с префикса docker-
Если при сборке коммита есть такой тэг - будет собран и запушен Docker образ приложения.
Релизные тэги.
Начинаются с префикса release-, или того, который пользователь переопределит в .ci.properties
Если при сборке пайплайн видит, что установлен релизный тэг, то он постарается создать к собранному коммиту релиз в Gitea, а также запушить собранный образ Docker в указанную в .ci.propertiesregistry.