feat(version): respect GPUSTACK_UI_* env overrides in build info
Allow a wrapping build that checks this source tree out as a sub-package to stamp its own release tag and commit id onto the UI (otherwise the version panel reports the host tree's git HEAD, which the wrapper doesn't control). GPUSTACK_UI_VERSION overrides the release tag and GPUSTACK_UI_COMMIT_ID overrides the short commit id; both fall back to the git tag / commit at HEAD when unset, preserving existing behavior. Names are namespaced to avoid colliding with the many tools and CI runners that already set a generic VERSION.
This commit is contained in:
+24
-10
@@ -1,13 +1,27 @@
|
|||||||
const child_process = require('child_process');
|
import { execSync } from 'child_process';
|
||||||
|
|
||||||
export const getBranchInfo = () => {
|
export const getBranchInfo = () => {
|
||||||
const latestCommit = child_process
|
// git may be absent (source archive, bare container) or this tree may
|
||||||
.execSync('git rev-parse HEAD')
|
// not be a git checkout. Swallow the failure and fall back to the env
|
||||||
.toString()
|
// overrides below — losing build info shouldn't fail the build.
|
||||||
.trim();
|
let latestCommit = '';
|
||||||
const versionTag = child_process
|
let versionTag = '';
|
||||||
.execSync(`git tag --contains ${latestCommit}`)
|
try {
|
||||||
.toString()
|
latestCommit = execSync('git rev-parse HEAD').toString().trim();
|
||||||
.trim();
|
versionTag = execSync(`git tag --contains ${latestCommit}`)
|
||||||
return { version: versionTag || '', commitId: latestCommit.slice(0, 7) };
|
.toString()
|
||||||
|
.trim();
|
||||||
|
} catch {
|
||||||
|
// Not a git checkout / git unavailable; rely on env overrides.
|
||||||
|
}
|
||||||
|
// Respect explicit GPUSTACK_UI_* overrides so a wrapping build that
|
||||||
|
// checks this source tree out as a sub-package can stamp its own
|
||||||
|
// release tag and commit id onto the UI (otherwise the panel reports
|
||||||
|
// the host tree's git HEAD, which the wrapper doesn't control).
|
||||||
|
const overrideVersion = process.env.GPUSTACK_UI_VERSION?.trim();
|
||||||
|
const overrideCommitId = process.env.GPUSTACK_UI_COMMIT_ID?.trim();
|
||||||
|
return {
|
||||||
|
version: overrideVersion || versionTag || '',
|
||||||
|
commitId: overrideCommitId || latestCommit.slice(0, 7)
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user