Непрерывная интеграция#

Gsf-cli может быть встроена в конвейер непрерывной интеграции для публикации решений и комплектов сборки.

Программное обеспечение которое потребуется для сборки:#

  1. Виртуальная машина или контейнер на базе linux

  2. Java 8

  3. Sbt

  4. Утилита gsf-cli

Пример шагов по настройки сборщика:#

1.Установите sbt (например в /home/worker/app/sbt)

  1. Скачать и распаковать утилиту gsf-cli в каталог пользователя (например /home/worker/workspace/build/gsf-cli)

  2. Заполнить конфигурационный файл утилиты 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#

  1. Перейдите в каталог gsf-cli

cd ~/workspace/build/gsf-cli
  1. Установите необходимые пакеты


sudo bin/installpkg.sh

  1. Установите необходимые зависимости


bin/initvenv.sh

  1. Если требуется авторизация в репозиториях

./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
  1. Переведите утилиту в автономный режим


./config.sh enable_headless

  1. Загрузите конфигурацию


./config.sh load -f config.json

  1. Запустите сборку


./manage.sh --all build

Сборка проекта#

Алгоритм сборки:

  1. Если необходимо, загрузить исходный код проекта.

  2. Если необходимо, загрузить сервер приложения \

Сервер приложения будет загружен либо из конфигурации проекта либо из настройки проекта.

Настройка проекта может перекрывать конфигурацию в случаи если сервер берется не из комплекта сборки.

Если решение собирается из комплекта сборки перекрытие запрещено так как это может привести к конфликтам.

  1. Если необходимо, загрузить плагин

  2. Скомпилировать проект

  3. Если необходимо опубликовать артефакты \

Необходимость публикации определяется настройками в project.yaml и конфигурацией gsf-cli

Сборка релиза#

Релиз собирается только 1 раз, после успешной сборки повторный запуск игнорирует изменения до тех пор пока

не изменится версия релиза.

Это гарантирует неизменность артефактов в репозитории.

В случаи если допустить изменяемость релизов в репозитории невозможно гарантировать корректную

доставку артефактов так как maven загружает релиз только 1 раз и далее не проверяет его на изменения.

Сборка snapshot#

Snapshot версия собирается и публикуется на каждый запуск.

Совет

Для обновление перевыпущенных артефактов воспользуйтесь командой sbt update;updateClassifiers

Подробнее смотрите управления зависимостями в sbt