fix(version): read CI_COMMIT_TAG as source of truth, package.json as fallback
Previously: vite read package.json.version only, requiring manual bump before each tag pipeline (manual sync ломалось — MR !44 пример костыля). Now: vite reads CI_COMMIT_TAG (passed via Dockerfile ARG GIT_TAG from .gitlab-ci.yml .docker_base) → strips 'v' prefix → exposes как __APP_TAG__. 'none' sentinel filtered → empty string → fallback к package.json. VersionBadge priority chain: 1. serverTag (что прод RUNS, через /api/v1/version) 2. clientTag (что build'илось на tag pipeline) 3. v${clientVersion} (package.json fallback floor для local / branch) Dockerfile: add ARG GIT_TAG=none, ENV CI_COMMIT_TAG=$GIT_TAG (mirrors существующий pattern с GIT_COMMIT → CI_COMMIT_SHORT_SHA). Revert package.json 1.3.1 → 1.2.0 (manual bump из MR !44). Версия теперь follows tag, не наоборот.
This commit is contained in:
@@ -1,13 +1,16 @@
|
||||
FROM repo.nstart.cloud/library/node:22-alpine AS build
|
||||
# Git commit для VersionBadge / UpdateBanner (vite.config.ts читает
|
||||
# process.env.CI_COMMIT_SHORT_SHA на build time). Внутри Docker build
|
||||
# context нет .git/ (BUILD_CONTEXT=ordinis-admin-ui/), vite
|
||||
# execSync('git rev-parse') падает → fallback "unknown".
|
||||
# CI передаёт реальный SHA через --build-arg GIT_COMMIT (см. .gitlab-ci.yml
|
||||
# publish_script). ENV exposes его vite-процессу через CI_COMMIT_SHORT_SHA
|
||||
# (тот же ключ что vite.config.ts проверяет первым).
|
||||
# Build identity для VersionBadge / UpdateBanner. Внутри Docker build context
|
||||
# нет .git/ (BUILD_CONTEXT=ordinis-admin-ui/), vite execSync падает →
|
||||
# fallback "unknown" / package.json. CI передаёт реальные значения через
|
||||
# --build-arg (см. .gitlab-ci.yml publish_script .docker_base).
|
||||
#
|
||||
# GIT_TAG — "none" sentinel когда CI_COMMIT_TAG не set (branch pipeline).
|
||||
# Фильтруем "none" → пустая строка чтобы vite.config.ts видел falsy и
|
||||
# fallback'ил к package.json.
|
||||
ARG GIT_COMMIT=unknown
|
||||
ARG GIT_TAG=none
|
||||
ENV CI_COMMIT_SHORT_SHA=$GIT_COMMIT
|
||||
ENV CI_COMMIT_TAG=$GIT_TAG
|
||||
WORKDIR /app
|
||||
# .npmrc нужен ДО pnpm install, иначе @nstart/* резолвятся в public npm и 404.
|
||||
# pnpm-lock.yaml — для воспроизводимости (frozen lockfile в CI).
|
||||
|
||||
Reference in New Issue
Block a user