Further rationalize Build env var access

This commit is contained in:
Enrico Ros
2025-03-04 15:59:33 -08:00
parent 26f71ddedd
commit a5463fabe5
4 changed files with 15 additions and 7 deletions
+4
View File
@@ -35,6 +35,10 @@ ENV NEXT_PUBLIC_BUILD_REF_NAME=${NEXT_PUBLIC_BUILD_REF_NAME}
ARG NEXT_PUBLIC_GA4_MEASUREMENT_ID
ENV NEXT_PUBLIC_GA4_MEASUREMENT_ID=${NEXT_PUBLIC_GA4_MEASUREMENT_ID}
# Optional argument to configure PostHog at build time (see: docs/deploy-analytics.md)
ARG NEXT_PUBLIC_POSTHOG_KEY
ENV NEXT_PUBLIC_POSTHOG_KEY=${NEXT_PUBLIC_POSTHOG_KEY}
# Copy development deps and source
COPY --from=deps /app/node_modules ./node_modules
COPY . .
+1
View File
@@ -11,6 +11,7 @@ try {
// final fallback
buildHash = '2-dev';
}
// The following are used by/available to Release.buildInfo(...)
process.env.NEXT_PUBLIC_BUILD_HASH = (buildHash || '').slice(0, 10);
process.env.NEXT_PUBLIC_BUILD_PKGVER = JSON.parse('' + await readFile(new URL('./package.json', import.meta.url))).version;
process.env.NEXT_PUBLIC_BUILD_TIMESTAMP = new Date().toISOString();
+6 -4
View File
@@ -53,6 +53,8 @@ function NextGoogleAnalytics(props: {
if (currDataLayerName === undefined)
currDataLayerName = 'dataLayer';
const fBuild = Release.buildInfo('frontend');
return (
<>
<Script
@@ -66,10 +68,10 @@ function NextGoogleAnalytics(props: {
gtag('config', '${gaId}', {
${debugMode ? ' \'debug_mode\': true,' : ''}
'user_properties': {
'app_tenant': '${Release.TenantSlug || 'unknown'}',
'app_build_hash': '${process.env.NEXT_PUBLIC_BUILD_HASH || 'unknown'}',
'app_pkg_version': '${process.env.NEXT_PUBLIC_BUILD_PKGVER || 'unknown'}',
'app_deployment_type': '${process.env.NEXT_PUBLIC_DEPLOYMENT_TYPE || 'unknown'}'
'app_tenant': '${Release.TenantSlug}',
'app_build_hash': '${fBuild.gitSha || 'unknown'}',
'app_pkg_version': '${fBuild.pkgVersion || 'unknown'}',
'app_deployment_type': '${fBuild.deploymentType || 'unknown'}'
}
});`,
}}
+4 -3
View File
@@ -79,11 +79,12 @@ export function OptionalPostHogAnalytics() {
});
// add deployment context - see `next.config.mjs`
const fBuild = Release.buildInfo('frontend');
posthog.register({
app_tenant: Release.TenantSlug,
app_build_hash: process.env.NEXT_PUBLIC_BUILD_HASH || 'unknown',
app_pkg_version: process.env.NEXT_PUBLIC_BUILD_PKGVER || 'unknown',
app_deployment_type: process.env.NEXT_PUBLIC_DEPLOYMENT_TYPE || 'unknown',
app_build_hash: fBuild.gitSha || 'unknown',
app_pkg_version: fBuild.pkgVersion || 'unknown',
app_deployment_type: fBuild.deploymentType || 'unknown',
});
_isPostHogInitialized = true;