return subprocess.run(cmd, *args, **kwargs)
-def _container_cmd(ctx, args, *, workdir=None, interactive=False):
+def _container_cmd(
+ ctx, args, *, workdir=None, interactive=False, extra_args=None
+):
rm_container = not ctx.cli.keep_container
cmd = [
ctx.container_engine,
)
cmd.append(f"-eCCACHE_DIR={ccdir}")
cmd.append(f"-eCCACHE_BASEDIR={ctx.cli.homedir}")
- for extra_arg in ctx.cli.extra or []:
- cmd.append(extra_arg)
+ cmd.extend(extra_args or [])
+ cmd.extend(ctx.cli.extra or [])
if ctx.npm_cache_dir:
# use :z so that other builds can use the cache
cmd.extend([
return ", ".join(s.value for s in cls)
+class ImageVariant(StrEnum):
+ DEFAULT = 'default' # build everything + make check
+ PACKAGES = 'packages' # test deps. ignored, only for packages
+
+
class Context:
"""Command context."""
branch = _git_current_branch(self).replace("/", "-")
except subprocess.CalledProcessError:
branch = "UNKNOWN"
+ if self.cli.image_variant is not ImageVariant.DEFAULT:
+ suffix = f".{self.cli.image_variant}{suffix}"
return f"{branch}.{self.cli.distro}{suffix}"
def base_branch(self):
f"--volume={ctx.dnf_cache_dir}:/var/cache/dnf:Z",
"--build-arg=CLEAN_DNF=no",
]
+ if ctx.cli.image_variant is ImageVariant.PACKAGES:
+ cmd.append("--build-arg=FOR_MAKE_CHECK=false")
if ctx.cli.build_args:
cmd.extend([f"--build-arg={v}" for v in ctx.cli.build_args])
cmd += ["-f", ctx.cli.containerfile, ctx.cli.containerdir]
"-c",
f"cd {ctx.cli.homedir} && source ./src/script/run-make.sh && build tests",
],
+ # for compatibility with earlier versions that baked this env var
+ # into the build images
+ extra_args=['-eFOR_MAKE_CHECK=1'],
)
with ctx.user_command():
_run(cmd, check=True, ctx=ctx)
help="Specify a set of valid image sources. "
f"May be a comma separated list of {ImageSource.hint()}",
)
+ g_image.add_argument(
+ "--image-variant",
+ type=ImageVariant,
+ choices=sorted(v.value for v in ImageVariant),
+ default=ImageVariant.DEFAULT.value,
+ help="Specify the variant of the build image desired.",
+ )
g_image.add_argument(
"--base-image",
help=(