Skip to content

Commit 6bdf138

Browse files
committed
improve app version output
1 parent eee0fb2 commit 6bdf138

File tree

2 files changed

+51
-8
lines changed

2 files changed

+51
-8
lines changed

apps/webapp/app/components/navigation/OrganizationSettingsSideMenu.tsx

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,26 @@ import { SideMenuItem } from "./SideMenuItem";
2222
import { useCurrentPlan } from "~/routes/_app.orgs.$organizationSlug/route";
2323
import { Paragraph } from "../primitives/Paragraph";
2424
import { Badge } from "../primitives/Badge";
25+
import { useHasAdminAccess } from "~/hooks/useUser";
26+
27+
export type BuildInfo = {
28+
appVersion: string | undefined;
29+
packageVersion: string;
30+
buildTimestampSeonds: string | undefined;
31+
gitSha: string | undefined;
32+
gitRefName: string | undefined;
33+
};
2534

2635
export function OrganizationSettingsSideMenu({
2736
organization,
28-
version,
37+
buildInfo,
2938
}: {
3039
organization: MatchedOrganization;
31-
version: string;
40+
buildInfo: BuildInfo;
3241
}) {
3342
const { isManagedCloud } = useFeatures();
3443
const currentPlan = useCurrentPlan();
44+
const isAdmin = useHasAdminAccess();
3545

3646
return (
3747
<div
@@ -94,9 +104,33 @@ export function OrganizationSettingsSideMenu({
94104
<div className="flex flex-col gap-1">
95105
<SideMenuHeader title="App version" />
96106
<Paragraph variant="extra-small" className="px-2 text-text-dimmed">
97-
v{version}
107+
{buildInfo.appVersion || `v${buildInfo.packageVersion}`}
98108
</Paragraph>
99109
</div>
110+
{isAdmin && buildInfo.buildTimestampSeonds && (
111+
<div className="flex flex-col gap-1">
112+
<SideMenuHeader title="Build timestamp" />
113+
<Paragraph variant="extra-small" className="px-2 text-text-dimmed">
114+
{new Date(Number(buildInfo.buildTimestampSeonds) * 1000).toISOString()}
115+
</Paragraph>
116+
</div>
117+
)}
118+
{isAdmin && buildInfo.gitRefName && (
119+
<div className="flex flex-col gap-1">
120+
<SideMenuHeader title="Git ref" />
121+
<Paragraph variant="extra-small" className="px-2 text-text-dimmed">
122+
{buildInfo.gitRefName}
123+
</Paragraph>
124+
</div>
125+
)}
126+
{isAdmin && buildInfo.gitSha && (
127+
<div className="flex flex-col gap-1">
128+
<SideMenuHeader title="Git sha" />
129+
<Paragraph variant="extra-small" className="px-2 text-text-dimmed">
130+
{buildInfo.gitSha.slice(0, 9)}
131+
</Paragraph>
132+
</div>
133+
)}
100134
</div>
101135
<div className="flex flex-col gap-1 border-t border-grid-bright p-1">
102136
<HelpAndFeedback />

apps/webapp/app/routes/_app.orgs.$organizationSlug.settings/route.tsx

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,34 @@
11
import { Outlet } from "@remix-run/react";
22
import { type LoaderFunctionArgs } from "@remix-run/server-runtime";
3-
import { VERSION } from "@trigger.dev/core";
3+
import { VERSION as coreVersion } from "@trigger.dev/core";
44
import { typedjson, useTypedLoaderData } from "remix-typedjson";
55
import { AppContainer, MainBody } from "~/components/layout/AppLayout";
6-
import { OrganizationSettingsSideMenu } from "~/components/navigation/OrganizationSettingsSideMenu";
6+
import {
7+
type BuildInfo,
8+
OrganizationSettingsSideMenu,
9+
} from "~/components/navigation/OrganizationSettingsSideMenu";
710
import { useOrganization } from "~/hooks/useOrganizations";
811

912
export const loader = async ({ request, params }: LoaderFunctionArgs) => {
1013
return typedjson({
11-
version: VERSION,
14+
buildInfo: {
15+
appVersion: process.env.BUILD_APP_VERSION,
16+
packageVersion: coreVersion,
17+
gitSha: process.env.BUILD_GIT_SHA,
18+
gitRefName: process.env.BUILD_GIT_REF_NAME,
19+
buildTimestampSeonds: process.env.BUILD_TIMESTAMP_SECONDS,
20+
} satisfies BuildInfo,
1221
});
1322
};
1423

1524
export default function Page() {
16-
const { version } = useTypedLoaderData<typeof loader>();
25+
const { buildInfo } = useTypedLoaderData<typeof loader>();
1726
const organization = useOrganization();
1827

1928
return (
2029
<AppContainer>
2130
<div className="grid grid-cols-[14rem_1fr] overflow-hidden">
22-
<OrganizationSettingsSideMenu organization={organization} version={version} />
31+
<OrganizationSettingsSideMenu organization={organization} buildInfo={buildInfo} />
2332
<MainBody>
2433
<Outlet />
2534
</MainBody>

0 commit comments

Comments
 (0)