diff --git a/frontend-v2/src/components/resources/build/index.tsx b/frontend-v2/src/components/resources/build/index.tsx
index 717a6a8df..a99a001ca 100644
--- a/frontend-v2/src/components/resources/build/index.tsx
+++ b/frontend-v2/src/components/resources/build/index.tsx
@@ -1,12 +1,13 @@
import { ConfigInner } from "@components/config";
import { ResourceSelector, AccountSelector } from "@components/config/util";
import { NewResource } from "@components/layouts";
-import { useRead, useWrite } from "@lib/hooks";
+import { ConfirmButton } from "@components/util";
+import { useExecute, useRead, useWrite } from "@lib/hooks";
import { fmt_verison } from "@lib/utils";
import { Types } from "@monitor/client";
import { RequiredResourceComponents } from "@types";
import { Input } from "@ui/input";
-import { Hammer, History } from "lucide-react";
+import { Hammer, History, Loader2 } from "lucide-react";
import { useState } from "react";
const useBuild = (id?: string) =>
@@ -110,6 +111,23 @@ export const Build: RequiredResourceComponents = {
Page: {
Config: ({ id }) => ,
},
- Actions: () => null,
+ Actions: ({ id }) => {
+ const building = useRead("GetBuildActionState", { id }).data?.building;
+ const { mutate, isLoading } = useExecute("RunBuild");
+ return (
+
+ ) : (
+
+ )
+ }
+ onClick={() => mutate({ build_id: id })}
+ disabled={building || isLoading}
+ />
+ );
+ },
New: () => ,
};
diff --git a/frontend-v2/src/components/resources/deployment/config/components/image.tsx b/frontend-v2/src/components/resources/deployment/config/components/image.tsx
index 37cc68d5f..bb03ffba8 100644
--- a/frontend-v2/src/components/resources/deployment/config/components/image.tsx
+++ b/frontend-v2/src/components/resources/deployment/config/components/image.tsx
@@ -36,7 +36,10 @@ const BuildVersionSelector = ({
latest
{versions?.map((v) => (
-
+
{fmt_verison(v.version)}
))}