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

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

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

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

  2. Java 8

  3. Sbt 1.8.2

  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://someproject.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. Зарегистрируйте приватный ключ

./config.sh register_private_key -c /home/user
  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. Если необходимо, загрузить сервер приложения Сервер приложения будет загружен либо из конфигурации проекта либо из настройки проекта. Настройка проекта может перекрывать конфигурацию в случаи если сервер берется не из комплекта сборки. Если решение собирается из комплекта сборки перекрытие запрещено так как это может привести к конфликтам.

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

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

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

Примечание

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

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

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

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

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

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

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

Сборка snapshot#

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

Совет

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

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