fix(version): channel-based label, no semver fallback for branch builds
Stale package.json создавал ложное впечатление rollback'а: staging
показывал "v1.2.0" хотя последний tag — v1.2.2 (package.json не bump'ился
со времён v1.2.0 release).
Vote A — branch builds НЕ используют package.json как version label.
Vite определяет channel:
serverTag != none → что прод/staging RUNS
clientTag → что build'ил CI tag pipeline (CI_COMMIT_TAG set)
CI без tag → 'dev' literal (staging / branch CI build)
локально → 'local' literal (pnpm dev)
Detection через новый __APP_CI__ define из process.env.CI (GitLab сетает
CI=true). Local pnpm dev: CI undefined → channel='local'.
package.json.version всё ещё инжектится как __APP_VERSION__ и видна в
tooltip badge'а как 'floor vX.Y.Z' — не как primary label.
Files:
- vite.config.ts: + APP_CI from process.env.CI
- src/vite-env.d.ts: + __APP_CI__ declare
- src/components/version/useAppVersion.ts: + clientCI
- src/components/version/VersionBadge.tsx: channel logic вместо fallback
Verify all three modes:
local → 'local · {commit}'
CI branch → 'dev · {commit}'
CI tag v1.3.1 → 'v1.3.1 · {commit}'
Tests: 116 pass.
This commit is contained in:
@@ -21,8 +21,11 @@ export function useAppVersion() {
|
||||
const clientCommit = __APP_COMMIT__
|
||||
const clientVersion = __APP_VERSION__
|
||||
// Empty string when build wasn't на tag pipeline. VersionBadge / UpdateBanner
|
||||
// решают priority: serverTag → clientTag → fallback v${clientVersion}.
|
||||
// решают priority: serverTag → clientTag → channel-based label.
|
||||
const clientTag = __APP_TAG__
|
||||
// true когда GitLab CI собрал bundle. Отличает branch build (dev) от
|
||||
// local pnpm dev (local) — оба не имеют tag'а, но семантически разные.
|
||||
const clientCI = __APP_CI__
|
||||
const clientBuiltAt = __APP_BUILT_AT__
|
||||
|
||||
const knownClient = clientCommit !== 'unknown' && clientCommit !== ''
|
||||
@@ -33,6 +36,7 @@ export function useAppVersion() {
|
||||
return {
|
||||
clientVersion,
|
||||
clientTag,
|
||||
clientCI,
|
||||
clientCommit,
|
||||
clientBuiltAt,
|
||||
serverVersion: server?.version,
|
||||
|
||||
Reference in New Issue
Block a user