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({