From 71a04d6ec18d68659438b2ed72b0745cbcd3d7f9 Mon Sep 17 00:00:00 2001 From: Jamil Date: Wed, 11 Sep 2024 15:13:01 -0700 Subject: [PATCH] feat(website): Add JSON endpoint for publishing versions of released components (#6663) Adds an endpoint at `/api/releases` to return the current version of published components. Fixes #6658 --- scripts/Makefile | 10 +++++----- website/src/app/api/deployed-sha/route.ts | 8 -------- website/src/app/api/releases/route.ts | 20 ++++++++++++++++++++ website/src/app/changelog/page.tsx | 2 -- website/src/components/Changelog/index.tsx | 8 ++++---- 5 files changed, 29 insertions(+), 19 deletions(-) delete mode 100644 website/src/app/api/deployed-sha/route.ts create mode 100644 website/src/app/api/releases/route.ts diff --git a/scripts/Makefile b/scripts/Makefile index 35834b517..c1ad77b5a 100644 --- a/scripts/Makefile +++ b/scripts/Makefile @@ -41,33 +41,33 @@ endif .PHONY: apple-version android-version gateway-version gui-version headless-version version apple-version: - @find website -name "redirects.js" -exec sed $(SEDARG) -e '/mark:current-apple-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(current-apple-version)/g;}' {} \; + @find website -type f -name "redirects.js" -o -name "route.ts" -exec sed $(SEDARG) -e '/mark:current-apple-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(current-apple-version)/g;}' {} \; @find .github -type f -exec sed $(SEDARG) -e '/mark:next-apple-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(next-apple-version)/g;}' {} \; @find swift -type f -name "project.pbxproj" -exec sed $(SEDARG) -e 's/MARKETING_VERSION = .*;/MARKETING_VERSION = $(next-apple-version);/' {} \; @find rust -path rust/gui-client/node_modules -prune -o -name "Cargo.toml" -exec sed $(SEDARG) -e '/mark:next-apple-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(next-apple-version)/;}' {} \; @cd rust && cargo update --workspace android-version: - @find website -name "redirects.js" -exec sed $(SEDARG) -e '/mark:current-android-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(current-android-version)/g;}' {} \; + @find website -type f -name "redirects.js" -o -name "route.ts" -exec sed $(SEDARG) -e '/mark:current-android-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(current-android-version)/g;}' {} \; @find .github -type f -exec sed $(SEDARG) -e '/mark:next-android-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(next-android-version)/g;}' {} \; @find kotlin -type f -name "*.gradle.kts" -exec sed $(SEDARG) -e '/mark:next-android-version/{n;s/versionName =.*/versionName = "$(next-android-version)"/;}' {} \; @find rust -path rust/gui-client/node_modules -prune -o -name "Cargo.toml" -exec sed $(SEDARG) -e '/mark:next-android-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(next-android-version)/;}' {} \; @cd rust && cargo update --workspace gateway-version: - @find website -name "redirects.js" -exec sed $(SEDARG) -e '/mark:current-gateway-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(current-gateway-version)/g;}' {} \; + @find website -type f -name "redirects.js" -o -name "route.ts" -exec sed $(SEDARG) -e '/mark:current-gateway-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(current-gateway-version)/g;}' {} \; @find .github -type f -exec sed $(SEDARG) -e '/mark:next-gateway-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(next-gateway-version)/g;}' {} \; @find rust -path rust/gui-client/node_modules -prune -o -name "Cargo.toml" -exec sed $(SEDARG) -e '/mark:next-gateway-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(next-gateway-version)/;}' {} \; @cd rust && cargo update --workspace gui-version: - @find website -name "redirects.js" -exec sed $(SEDARG) -e '/mark:current-gui-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(current-gui-version)/g;}' {} \; + @find website -type f -name "redirects.js" -o -name "route.ts" -exec sed $(SEDARG) -e '/mark:current-gui-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(current-gui-version)/g;}' {} \; @find .github -type f -exec sed $(SEDARG) -e '/mark:next-gui-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(next-gui-version)/g;}' {} \; @find rust -path rust/gui-client/node_modules -prune -o -name "Cargo.toml" -exec sed $(SEDARG) -e '/mark:next-gui-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(next-gui-version)/;}' {} \; @cd rust && cargo update --workspace headless-version: - @find website -name "redirects.js" -exec sed $(SEDARG) -e '/mark:current-headless-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(current-headless-version)/g;}' {} \; + @find website -type f -name "redirects.js" -o -name "route.ts" -exec sed $(SEDARG) -e '/mark:current-headless-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(current-headless-version)/g;}' {} \; @find .github -name "*.yml" -exec sed $(SEDARG) -e '/mark:next-headless-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(next-headless-version)/g;}' {} \; @find rust -path rust/gui-client/node_modules -prune -o -name "Cargo.toml" -exec sed $(SEDARG) -e '/mark:next-headless-version/{n;s/[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}/$(next-headless-version)/;}' {} \; @cd rust && cargo update --workspace diff --git a/website/src/app/api/deployed-sha/route.ts b/website/src/app/api/deployed-sha/route.ts deleted file mode 100644 index e10fc087b..000000000 --- a/website/src/app/api/deployed-sha/route.ts +++ /dev/null @@ -1,8 +0,0 @@ -// app/api/deployed-sha/route.ts -import { NextRequest, NextResponse } from "next/server"; -import { get } from "@vercel/edge-config"; - -export async function GET(_req: NextRequest) { - const sha = await get("deployed_sha"); - return NextResponse.json({ sha }); -} diff --git a/website/src/app/api/releases/route.ts b/website/src/app/api/releases/route.ts new file mode 100644 index 000000000..233d7a697 --- /dev/null +++ b/website/src/app/api/releases/route.ts @@ -0,0 +1,20 @@ +import { NextRequest, NextResponse } from "next/server"; +import { get } from "@vercel/edge-config"; + +export async function GET(_req: NextRequest) { + const versions = { + portal: await get("deployed_sha"), + // mark:current-apple-version + apple: "1.3.1", + // mark:current-android-version + android: "1.3.2", + // mark:current-gui-version + gui: "1.3.2", + // mark:current-headless-version + headless: "1.3.1", + // mark:current-gateway-version + gateway: "1.3.1", + }; + + return NextResponse.json(versions); +} diff --git a/website/src/app/changelog/page.tsx b/website/src/app/changelog/page.tsx index b7f744a7f..113f090d7 100644 --- a/website/src/app/changelog/page.tsx +++ b/website/src/app/changelog/page.tsx @@ -7,7 +7,5 @@ export const metadata: Metadata = { }; export default function Page() { - const sha = process.env.FIREZONE_DEPLOYED_SHA; - return ; } diff --git a/website/src/components/Changelog/index.tsx b/website/src/components/Changelog/index.tsx index da1269164..e2d619041 100644 --- a/website/src/components/Changelog/index.tsx +++ b/website/src/components/Changelog/index.tsx @@ -16,9 +16,9 @@ export default function Changelog() { useEffect(() => { const fetchSha = async () => { - const response = await fetch("/api/deployed-sha"); - const data = await response.json(); - setSha(data.sha); + const response = await fetch("/api/releases"); + const versions = await response.json(); + setSha(versions.portal); }; fetchSha(); }, []); @@ -47,7 +47,7 @@ export default function Changelog() { {sha && (

- Current SHA of Portal and Relays in production is{" "} + Current SHA of Portal and Relays in production:{" "}