Создание копии IGS и ее подключение к серверу

С недавней поры, обновления WorkShop аддона прекращены. Вместо него мы создали альтернативную версию автодоната, которая лишена изьянов в сложности установки, а также обновлений аддона

Одним из преимуществ перехода с WorkShop на GitHub версию является то, что весь код теперь абсолютно публичен и вы можете просматривать все изменения или свободно его редактировать с использованием всех прелестей Git для синхронизации ваших изменений с нашими


Как сделать свою копию IGS (InGameShop)

Если еще не установлен, то установите Github Desktop. Если вы ранее с ним не работали, то для предотвращения страданий закройте тему :slight_smile:.

Теперь зайдите на страницу нашего репозитория и сделайте его форк: 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


НЕ НУЖНО ДЕЛАТЬ ФОРК ЕСЛИ…

Вы просто хотите убрать какую-то иконку, заменить какой-то текст, добавить мелочный функционал или изменить скин донат меню? Все это можно сделать без вмешательства в код IGS. Напишите нам в gm-donate.ru/support или создайте тему в разделе support и мы постараемся вам помочь


#TODO

  • В каких случаях стоит делать форк
  • Как удобно разрабатывать IGS с форком и как правильно деплоить его на сервер
  • Добавить скриншотов с созданием релиза
  • Снять видео?
1 симпатия