С недавней поры, обновления WorkShop аддона прекращены. Вместо него мы создали альтернативную версию автодоната, которая лишена изьянов в сложности установки, а также обновлений аддона
Одним из преимуществ перехода с WorkShop на GitHub версию является то, что весь код теперь абсолютно публичен и вы можете просматривать все изменения или свободно его редактировать с использованием всех прелестей Git для синхронизации ваших изменений с нашими
Как сделать свою копию IGS (InGameShop)
Если еще не установлен, то установите Github Desktop. Если вы ранее с ним не работали, то для предотвращения страданий закройте тему .
Теперь зайдите на страницу нашего репозитория и сделайте его форк: GitHub - GM-DONATE/IGS: 🛍 Внутриигровой магазин для Garry's Mod https://git.io/IGS
Теперь уже в вашем репозитории зайдите на вкладку Actions и включите workflows:
Откройте GitHub Desktop, скачайте ваш репозиторий, внесите желаемые изменения и сделайте пуш изменений в реп
Чтобы сервер работал именно с вашей версией IGS, а не нашей, откройте на вашем сервере /addons/igs-modification/lua/autorun/l_ingameshopmod.lua
и замените значение переменной IGS_REPO на ваш репозиторий
При перезагрузке сервера вы столкнетесь с ошибкой скачивания superfile.json. Это потому что скрипт будет искать его в релизах, но когда вы сделали форк, то релизы не перенеслись (особенность GitHub).
Для правильного создания релиза придется открыть консоль на вашем компьютере (где установлен GitHub desktop), перейти к папке с репозиторием и ввести git tag 210801 -am "Описание релиза"
. 210801 замените на текущий ГодМесяцДень (ГГММДД). Это обязательный формат тега. По тегам загрузчик определяет, когда вышла новая версия и что пора обновиться, поэтому неправильный тег может все сломать.
Если вы все сделали правильно, включили actions, сделали пуш изменений в репозиторий и создали локальный тег, то самое время создать сам релиз. Для этого введите git push origin 210801
. Команда отправит тег в репозиторий, а GitHub Actions самостоятельно сделает релиз
Теперь можно перезагружать игровой сервер
Создание обновлений
Обновления делаются подобно созданию релиза с одним нюансом. Если вы сделали небольшие изменения, которые не ломают обратную совместимость, новый тег должен выглядеть по формату ТЕКУЩИЙТЕГ.1. Например, 210801.1
, 210801.2
и тд. Это позволяет выкатывать патчи к старым версиям или “мягко” обновлять текущую. Тег всегда должен увеличиваться
Как удобно вести разработку
#todo. dev сервер с полной копией репозитория, luadev, prod, где только igsmodification, Эффективная разработка в Garry's Mod | Блог _AMD_
НЕ НУЖНО ДЕЛАТЬ ФОРК ЕСЛИ…
Вы просто хотите убрать какую-то иконку, заменить какой-то текст, добавить мелочный функционал или изменить скин донат меню? Все это можно сделать без вмешательства в код IGS. Напишите нам в gm-donate.net/support или создайте тему в разделе support и мы постараемся вам помочь
#TODO
- В каких случаях стоит делать форк
- Как удобно разрабатывать IGS с форком и как правильно деплоить его на сервер
- Добавить скриншотов с созданием релиза
- Снять видео?