diff --git a/src/app/overview/pipelines-grid/index.tsx b/src/app/overview/pipelines-grid/index.tsx
index c1f56f17d..51368544c 100644
--- a/src/app/overview/pipelines-grid/index.tsx
+++ b/src/app/overview/pipelines-grid/index.tsx
@@ -102,6 +102,7 @@ function PipelinesGrid({ pipelines }: Props) {
isDone={apiPipelines.some((p) => p.name === pipeline.directory)}
pipelineName={pipeline.directory}
displayName={pipeline.name}
+ deployable={pipeline.deployable ?? false}
/>
))}
diff --git a/src/app/overview/pipelines-grid/pipeline-item.tsx b/src/app/overview/pipelines-grid/pipeline-item.tsx
index 25856333b..46863e33b 100644
--- a/src/app/overview/pipelines-grid/pipeline-item.tsx
+++ b/src/app/overview/pipelines-grid/pipeline-item.tsx
@@ -12,9 +12,10 @@ type Props = {
displayName: string;
pipelineName: string;
isDone: boolean;
+ deployable: boolean;
};
-export function PipelineItem({ displayName, pipelineName, isDone }: Props) {
+export function PipelineItem({ displayName, pipelineName, isDone, deployable }: Props) {
const [open, setOpen] = useState(false);
const content = useGithubPipelineContent(pipelineName, {
refetchOnWindowFocus: false,
@@ -36,6 +37,7 @@ export function PipelineItem({ displayName, pipelineName, isDone }: Props) {
pipelineContent={content.data}
open={open}
onOpenChange={setOpen}
+ deployable={deployable}
>
{isDone ? : }
diff --git a/src/app/overview/pipelines-grid/pipeline-sheet.tsx b/src/app/overview/pipelines-grid/pipeline-sheet.tsx
index 033fbb858..4fc5f20e7 100644
--- a/src/app/overview/pipelines-grid/pipeline-sheet.tsx
+++ b/src/app/overview/pipelines-grid/pipeline-sheet.tsx
@@ -29,6 +29,7 @@ type Props = {
isDone: boolean;
name: string;
displayName: string;
+ deployable: boolean;
};
export function GithubPipelineSheet({
@@ -38,7 +39,8 @@ export function GithubPipelineSheet({
open,
name,
displayName,
- isDone
+ isDone,
+ deployable
}: PropsWithChildren) {
return (
@@ -69,6 +71,14 @@ export function GithubPipelineSheet({
Run the pipeline.
+ {deployable && (
+
+
+ Deploy the pipeline.
+
+
+
+ )}
) : (
diff --git a/src/components/sheet/resizable-sheet.tsx b/src/components/sheet/resizable-sheet.tsx
index f1e54f2bc..dc3901fe7 100644
--- a/src/components/sheet/resizable-sheet.tsx
+++ b/src/components/sheet/resizable-sheet.tsx
@@ -25,7 +25,11 @@ export const ResizableSheetContent = forwardRef<
-
+
{children}
diff --git a/src/data/github/pipelines.ts b/src/data/github/pipelines.ts
index ad07d13f5..ff66ccc20 100644
--- a/src/data/github/pipelines.ts
+++ b/src/data/github/pipelines.ts
@@ -4,7 +4,8 @@ import { z } from "zod";
const githubPipelineOrderEntrySchema = z.object({
index: z.number(),
directory: z.string(),
- name: z.string()
+ name: z.string(),
+ deployable: z.boolean()
});
const githubPipelinesOrderSchema = z.object({