From b44e20c62b86a5ee522b28551d1908c8636bb0ed Mon Sep 17 00:00:00 2001 From: Aurelien Pisu Date: Mon, 12 May 2025 11:00:12 +0200 Subject: [PATCH] add possibility to have build_args by image --- src/kapla/__init__.py | 2 +- src/kapla/projects/kproject.py | 7 ++++++- src/kapla/specs/kproject.py | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/kapla/__init__.py b/src/kapla/__init__.py index eab0e9c..e0d0ed6 100644 --- a/src/kapla/__init__.py +++ b/src/kapla/__init__.py @@ -1 +1 @@ -__version__ = "0.34.0" +__version__ = "0.35.0" diff --git a/src/kapla/projects/kproject.py b/src/kapla/projects/kproject.py index 8863815..a13e5f1 100644 --- a/src/kapla/projects/kproject.py +++ b/src/kapla/projects/kproject.py @@ -922,7 +922,8 @@ def _create_docker_command( **kwargs: Any, ) -> Command: cmd = Command("docker buildx build", deadline=deadline, quiet=quiet, **kwargs) - build_args = self._prepare_build_args(spec, git_infos, build_args, tag) + build_args = self._prepare_build_args(spec, image, git_infos, build_args, tag) + # add specific build arg for this image to build logger.warning("Using build args", build_args=build_args) for key, value in build_args.items(): cmd.add_option("--build-arg", "=".join([key, value]), escape=True) @@ -950,6 +951,7 @@ def _create_docker_command( def _prepare_build_args( self, spec: DockerSpec, + image: DockerImageSpec, git_infos: GitInfos, build_args: Optional[Dict[str, str]], tag: str, @@ -958,6 +960,9 @@ def _prepare_build_args( if build_args: _build_args.update(build_args) build_args = _build_args.copy() + # add specific build args for this image + if image.build_args is not None: + build_args.update(image.build_args) if spec.base_image and "BASE_IMAGE" not in build_args: base_image = ( spec.base_image + ":" + tag diff --git a/src/kapla/specs/kproject.py b/src/kapla/specs/kproject.py index 75a3170..cadd982 100644 --- a/src/kapla/specs/kproject.py +++ b/src/kapla/specs/kproject.py @@ -8,6 +8,7 @@ class DockerImageSpec(AliasedModel): name: str template: Optional[str] = None + build_args: Optional[Dict[str, str]] = None # specific build_arg for this image class DockerSpec(AliasedModel):