From 0d1dd3b0fec5b2978ffa9af83d5aa425d2f32c4c Mon Sep 17 00:00:00 2001 From: Citali Date: Sun, 1 Feb 2026 22:37:53 +0100 Subject: [PATCH] Add versioning to footer --- Dockerfile.prod | 12 ++++++++++++ package.json | 4 +++- src/components/global/Footer.tsx | 26 ++++++++++++++++++++++++-- 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/Dockerfile.prod b/Dockerfile.prod index 550ca94..3d518b4 100644 --- a/Dockerfile.prod +++ b/Dockerfile.prod @@ -19,6 +19,12 @@ RUN bunx prisma generate # Uncomment the following line in case you want to disable telemetry during the build. ENV NEXT_TELEMETRY_DISABLED=1 +ARG GIT_SHA=unknown +ARG APP_VERSION=0.0.0 +ARG DEPLOY_ENV=production +ENV NEXT_PUBLIC_GIT_SHA=$GIT_SHA \ + NEXT_PUBLIC_APP_VERSION=$APP_VERSION \ + NEXT_PUBLIC_DEPLOY_ENV=$DEPLOY_ENV ARG DATABASE_URL ENV DATABASE_URL=$DATABASE_URL @@ -34,6 +40,12 @@ ENV NEXT_TELEMETRY_DISABLED=1 ENV NODE_ENV=production \ PORT=3000 \ HOSTNAME="0.0.0.0" +ARG GIT_SHA=unknown +ARG APP_VERSION=0.0.0 +ARG DEPLOY_ENV=production +ENV NEXT_PUBLIC_GIT_SHA=$GIT_SHA \ + NEXT_PUBLIC_APP_VERSION=$APP_VERSION \ + NEXT_PUBLIC_DEPLOY_ENV=$DEPLOY_ENV RUN groupadd --system --gid 1001 nodejs && \ useradd --system --uid 1001 --no-log-init -g nodejs nextjs diff --git a/package.json b/package.json index 0caf105..17e56c1 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,12 @@ { "name": "app.gaertan.art", - "version": "0.1.0", + "version": "1.1.0", "private": true, "scripts": { "dev": "next dev", + "dev:version": "NEXT_PUBLIC_GIT_SHA=$(git rev-parse --short HEAD) NEXT_PUBLIC_DEPLOY_ENV=dev bun dev", "build": "next build", + "build:version": "NEXT_PUBLIC_GIT_SHA=$(git rev-parse --short HEAD) NEXT_PUBLIC_DEPLOY_ENV=prod bun run build", "start": "next start", "lint": "biome check", "format": "biome format --write" diff --git a/src/components/global/Footer.tsx b/src/components/global/Footer.tsx index d732a07..8d06c36 100644 --- a/src/components/global/Footer.tsx +++ b/src/components/global/Footer.tsx @@ -1,5 +1,27 @@ +import pkg from "../../../package.json"; + +const appVersion = + process.env.NEXT_PUBLIC_APP_VERSION ?? + pkg.version; +const gitSha = + process.env.NEXT_PUBLIC_GIT_SHA ?? + process.env.VERCEL_GIT_COMMIT_SHA ?? + process.env.GIT_COMMIT_SHA ?? + ""; +const deployEnv = + process.env.NEXT_PUBLIC_DEPLOY_ENV ?? + process.env.NODE_ENV ?? + "unknown"; +const versionLabel = gitSha + ? `v${appVersion}+${gitSha.slice(0, 7)}` + : `v${appVersion}`; +const envLabel = deployEnv === "production" ? "prod" : deployEnv; + export default function Footer() { return ( -
© 2026 by gaertan.art | All rights reserved
+
+ © 2026 by gaertan.art | All rights reserved + {versionLabel} · {envLabel} +
); -} \ No newline at end of file +}