Автоматизация сборки модов
Автоматизация сборки позволяет избавить вас от рутинных задач и значительно упростить процесс дистрибуции модов.
Для автоматизации нужно создать репозиторий с исходным кодом и настроить CI/CD‑пайплайн, который будет компилировать вашу модификацию при установке тега в системе контроля версий.
Необходимые инструменты
- Настроенное окружение для
Python‑модов (см. инструкцию по настройке окружения для Python) - Git — система контроля версий, с помощью которой будет загружен исходный код игры.
Весь процесс полностью бесплатен.
Создание репозитория системы контроля версий
В качестве хранилища исходного кода можно использовать любой популярный сервис, однако наиболее распространён — GitHub. На его примере рассмотрим процесс автоматизации сборки.
Если у вас ещё нет аккаунта на GitHub — создайте его.
GitHub позволяет бесплатно создавать как публичные, так и приватные репозитории с исходным кодом и отслеживанием изменений.
- На главной странице GitHub нажмите на свой профиль и выберите
Repositories.
Меню профиля

- Нажмите на кнопку
Newдля создания нового репозитория.
- Придумайте название репозитория, например
my-first-mod. - Выберите
PublicилиPrivateв зависимости от того, хотите ли вы, чтобы ваш мод был доступен всем или только вам. - Не меняйте остальные настройки и нажмите на кнопку
Create repository.
Связывание локального проекта с репозиторием
После создания репозитория вам будет показана страница с инструкцией по связыванию локального проекта с удалённым репозиторием. Но перед этим необходимо подготовить локальный проект.
В корне вашего проекта создайте файл .gitignore со следующим содержимым:
*.pyc
*.wotmod
*.mtmod
wot-src/
as3/binЭтот файл указывает Git, какие файлы и папки не нужно отслеживать. Мы исключаем скомпилированные файлы, архивы модов и папки с исходным кодом игры.
После этого откройте терминал в VSCode (Ctrl+` или Terminal -> New Terminal) и выполните команды, чтобы связать локальный проект с удалённым репозиторием.
Инициализируйте локальный репозиторий:
git initЗадайте имя основной ветки:
git branch -M mainПривяжите удалённый репозиторий, заменив <your-username> и <your-repo> на свои значения:
git remote add origin https://github.com/<your-username>/<your-repo>.gitСсылку на репозиторий можно найти на странице репозитория в GitHub, она будет выглядеть примерно так:
https://github.com/SoprachevAK/my-first-mod.git.
Отправка первого коммита
Коммит (commit) — зафиксированное изменение в проекте. Коммиты позволяют отслеживать историю, возвращаться к предыдущим версиям и работать над проектом совместно.
Чтобы отправить первый коммит, откройте в VSCode вкладку Source Control и в подразделе Changes у вас будут отображаться все файлы, которые были изменены или добавлены в вашем проекте. 
Наведите курсор на Changes и нажмите на иконку +, чтобы отметить все файлы как готовые к коммиту (Staged Changes). Введите сообщение, например Initial commit, и нажмите Commit. 
Если вылезла ошибка
Если вы раньше не настраивали имя пользователя и email в Git, при попытке сделать коммит может появиться ошибка.

В этом случае откройте терминал в VSCode (Ctrl+` или Terminal -> New Terminal) и выполните следующие команды, заменив <your-name> и <your-email> на ваши значения:
git config --global user.name "<your-name>"
git config --global user.email "<your-email>"Это установит имя и email для всех будущих коммитов. Затем повторите попытку.
Если не хотите раскрывать email, используйте служебный адрес GitHub: перейдите в Настройки профиля GitHub -> Emails, включите Keep my email addresses private и используйте адрес вида <your-username>@users.noreply.github.com.
После того, как вы сделали коммит, вам нужно отправить его в удалённый репозиторий. Для этого в том же месте нажмите на кнопку Publish branch.
Если это первый пуш в репозиторий, потребуется авторизация через GitHub‑аккаунт.
Готово! Вы успешно отправили первый коммит в удалённый репозиторий. Теперь вы можете обновить страницу вашего репозитория на GitHub и увидеть там ваши файлы.

Настройка автоматической сборки
Автоматизация в GitHub осуществляется с помощью GitHub Actions. Это инструмент, который предоставляет виртуальную машину для выполнения скриптов. На ней мы запускаем build‑скрипт, а результат (архив с модом) загружается в релизы репозитория.
Для настройки автоматической сборки создайте папку .github/workflows, скачайте файл release.yaml и поместите его туда.
Так как в GitHub Actions используется Ubuntu, а наш скрипт сборки написан для Windows, нужно создать аналогичный build.sh для Linux.
Скачайте файл build.sh и поместите его в корень вашего проекта (рядом с build.bat). На первых строках есть раздел с настройками, которые вам нужно изменить под ваш мод:
# Настройки
MOD_NAME="my.first-mod"
MOD_ENTRY=mod_myFirstMod.pyЕсли у вас есть AS3 часть
Если в моде есть AS3‑часть, создайте as3/build.sh по аналогии с build.bat для сборки на Linux. Если нет — пропустите шаг.
mxmlc -load-config+=build-config.xml --output=bin/my.first_mod.HelloWorldWindow.swf src/my/first_mod/HelloWorldWindow.asКоманды в файле должны соответствовать тем, что в as3/build.bat для сборки AS3‑части. Если несколько SWF‑файлов — добавьте команды mxmlc для каждого.
Отправка изменений в репозиторий
Отправьте изменения в репозиторий:
- На вкладке
Source Controlнажмите+, чтобы отметить все файлы как готовые (Staged Changes). - Введите сообщение, например
Setup CI/CD, и нажмитеCommit. - Нажмите
Sync Changes, чтобы отправить изменения.

Запуск сборки
Чтобы запустить сборку, создайте тег. Тег — метка, указывающая на конкретный коммит. Он используется как версия вашего мода.
- Откройте терминал в VSCode (
Ctrl+`илиTerminal -> New Terminal) и выполните команду, заменив1.0.0на версию вашего мода:
git tag 1.0.0- Отправьте тег в удалённый репозиторий:
git push --tags
Совет
Если отправили неправильный тег и хотите удалить:
git tag -d 1.0.0
git push origin :refs/tags/1.0.0Проверка Actions
Откройте вкладку Actions. Вы увидите запущенный workflow release. Нажмите, чтобы посмотреть детали.
Дождитесь завершения. При успехе — зелёная галочка.

Если ошибка — красный крестик. Нажмите, чтобы посмотреть логи и причину.
Информация о релизе
После успешной сборки перейдите во вкладку Releases. Там появится релиз с версией тега и вложением .mtmod.

Нажмите иконку карандаша, чтобы добавить описание.

Редактирование релиза
Добавьте описание изменений и уберите галочку This is a pre-release, если хотите сделать релиз актуальным. Затем нажмите Update release.

Результат
Поздравляем! Автоматическая сборка настроена. Каждый раз при создании тега сборка запускается автоматически, а результат появляется в релизах.
Другие пользователи смогут скачать актуальную версию мода во вкладке Releases вашего репозитория.

Andrei Soprachev