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
This commit is contained in:
Jamil
2024-09-11 15:13:01 -07:00
committed by GitHub
parent 319a185af2
commit 71a04d6ec1
5 changed files with 29 additions and 19 deletions

View File

@@ -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

View File

@@ -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 });
}

View File

@@ -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);
}

View File

@@ -7,7 +7,5 @@ export const metadata: Metadata = {
};
export default function Page() {
const sha = process.env.FIREZONE_DEPLOYED_SHA;
return <Changelog />;
}

View File

@@ -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() {
</TabsGroup>
{sha && (
<p className="text-sm md:text-lg mt-4 md:mt-8">
Current SHA of Portal and Relays in production is{" "}
Current SHA of Portal and Relays in production:{" "}
<Link
href={`https://www.github.com/firezone/firezone/tree/${sha}`}
className="underline hover:no-underline text-accent-500"