top of page

Від git-тега до живого сервера: наш конвеєр релізів

Фото автора: Marcel Dütscher
Marcel Dütscher
7 лип.
Читати 1 хв

Реліз Blocks Beyond The Stars сьогодні складається з однієї команди: надіслати git-тег. Усе подальше робить машина. У цій статті я покажу наш конвеєр CI/CD — і чому зусилля окупаються навіть для хобі-проєкту.


Робочий процес релізу. Щойно надсилається тег на кшталт v0.7.4, GitHub Actions збирає повний пакет: інсталятори для Windows (setup, portable, MSI), збірку для Linux, збірку WebGL для браузера та Docker-образ для сервера — шість артефактів з одного тега. Номер версії береться з самого тега; джерело істини лише одне.


Робочий процес розгортання. Другий робочий процес доставляє нові версії на сервер. Для нас було важливо мати продакшн-шлюз: розгортання починається лише після явного схвалення. Жодного випадкового «ой, це був продакшн». Сам сервер фіксує версію гри в конфігураційному файлі — кожен світ, що прокидається, автоматично стартує з новою версією, а запущені світи ніхто не переривається.


Урок, який довелося вивчити: виправлення в ігровому клієнті доходять до гравців лише зі справжнім релізом. Наш клієнт оновлюється сам через Velopack — хто встановив гру, отримує оновлення лише тоді, коли ми публікуємо нову версію. Влите виправлення в головній гілці нікому не допомагає, поки не буде тега. Звучить очевидно, але не раз ми дивувалися, чому «виправлена» помилка досі на місці.


А браузер? Збірка WebGL потрапляє на сервер як ZIP і активується заміною каталогу — старий каталог лишається як запасний. Маленький файл version.txt показує, що саме зараз працює.


Увесь цей апарат коштував кількох вихідних — і окуповується знову з кожним релізом.

Останні пости

Дивитися всі
Чому нова версія називається 2026.7.19, а не 0.9.2 🗓️

Хто оновлюється сьогодні, перестрибує з версії 0.9.1 на 2026.7.19. Це схоже на помилку друку, але це навмисне рішення: ми змінили схему версіонування, від «семантичних» версій до версій за датою (рік.

 
 

Коментарі


Коментування цього посту більше не доступне. Зверніться до власника сайту, щоб дізнатися більше.
bottom of page