diff --git a/frontend/src/components/build/tabs/config/BuildConfig.tsx b/frontend/src/components/build/tabs/config/BuildConfig.tsx index a5a18eb89..22c0a40cb 100644 --- a/frontend/src/components/build/tabs/config/BuildConfig.tsx +++ b/frontend/src/components/build/tabs/config/BuildConfig.tsx @@ -11,6 +11,8 @@ import BuildArgs from "./BuildArgs"; import Version from "./Version"; import Repo from "./Repo"; import WebhookUrl from "./WebhookUrl"; +import ExtraArgs from "./ExtraArgs"; +import UseBuildx from "./UseBuildx"; const BuildConfig: Component<{}> = (p) => { const { build, reset, save, userCanUpdate } = useConfig(); @@ -23,6 +25,8 @@ const BuildConfig: Component<{}> = (p) => { + + diff --git a/frontend/src/components/build/tabs/config/ExtraArgs.tsx b/frontend/src/components/build/tabs/config/ExtraArgs.tsx new file mode 100644 index 000000000..3318833de --- /dev/null +++ b/frontend/src/components/build/tabs/config/ExtraArgs.tsx @@ -0,0 +1,59 @@ +import { Component, For, Show } from "solid-js"; +import Icon from "../../../shared/Icon"; +import Input from "../../../shared/Input"; +import Flex from "../../../shared/layout/Flex"; +import Grid from "../../../shared/layout/Grid"; +import { useConfig } from "../Provider"; + +const ExtraArgs: Component<{}> = (p) => { + const { build, setBuild, userCanUpdate } = useConfig(); + const onAdd = () => { + setBuild("docker_build_args", "extra_args", (extra_args: any) => [ + ...extra_args, + "", + ]); + }; + const onRemove = (index: number) => { + setBuild("docker_build_args", "extra_args", (extra_args) => + extra_args!.filter((_, i) => i !== index) + ); + }; + return ( + + +

extra args

+ + + +
+ + {(_, index) => ( + + + setBuild("docker_build_args", "extra_args", index(), value) + } + disabled={!userCanUpdate()} + /> + + + + + )} + +
+ ); +}; + +export default ExtraArgs; diff --git a/frontend/src/components/build/tabs/config/UseBuildx.tsx b/frontend/src/components/build/tabs/config/UseBuildx.tsx new file mode 100644 index 000000000..52c785ca1 --- /dev/null +++ b/frontend/src/components/build/tabs/config/UseBuildx.tsx @@ -0,0 +1,30 @@ +import { Component, Show } from "solid-js"; +import Flex from "../../../shared/layout/Flex"; +import { useConfig } from "../Provider"; + +const UseBuildx: Component<{}> = (p) => { + const { build, setBuild, userCanUpdate } = useConfig(); + const use_buildx = () => build.docker_build_args?.use_buildx || false; + return ( + +

use buildx

+ {use_buildx() ? "enabled" : "disabled"}} + > + + +
+ ); +}; + +export default UseBuildx; diff --git a/frontend/src/types.ts b/frontend/src/types.ts index a236777b7..b1a49311f 100644 --- a/frontend/src/types.ts +++ b/frontend/src/types.ts @@ -56,6 +56,8 @@ export interface DockerBuildArgs { build_path: string; dockerfile_path?: string; build_args?: EnvironmentVar[]; + extra_args?: string[]; + use_buildx?: boolean; } export interface BuildVersionsReponse {