# Непрерывная интеграция `Gsf-cli` может быть встроена в конвейер непрерывной интеграции для публикации решений и комплектов сборки. ## Настройка в linux 1. Возьмите исходники из git 2. Установите необходимые пакеты ``` sudo bin/installpkg.sh ``` 3. Установите `Gsf-cli` ``` bin/install.sh ``` 4. Переведите утилиту в автономный режим ``` ./config.sh enable_headless ``` 5. Загрузите конфигурацию ``` ./config.sh load -f config.json ``` 6. Запустите сборку ``` ./manage.sh --all build ``` ## Сборка проекта Алгоритм сборки: 1. Если необходимо, загрузить исходный код проекта. 2. Если необходимо, загрузить сервер приложения \ Сервер приложения будет загружен либо из конфигурации проекта либо из настройки проекта. Настройка проекта может перекрывать конфигурацию в случаи если сервер берется не из комплекта сборки. Если решение собирается из комплекта сборки перекрытие запрещено так как это может привести к конфликтам. 3. Если необходимо, загрузить плагин 4. Скомпилировать проект 5. Если необходимо опубликовать артефакты \ Необходимость публикации определяется настройками в` project.yaml` и конфигурацией `gsf-cli` ## Сборка релиза Релиз собирается только 1 раз, после успешной сборки повторный запуск игнорирует изменения до тех пор пока не изменится версия релиза. Это гарантирует неизменность артефактов в репозитории. В случаи если допустить изменяемость релизов в репозитории невозможно гарантировать корректную доставку артефактов так как maven загружает релиз только 1 раз и далее не проверяет его на изменения. ## Сборка snapshot Snapshot версия собирается и публикуется на каждый запуск. ```{tip} Для обновление перевыпущенных артефактов воспользуйтесь командой `sbt update;updateClassifiers` Подробнее смотрите [управления зависимостями в sbt](https://www.scala-sbt.org/1.x/docs/Dependency-Management-Flow.html#Notes+on+SNAPSHOTs) ```