Обзор утилиты Smart Builder: автоматизация сборки проектов для разработчиков

Введение

Smart Builder — это специализированная утилита, разработанная для автоматизации процесса сборки проектов. Инструмент создан с целью упростить работу разработчиков как в локальной среде, так и в системах непрерывной интеграции, так и в обычных разработческих окружениях, что расширяет сценарии его применения в сравнении с аналогами.

Основные возможности

Smart Builder представляет собой заранее заготовленные сценарии комманд, позволяя напрямую читать и редактировать конфигурационные файлы в проекте без установки сторонних утилит.

Для чтения и редактирования поддерживаются следующие форматы: YAML, XML, JSON, INI.
Также поддерживается изменение размеров и загрузка по url изображений форматов JPEG и PNG.

Кроме этого присутствует интеграция системы управления версиями git. В сценариях которой присутствует такие возможности как поиск ветки по части названия, получение имени текущей ветки, pull текущей ветки, submodule и прочие сценарии.

Также есть готовые сценарии для поддержки управления системами виртуализации на основе VirtualBox (WebOS) и Qemu (Tizen).
Для WebOS и Tizen 3+ присутствуют сценарии для запуска режима отладки и инспектирования через DevTools.
Также для этих операционных систем присутствуют сценарии для сборки, установки, запуска пакетов через Ares (WebOS) и Tizen SDK.

Дополнительно присутствует сценарий загрузки файлов и директорий по FTP.

Сама утилита имеет CLI автокомплит, что избавляет от необходимости помнить название всех задач.

Есть возможность посмотреть, что именно будет делать задача без фактического её запуска. Что значительно упрощает процесс отладки при написании сценариев своих задач.

Размер утилиты со всеми зависимостями на данный момент составляет всего 70 мб, что делает её достаточно компактной для своих возможностей.

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

Утилита оптимизирована для работы с проектами среднего масштаба, где сложные enterprise-решения могут оказаться избыточными.

Практическое применение

Для начала работы с Smart Builder достаточно клонировать репозиторий и выполнить стандартную настройку проекта. Утилита предоставляет понятные инструкции по установке и конфигурации, что позволяет интегрировать её в существующие проекты за короткое время.

Сначала по порядку выполните:

git clone https://github.com/hitman249/smart-builder.git cd smart-builder npm i npm run build npm i -g ./

Данное действие склонирует репозиторий, установит в нём зависимости и установит глобально, после чего в консоли появится команда "smart-builder".

По желанию можно установить автокомплит командой

sudo apt install bash-completion

И добавлением строк в файлы ~/.bashrc и ~/.zshrc

_smart_builder_complete() { COMPREPLY=($(smart-builder -L)) } complete -F _smart_builder_complete smart-builder

Чтобы применить в текущей сессии терминала выполните source ~/.bashrc или source ~/.zshrc

После этих шагов можно приступать к конфигурированию вашего проекта.

В директории в которой выполняется команда "smart-builder" должна находиться папка ".smart-builder" и желательно, но не обязательно файл ".env".

Конфигурационные сценарии проекта работают следующим образом.

В корне папки ".smart-builder" создаются подпапки для именования префикса задач. Названия этих папок будут указываться каждый раз когда вы захотите выполнить задачу, например:

smart-builder webos:debug

Где:
webos - название папки
debug - название задачи

Будьте внимательны при выборе имени задачи, они не уникальны на каждый *.yaml файл, т.к. все файлы внутри одной папки сливаются в один при выполнении.

Примеры готовых сценариев вы можете посмотреть в репозитории, а также почитать список поддерживаемых комманд.

Справка утилиты

Usage: smart-builder [options] [target] Options: -e, --env-file <file> ENVFILE -i, --input <value...> set env variables: SB_INPUT, SB_INPUT1, SB_INPUT2, ... -u, --update self update -v, --version version -d, --debug disables command execution -L, --list helper from BASH autocomplete -h, --help display help for command

Примеры взаимодействия с утилитой:

smart-builder -e .env webos:debug smart-builder -e .env-prod webos:release smart-builder webos:install -i 192.168.1.222
1
1 комментарий