From 6a50b8b6f0f3759f7bc478263a0ae473fd0cff23 Mon Sep 17 00:00:00 2001 From: Nadja Brix Koch Date: Mon, 19 Jan 2026 12:31:41 +0100 Subject: [PATCH 1/3] feat(core/scripts): add recursive arg to repository_prep script Signed-off-by: Nadja Brix Koch --- src/cijoe/core/scripts/repository_prep.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/cijoe/core/scripts/repository_prep.py b/src/cijoe/core/scripts/repository_prep.py index ef0feeea..ce55ab09 100644 --- a/src/cijoe/core/scripts/repository_prep.py +++ b/src/cijoe/core/scripts/repository_prep.py @@ -54,6 +54,13 @@ def __call__(self, parser, namespace, values, option_string=None): action=StringToBoolAction, help="Argument for git: Clone only the history leading to the tip of the specified revision.", ) + parser.add_argument( + "--recursive", + choices=["true", "false"], + default=True, + action=StringToBoolAction, + help="Argument for git: Recurse into the registered submodules, and update any nested submodules within.", + ) def main(args, cijoe): @@ -73,6 +80,8 @@ def main(args, cijoe): depth_arg = f"--depth {depth}" if depth else "" single_branch = repos.get("single_branch", args.single_branch) single_branch_arg = "--single-branch" if single_branch else "" + recursive = repos.get("recursive", args.recursive) + recursive_arg = "--recursive" if recursive else "" repos_root = Path(repos["path"]).parent @@ -84,7 +93,7 @@ def main(args, cijoe): err, _ = run( f"[ ! -d {repos['path']} ] && " f"git clone {repos['remote']} {repos['path']} " - f"{depth_arg} {single_branch_arg} --recursive" + f"{depth_arg} {single_branch_arg} {recursive_arg}" ) if err: log.info("either already cloned or failed cloning; continuing optimisticly") @@ -108,9 +117,10 @@ def main(args, cijoe): log.error("failed pulling; giving up") return err - err, _ = run("git submodule update --init --recursive", cwd=repos["path"]) - if err: - log.info("Updating submodules failed; continuin optimisticly") + if recursive: + err, _ = run("git submodule update --init --recursive", cwd=repos["path"]) + if err: + log.info("Updating submodules failed; continuing optimisticly") err, _ = run("git status", cwd=repos["path"]) if err: From 4e2c518b6436ec4447465c1701c66b2228db23f2 Mon Sep 17 00:00:00 2001 From: Nadja Brix Koch Date: Mon, 19 Jan 2026 12:52:35 +0100 Subject: [PATCH 2/3] fix(core/command): replace dashes in env var keys In the `getconf()` method, we allow users to overwrite configuration file values with local environment variables by replacing all dots in the key with underscores, as dots are not allowed in env var keys. The same goes for dashes however, so there was a bug where it was not possible to overwrite a key like `system-imaging.images.fedora-43-x86_64` because an env var key like "SYSTEM-IMAGING_IMAGES_FEDORA-43-x86_64" could not be defined. This commit changes the approach so that both dots and dashes should be replaced by underscores. Signed-off-by: Nadja Brix Koch --- docs/source/configs/index.rst | 2 +- src/cijoe/core/command.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/configs/index.rst b/docs/source/configs/index.rst index 3b866520..78f64f45 100644 --- a/docs/source/configs/index.rst +++ b/docs/source/configs/index.rst @@ -208,7 +208,7 @@ In summary: - Convert the configuration path and name to uppercase. -- Replace any dots (``.``) with underscores (``_``). +- Replace any dots (``.``) or dashes (``-``) with underscores (``_``). .. _sec-resources-configs-multiple: diff --git a/src/cijoe/core/command.py b/src/cijoe/core/command.py index 39200fe0..5a94fdaf 100644 --- a/src/cijoe/core/command.py +++ b/src/cijoe/core/command.py @@ -277,7 +277,7 @@ def getconf(self, key: str, default: Any = None): found in the initiator's environment variables. """ - envkey = key.replace(".", "_").upper() + envkey = key.replace(".", "_").replace("-", ".").upper() envvar = os.getenv(envkey) if envvar: log.debug(f"found {key} ({envkey}) in environment variables.") From 30ad77a83884421a717840fc641f8a6eae07c4bf Mon Sep 17 00:00:00 2001 From: Nadja Brix Koch Date: Tue, 10 Feb 2026 14:34:26 +0100 Subject: [PATCH 3/3] fix(core/report): fix styling bug in report template In a previous commit, we added filtering for the test report, so that we can filter by e.g. passed or failed tests. However, when this is done, you cannot click the tests to see the testinfo or runlog. This commit fixes this by not adding `display:none` to items with the `.show` or `.collapse` classes. Signed-off-by: Nadja Brix Koch --- src/cijoe/core/templates/report-task.html.jinja2 | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/cijoe/core/templates/report-task.html.jinja2 b/src/cijoe/core/templates/report-task.html.jinja2 index a502e195..1f17e967 100644 --- a/src/cijoe/core/templates/report-task.html.jinja2 +++ b/src/cijoe/core/templates/report-task.html.jinja2 @@ -80,15 +80,12 @@ div.image { border-top: 1px solid; } -[id^="CONTENT_TESTREPORT"]:has(.btn-success.selected) .list-group-item:not(.list-group-item-success) { - display: none; -} -[id^="CONTENT_TESTREPORT"]:has(.btn-danger.selected) .list-group-item:not(.list-group-item-danger) { - display: none; -} -[id^="CONTENT_TESTREPORT"]:has(.btn-secondary.selected) .list-group-item:not(.list-group-item-secondary) { +[id^="CONTENT_TESTREPORT"]:has(.btn-success.selected) .list-group-item:not(.list-group-item-success, .show, .collapsing), +[id^="CONTENT_TESTREPORT"]:has(.btn-danger.selected) .list-group-item:not(.list-group-item-danger, .show, .collapsing), +[id^="CONTENT_TESTREPORT"]:has(.btn-secondary.selected) .list-group-item:not(.list-group-item-secondary, .show, .collapsing) { display: none; } + [id^="CONTENT_TESTREPORT"] .btn.selected:not(.btn-primary) { box-shadow: var(--bs-btn-focus-box-shadow); }