Непрерывная интеграция
Contents
Непрерывная интеграция#
Gsf-cli
может быть встроена в конвейер непрерывной интеграции для публикации решений и комплектов сборки.
Программное обеспечение которое потребуется для сборки:#
Виртуальная машина или контейнер на базе linux
Java 8
Sbt
Пример шагов по настройки сборщика:#
1.Установите sbt (например в /home/worker/app/sbt)
Скачать и распаковать утилиту gsf-cli в каталог пользователя (например /home/worker/workspace/build/gsf-cli)
Заполнить конфигурационный файл утилиты gsf-cli для проекта (путь ~/workspace/build/config.json) Привет файла:
{
"sbt_home": "/home/worker/app/sbt",
"svn_path": "",
"projects": [
{
"git_branch": "main",
"jdk_home": "/usr/lib/jvm/bellsoft-java8-full-amd64/",
"name": "global-erp",
"project_source": "https://appseccode.int.corp.phosagro.ru/global_erp/global-erp-system.git",
"project_source_type": "vcs",
"publish_type": "SNAPSHOT",
"vcs_type": "git"
}
]
}
Настройка в linux#
Перейдите в каталог
gsf-cli
cd ~/workspace/build/gsf-cli
Установите необходимые пакеты
sudo bin/installpkg.sh
Установите необходимые зависимости
bin/initvenv.sh
Если требуется авторизация в репозиториях
./credential_manager.sh set -u https://git.global-system.ru -l username -p password_or_token
./credential_manager.sh set -u https://repo.global-system.ru -l username -p password
Переведите утилиту в автономный режим
./config.sh enable_headless
Загрузите конфигурацию
./config.sh load -f config.json
Запустите сборку
./manage.sh --all build
Сборка проекта#
Алгоритм сборки:
Если необходимо, загрузить исходный код проекта.
Если необходимо, загрузить сервер приложения \
Сервер приложения будет загружен либо из конфигурации проекта либо из настройки проекта.
Настройка проекта может перекрывать конфигурацию в случаи если сервер берется не из комплекта сборки.
Если решение собирается из комплекта сборки перекрытие запрещено так как это может привести к конфликтам.
Если необходимо, загрузить плагин
Скомпилировать проект
Если необходимо опубликовать артефакты \
Необходимость публикации определяется настройками в project.yaml
и конфигурацией gsf-cli
Сборка релиза#
Релиз собирается только 1 раз, после успешной сборки повторный запуск игнорирует изменения до тех пор пока
не изменится версия релиза.
Это гарантирует неизменность артефактов в репозитории.
В случаи если допустить изменяемость релизов в репозитории невозможно гарантировать корректную
доставку артефактов так как maven загружает релиз только 1 раз и далее не проверяет его на изменения.
Сборка snapshot#
Snapshot версия собирается и публикуется на каждый запуск.
Совет
Для обновление перевыпущенных артефактов воспользуйтесь командой sbt update;updateClassifiers
Подробнее смотрите управления зависимостями в sbt