chore(deploy): exclude generated version.json from deploy dirty check

This commit is contained in:
dev
2026-09-23 23:02:37 +03:00
parent d943b77f58
commit 2e1d36bc4d
3 changed files with 10 additions and 6 deletions
+1 -1
View File
@@ -85,7 +85,7 @@ curl -sk https://127.0.0.1:3443/version.json # версия собранно
docker compose exec app md5sum /app/server.js # совпадает с md5sum server.js docker compose exec app md5sum /app/server.js # совпадает с md5sum server.js
``` ```
Версия сборки записывается в `public/version.json` внутри образа из аргументов `GIT_COMMIT` / `GIT_COMMIT_DATE` (`build.args` в `docker-compose.yml`, подставляет `scripts/deploy.sh`) и показывается в сайдбаре админки. Файл в git не хранится (`.gitignore`), локально его обновляет хук: `cp scripts/post-commit.sh .git/hooks/post-commit`. Если `/version.json` отдаёт 404 — образ собран без аргументов версии, нужна пересборка. Версия сборки записывается в `public/version.json` внутри образа из аргументов `GIT_COMMIT` / `GIT_COMMIT_DATE` (`build.args` в `docker-compose.yml`, подставляет `scripts/deploy.sh`) и показывается в сайдбаре админки — она всегда соответствует собранному коду, даже если файл в рабочей копии устарел. Локально файл обновляет хук: `cp scripts/post-commit.sh .git/hooks/post-commit`. Если образ собран без аргументов (`docker compose build` вместо `deploy.sh`), версия в сайдбаре будет пустой.
## Конфигурация ## Конфигурация
+3 -3
View File
@@ -1,5 +1,5 @@
{ {
"full": "a95af7daa76d37fbb1c4f1e6dcf19175df0a66e0", "full": "d943b77f585041cbb8ae8efed31cc3e326e1e140",
"short": "a95af7d", "short": "d943b77",
"date": "2026-09-23T22:23:38+03:00" "date": "2026-09-23T23:01:36+03:00"
} }
+6 -2
View File
@@ -13,7 +13,7 @@ else
fi fi
echo ">> Рабочая копия" echo ">> Рабочая копия"
if [ -n "$(git status --porcelain --untracked-files=no)" ]; then if [ -n "$(git status --porcelain --untracked-files=no -- . ':(exclude)public/version.json')" ]; then
git status --short git status --short
echo "Есть незакоммиченные изменения. Задайте DEPLOY_ALLOW_DIRTY=1, чтобы продолжить." echo "Есть незакоммиченные изменения. Задайте DEPLOY_ALLOW_DIRTY=1, чтобы продолжить."
[ "${DEPLOY_ALLOW_DIRTY:-0}" = "1" ] || exit 1 [ "${DEPLOY_ALLOW_DIRTY:-0}" = "1" ] || exit 1
@@ -43,7 +43,11 @@ else
fi fi
if command -v curl >/dev/null 2>&1; then if command -v curl >/dev/null 2>&1; then
echo ">> /version.json" echo ">> /version.json"
curl -sk https://127.0.0.1:3443/version.json || true for _ in $(seq 1 20); do
curl -skf --max-time 3 https://127.0.0.1:3443/version.json >/dev/null 2>&1 && break
sleep 1
done
curl -sk --max-time 5 https://127.0.0.1:3443/version.json || echo "Не удалось получить /version.json (приложение ещё поднимается или образ собран без аргументов версии)"
echo echo
fi fi
$DC ps $DC ps