48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
const { execSync } = require('child_process');
|
|
|
|
const rootDir = path.join(__dirname, '..');
|
|
|
|
function readPackageVersion() {
|
|
try {
|
|
const pkg = JSON.parse(fs.readFileSync(path.join(rootDir, 'package.json'), 'utf8'));
|
|
return pkg.version || '0.0.0';
|
|
} catch {
|
|
return '0.0.0';
|
|
}
|
|
}
|
|
|
|
function readGitSha() {
|
|
if (process.env.GIT_SHA) {
|
|
return process.env.GIT_SHA;
|
|
}
|
|
try {
|
|
return execSync('git rev-parse --short HEAD', {
|
|
cwd: rootDir,
|
|
encoding: 'utf8',
|
|
stdio: ['ignore', 'pipe', 'ignore'],
|
|
}).trim();
|
|
} catch {
|
|
return '';
|
|
}
|
|
}
|
|
|
|
function getVersionInfo() {
|
|
const dbName = process.env.DB_NAME || '';
|
|
const appEnv = process.env.APP_ENV || (dbName === 'gallery_prod' ? 'prod' : 'dev');
|
|
const imageTag = process.env.IMAGE_TAG || (appEnv === 'prod' ? 'unknown' : 'dev-local');
|
|
|
|
return {
|
|
app_env: appEnv,
|
|
app_version: process.env.APP_VERSION || readPackageVersion(),
|
|
image_tag: imageTag,
|
|
git_sha: readGitSha(),
|
|
built_at: process.env.BUILD_TIME || '',
|
|
db_name: dbName,
|
|
public_url: process.env.PUBLIC_URL || '',
|
|
};
|
|
}
|
|
|
|
module.exports = { getVersionInfo };
|