6.2 KiB
✅ Чеклист подготовки релиза XC_VM
Пошаговое руководство по подготовке и публикации релиза XC_VM.
📚 Навигация
- 🔢 1. Обновить версию
- 🧹 2. Удалённые файлы (автоматически)
- 🧪 3. Предрелизная проверка
- ⚙️ 4. Сборка архивов
- 📝 5. Changelog
- 🚀 6. GitHub релиз
- 📢 7. После релиза
🔢 1. Обновить версию
Изменить константу версии и отключить режим разработки в:
src/core/Config/AppConfig.php
Быстрые команды:
sed -i "s/define('XC_VM_VERSION', *'[0-9]\+\.[0-9]\+\.[0-9]\+');/define('XC_VM_VERSION', 'X.Y.Z');/" src/core/Config/AppConfig.php
sed -i "s/define('DEVELOPMENT', true);/define('DEVELOPMENT', false);/" src/core/Config/AppConfig.php
⚠️ Убедитесь, что
DEVELOPMENTустановлен вfalseперед каждым релизом.
Закоммитить:
git add src/core/Config/AppConfig.php
git commit -m "Bump version to X.Y.Z"
git push
💡 Замените
X.Y.Zна актуальную версию.
🧹 2. Удалённые файлы (автоматически)
Очистка файлов полностью автоматизирована. Ручных шагов не требуется.
Как это работает:
make main_update/make lb_updateвнутри вызываетmake delete_files_list- Генерируется
dist/migrations/deleted_files.txt(diff удалённых файлов с последнего тега) - Файл упаковывается в архив обновления как
migrations/deleted_files.txt - При
php console.php update post-updateвызываетсяMigrationRunner::runFileCleanup(), который автоматически удаляет перечисленные файлы
⚠️ Только проверка: после сборки просмотрите
dist/migrations/deleted_files.txt— убедитесь, что в списке нет критичных файлов.
🧪 3. Предрелизная проверка
Перед публикацией убедитесь, что сборка работает:
Проверка синтаксиса PHP:
make syntax_check
Тестовая установка в Docker (см. tools/test-install/):
cd tools/test-install
docker compose up -d --build
docker exec -it xc_test bash /opt/auto_install.sh
✅ Убедитесь, что панель открывается по
http://localhost:8880и вход в админку работает.
Security-сканирование (запускается автоматически при push через .github/workflows/security-scan.yml):
tools/php_syntax_check.sh
tools/run_scan.sh
⚙️ 4. Сборка архивов
🤖 Production-сборки выполняются через GitHub Actions (
.github/workflows/build-release.yml) при публикации релиза. Файлы прикрепляются автоматически.
Для локальной сборки:
make new
make lb
make main
make main_update
make lb_update
После сборки в dist/ должны быть:
| Файл | Описание |
|---|---|
XC_VM.zip |
Установочный архив MAIN |
update.tar.gz |
Архив обновления MAIN |
loadbalancer.tar.gz |
Установочный архив LB |
loadbalancer_update.tar.gz |
Архив обновления LB |
hashes.md5 |
Контрольные суммы MD5 |
Проверка целостности:
cd dist && md5sum -c hashes.md5
📝 5. Changelog
Сгенерировать лог коммитов:
PREV_TAG=$(curl -s https://api.github.com/repos/Vateron-Media/XC_VM/releases/latest \
| grep -Po '"tag_name":\s*"\K[^"]+')
echo "Предыдущий релиз: $PREV_TAG"
git log --pretty=format:"- %s (%h)" "$PREV_TAG"..main > dist/changes.md
Обновить публичный changelog по ссылке: XC_VM_Update/changelog.json
{
"version": "X.Y.Z",
"changes": [
"Описание изменения 1",
"Описание изменения 2"
]
}
💬 Описания должны быть краткими — фокус на пользовательских улучшениях и исправлениях.
🚀 6. GitHub релиз
- Перейти на GitHub Releases
- Создать новый релиз с тегом
X.Y.Z - Вставить changelog в описание релиза
- Опубликовать без прикрепления файлов — GitHub Actions соберёт и прикрепит их
После публикации workflow автоматически:
- Соберёт все 4 архива + контрольные суммы
- Прикрепит их к релизу
- Отправит Telegram-уведомление через
release-notifier.yml
✅ Дождитесь завершения Actions и проверьте, что все файлы доступны для скачивания.
📢 7. После релиза
- Проверить, что все 5 файлов прикреплены к релизу
- Скачать и проверить
md5sum -c hashes.md5 - Убедиться, что Telegram-уведомление отправлено
- Обновить
changelog.jsonв репозиторииXC_VM_Update(если ещё не сделано) - Закрыть связанные GitHub issues/milestones