release-and-upgrade
Release и upgrade engine
Этот документ описывает правильный порядок: сначала тестируем engine на branch, потом выпускаем tag, потом обновляем garden.
Перед release
Должно быть уже сделано:
- feature/debug branch подключена в реальном garden;
- clean build прошёл;
assert-distпрошёл;graph.jsonне пустой;searchIndex.jsonне пустой;- backlinks проверены;
- картинки проверены;
- production rebuild прошёл на тестовом garden.
См. проверка engine до release.
Merge feature branch в main
Пример для branch debug/image-asset-resolution:
cd /home/supervisor/leonid_projects/duck-garden-engine
git checkout main
git pull origin main
git merge --no-ff debug/image-asset-resolution -m "Merge image asset resolution fix"
Поднять package version
npm version patch --no-git-tag-version
Пример: 1.0.17 станет 1.0.18.
Создать migration
Даже если config не менялся, создать пустую migration:
cat > migrations/1.0.17-to-1.0.18.js <<'EOF'
module.exports = async function migrate({ config }) {
return config;
};
EOF
Commit и tag
git add package.json package-lock.json migrations/1.0.17-to-1.0.18.js
git commit -m "Release v1.0.18"
git tag -a v1.0.18 -m "Release v1.0.18"
git push origin main
git push origin v1.0.18
Вернуть garden с branch на release tag
cd /home/supervisor/leonid_projects/obsidians/obsidian-duck-guide/site
npm pkg set 'dependencies.@duck/garden-engine=git+ssh://git@github.com/leo-mmmmmmm/duck-garden-engine.git#v1.0.18'
В garden.config.json поставить:
"engine": {
"version": "1.0.18"
}
Закоммитить:
git add package.json garden.config.json
git commit -m "Upgrade garden engine to v1.0.18"
git push origin main
Пересобрать garden
cd /home/supervisor/leonid_projects/duck-obsidian/.deploy
./gardenctl rebuild obsidian-duck-guide
Проверить результат
curl -I https://obsidian-duck-guide.obsidians.otc.guru/
curl -I 'https://obsidian-duck-guide.obsidians.otc.guru/img/user/foto/2026-06-15%2014.57.12.jpg'
Ожидаемо:
HTTP/1.1 200 OK
Upgrade через gardenctl
Для одного garden:
cd /home/supervisor/leonid_projects/duck-obsidian/.deploy
./gardenctl upgrade obsidian-duck-guide --to 1.0.18
Для всех gardens:
./gardenctl upgrade-all --to 1.0.18
В production лучше сначала один garden, потом все остальные.
Коммиты
Для feature branch:
Fix graph backlinks resolution
Для release:
Release v1.0.18
Для garden после release:
Upgrade garden engine to v1.0.18