Fix: Versionsanzeige im Footer - Git-Tags während Docker-Build verfügbar machen und Fallbacks hinzufügen

This commit is contained in:
Hördle Bot
2025-12-01 17:43:24 +01:00
parent 725d3bcff4
commit 891f52b0b8
3 changed files with 21 additions and 6 deletions

View File

@@ -14,9 +14,9 @@ build
.env.local
.env*.local
# Git
.git
.gitignore
# Git (NICHT ausschließen - wird für Version-Extraktion benötigt!)
# .git wird benötigt für: git describe --tags --always
# .gitignore
# IDE
.vscode

View File

@@ -23,11 +23,13 @@ RUN apk add --no-cache git
COPY --from=deps /app/node_modules ./node_modules
COPY . .
# Extract version: use build arg if provided, otherwise get from git
# Extract version: use build arg if provided, otherwise get from git, fallback to package.json
RUN if [ -n "$APP_VERSION" ]; then \
echo "$APP_VERSION" > /tmp/version.txt; \
else \
git describe --tags --always 2>/dev/null > /tmp/version.txt || echo "unknown" > /tmp/version.txt; \
(git describe --tags --always 2>/dev/null || \
(grep -o '"version": "[^"]*"' package.json 2>/dev/null | cut -d'"' -f4 | sed 's/^/v/') || \
echo "dev") > /tmp/version.txt; \
fi && \
echo "Building version: $(cat /tmp/version.txt)"

View File

@@ -15,7 +15,7 @@ export async function GET() {
for (const versionFilePath of versionPaths) {
if (existsSync(versionFilePath)) {
const version = readFileSync(versionFilePath, 'utf-8').trim();
if (version && version !== 'unknown') {
if (version && version !== 'unknown' && version !== '') {
return NextResponse.json({ version });
}
}
@@ -26,6 +26,19 @@ export async function GET() {
return NextResponse.json({ version: process.env.APP_VERSION });
}
// Fallback: check package.json
try {
const packageJsonPath = join(process.cwd(), 'package.json');
if (existsSync(packageJsonPath)) {
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
if (packageJson.version) {
return NextResponse.json({ version: `v${packageJson.version}` });
}
}
} catch {
// Ignore package.json read errors
}
// Fallback: try to get from git (local development)
let version = 'dev';