This commit is contained in:
NotII
2025-04-06 16:23:02 +01:00
parent d05d7b4938
commit 8da4d0085e
3 changed files with 36 additions and 85 deletions

View File

@@ -11,8 +11,7 @@ let cachedGitInfo: GitInfo | null = null;
/**
* Gets the current git commit hash from various sources
* - First tries to read directly from the Git hash file in Docker
* - Then tries environment variable (from Docker)
* - First tries environment variable (from Docker)
* - Then tries the JSON file created by our build script
* - Returns "dev" if nothing is available
*/
@@ -22,41 +21,14 @@ export async function getGitCommitInfo(): Promise<GitInfo> {
return cachedGitInfo;
}
// In Docker or server, try to read the hash file directly first (most reliable method)
if (typeof window === 'undefined') {
try {
const fs = require('fs');
// Check for Docker-specific git hash file
const dockerGitHashPath = '/app/git_commit_sha';
if (fs.existsSync(dockerGitHashPath)) {
const hash = fs.readFileSync(dockerGitHashPath, 'utf8').trim();
console.log(`Read git hash from file: ${hash}`);
const gitInfo: GitInfo = {
commitHash: hash,
buildTime: new Date().toISOString(),
};
cachedGitInfo = gitInfo;
return gitInfo;
}
} catch (error) {
console.warn('Could not read git hash from Docker file', error);
}
}
// Then, check if we have the env variable
// First, check if we have the env variable (from Docker)
if (process.env.GIT_COMMIT_SHA) {
// Check if it's the literal string, which is an error case
if (process.env.GIT_COMMIT_SHA.includes('$(cat')) {
console.warn('GIT_COMMIT_SHA contains a shell command instead of the actual hash');
} else {
const gitInfo: GitInfo = {
commitHash: process.env.GIT_COMMIT_SHA,
buildTime: new Date().toISOString(),
};
cachedGitInfo = gitInfo;
return gitInfo;
}
const gitInfo: GitInfo = {
commitHash: process.env.GIT_COMMIT_SHA,
buildTime: new Date().toISOString(),
};
cachedGitInfo = gitInfo;
return gitInfo;
}
// In the browser, fetch from the public directory