Skip to content

CrazyPandaLimited/BuilderCLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание

Интерфейс командной строки для сборки билдов.Позволяет добавлять свои опции и шаги сборки.

Использование CLI.Build

Порядок сборки:

  • Определяем последовательность шагов.
  • Находим все опции.
  • Обрабатываем параметры командной строки и переменных окружения.
  • Выполняем шаги, реализующие IRunPreBuild.
  • Выполняем шаги, реализующие IRunPostBuild в обратном порядке.

Создание нового шага

Чтобы добавить шаг в процесс сборки нужно создать класс и реализовать интерфейс (или оба):

  • IRunPreBuild - если действия необходимо выполнить до сборки Player'a
  • IRunPostBuild - если действия необходимо выполнить после сборки Player'a

Помимо этого вы можете расширить один из встроенных шагов - в таком случае будет выполнен именно наследованный шаг. В этом случае вы можете повлиять на его порядок выполнения, однако требования к порядку от базового класса все равно останутся.

Во время выполнения у вас будет доступ к интерфейсу IStepLocator. С его помощью вы можете получить доступ к свойствам других шагов (например узнать целевую платформу или список сцен).

Порядок выполнения шагов определяется атрибутами:

  • RunBefore - указывает перед какими шагами должен быть выполнен текущий.
  • RunAfter - указывает после каких шагов должен быть выполнен текущий.

На основе этих атрибутов система сама вычислит в каком порядке нужно будет выполнить имеющиеся шаги. Этот порядок можно увидеть в окне Unity Core → Build Inspector

Создание новой опции

Для создания опции используется атрибут Option, в котором задается имя опции. Имя указывается без символа -, который пишется только в командной строке

Вы можете отметить этим атрибутом:

  • Свойство. У него обязательно должен быть set метод (публичный или приватный)
  • Метод. У него обязательно должен быть 1 аргумент (опциональные аргументы тоже поддерживаются)

Если ваши опции не соответствуют требованиям то произойдет исключение. Вы можете убедится, что все хорошо, заглянув в окно Unity Core → Build Inspector

Тип опции определяется либо типом свойства, либо типом первого аргумента метода.

Поддерживаются следующие типы:

  • Все примитивные типы: int, bool, float, double, etc
  • Строки
  • Enum'ы
  • Пользовательские типы, для которых определен TypeConverter

Конвертация из строки в тип опции произойдет автоматически.

Задание опций

В общем случае опции передаются через командную строку:

Unity.exe [опции Unity] -executeMethod CLI.Build -option1=true -option2=123 -option3="Path to some folder"

Опции можно указывать в следующих форматах:

-<OptionName>=<OptionValue>

-<OptionName>="<OptionValue>" - в случае, когда значение может содержать пробел

-<OptionName>=[ $(EnvValue) | ${EnvValue} ] - здесь EnvValue задает имя переменной окружения, в которой находится значение

Так же опции ищутся в переменных окружения с теми же именами, что и опции (например buildDir)

Окно Build Inspector

Это окно можно найти в меню Unity Core → Build Inspector.

Окно отображает следующую информацию:

  • Build Plan - шаги сборки и их порядок.
  • Available options - список всех доступных опций в текущем проекте. Рядом есть поле для поиска.
  • Selected options - список опций и их значения для выполнения сборки из редактора.

Кнопки внизу окна:

  • Run build with options - запускает билд с заданными значениями опций. Удобный способ локально проверить сборку с парметрами взятыми с билд-сервера.
  • Validate command line - проверяет, что все опции корректно парсятся. Если что-то идет не так - показывает в какой опции проблема.
  • Copy command line - копирует командную строку с заполненными значениями выбранных опций, чтобы можно было сразу вставить в билд-скрипт.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •  

Languages