feat(deploy): 接入全自动生产发布校验
This commit is contained in:
36
apps/web/lib/runtime-version.ts
Normal file
36
apps/web/lib/runtime-version.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
type RuntimeEnv = {
|
||||
NEXT_PUBLIC_APP_VERSION?: string;
|
||||
NEXT_PUBLIC_APP_BUILD_TIME?: string;
|
||||
};
|
||||
|
||||
export interface ClientRuntimeVersion {
|
||||
service: 'web';
|
||||
version: string;
|
||||
buildTime: string;
|
||||
}
|
||||
|
||||
export interface ServerRuntimeVersion {
|
||||
service: 'server';
|
||||
version: string;
|
||||
buildTime: string;
|
||||
imageTag: string;
|
||||
}
|
||||
|
||||
export function getClientRuntimeVersion(
|
||||
env: RuntimeEnv = {
|
||||
NEXT_PUBLIC_APP_VERSION: process.env.NEXT_PUBLIC_APP_VERSION,
|
||||
NEXT_PUBLIC_APP_BUILD_TIME: process.env.NEXT_PUBLIC_APP_BUILD_TIME,
|
||||
},
|
||||
): ClientRuntimeVersion {
|
||||
return {
|
||||
service: 'web',
|
||||
version: env.NEXT_PUBLIC_APP_VERSION || 'unknown',
|
||||
buildTime: env.NEXT_PUBLIC_APP_BUILD_TIME || '',
|
||||
};
|
||||
}
|
||||
|
||||
export function shouldPromptForNewRuntimeVersion(clientVersion: string, serverVersion: string): boolean {
|
||||
if (!clientVersion || !serverVersion) return false;
|
||||
if (clientVersion === 'unknown' || serverVersion === 'unknown') return false;
|
||||
return clientVersion !== serverVersion;
|
||||
}
|
||||
Reference in New Issue
Block a user