From 8c8f131fcc710d8b4185f0dc0481954550fd86ff Mon Sep 17 00:00:00 2001 From: Matt Clarkson Date: Thu, 12 Sep 2024 16:39:53 +0100 Subject: [PATCH 1/8] chore: run `prettier` on `.gitlab-ci.yml` --- .gitlab-ci.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3c308006..8981f12c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -48,15 +48,15 @@ test: - !reference [.bazelisk, cache] - key: "bazel-cache-${CI_PROJECT_ID}" paths: - - ".cache/bazel/disk" - - ".cache/bazel/repo" + - ".cache/bazel/disk" + - ".cache/bazel/repo" parallel: matrix: - ROOT: - - . - - e2e + - . + - e2e CONFIG: - - local + - local # FIXME: enable remote builds # - remote script: -- GitLab From 80f05e69dc2d154c02dc2da4a495bc444aba4c25 Mon Sep 17 00:00:00 2001 From: Matt Clarkson Date: Wed, 23 Oct 2024 10:11:29 +0100 Subject: [PATCH 2/8] chore: add missing newline --- labgrid/executor/BUILD.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/labgrid/executor/BUILD.bazel b/labgrid/executor/BUILD.bazel index 6ead04d6..bc238473 100644 --- a/labgrid/executor/BUILD.bazel +++ b/labgrid/executor/BUILD.bazel @@ -60,4 +60,4 @@ py_test( ], main = "executor.py", deps = ["host"], -) \ No newline at end of file +) -- GitLab From 7e631542346a2fae76a0bfc2d0c624d6c86d3ebc Mon Sep 17 00:00:00 2001 From: Matt Clarkson Date: Wed, 23 Oct 2024 10:13:26 +0100 Subject: [PATCH 3/8] chore(qemu/seed/image): correct whitespace lines --- qemu/seed/image/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qemu/seed/image/main.py b/qemu/seed/image/main.py index d91b14d8..46fdd622 100755 --- a/qemu/seed/image/main.py +++ b/qemu/seed/image/main.py @@ -1,5 +1,6 @@ import io from argparse import ArgumentParser + import pycdlib @@ -14,7 +15,6 @@ def main(): arguments(prsr) parsed = prsr.parse_args() seed_image_path = parsed.output - # generate_user_data file user_data = f"""\ -- GitLab From 52209221a0b6dba9b929f86985cbcf495b7e682f Mon Sep 17 00:00:00 2001 From: Matt Clarkson Date: Thu, 10 Oct 2024 11:41:46 +0100 Subject: [PATCH 4/8] ci: upgrade to `1.0.0-beta.5` component --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8981f12c..ffc63e9a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,5 @@ include: - - component: "${CI_SERVER_HOST}/ci/component/bazelisk/bazelisk@v1.0.0-beta.4" + - component: "${CI_SERVER_HOST}/ci/component/bazelisk/bazelisk@v1.0.0-beta.5" inputs: image: "${CI_REGISTRY_IMAGE}" tag: "${CI_COMMIT_SHA}" -- GitLab From 158ac89620f499c018a80504f4231c899a355630 Mon Sep 17 00:00:00 2001 From: Matt Clarkson Date: Mon, 21 Oct 2024 15:52:14 +0100 Subject: [PATCH 5/8] test(e2e): add `docker:info` target --- e2e/docker/BUILD.bazel | 6 ++++++ e2e/docker/info.py | 7 +++++++ 2 files changed, 13 insertions(+) create mode 100644 e2e/docker/info.py diff --git a/e2e/docker/BUILD.bazel b/e2e/docker/BUILD.bazel index 60476d55..d33e8bb0 100644 --- a/e2e/docker/BUILD.bazel +++ b/e2e/docker/BUILD.bazel @@ -34,6 +34,12 @@ labgrid_config_toolchain( deps = ["@pip//docker"], ) +py_binary( + name = "info", + srcs = ["info.py"], + deps = ["@pip//docker"], +) + # A simplistic implementation of cat which dependends on runfiles py_binary( name = "cat", diff --git a/e2e/docker/info.py b/e2e/docker/info.py new file mode 100644 index 00000000..641f1a2b --- /dev/null +++ b/e2e/docker/info.py @@ -0,0 +1,7 @@ +from json import dump +from sys import stdout + +from docker import from_env + +client = from_env() +dump(client.version(), stdout) -- GitLab From f2d30c1ba5a0c1ed4b00f0d11e307bc0b6a7251f Mon Sep 17 00:00:00 2001 From: Matt Clarkson Date: Wed, 23 Oct 2024 10:12:05 +0100 Subject: [PATCH 6/8] fix(executor): use `os.environ` as a basis for `env` --- labgrid/executor/executor.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/labgrid/executor/executor.py b/labgrid/executor/executor.py index fe189732..ba7d34c7 100644 --- a/labgrid/executor/executor.py +++ b/labgrid/executor/executor.py @@ -81,12 +81,13 @@ def main(exe: Path, *args: str) -> int: if machine() == "arm64" and system() == "Darwin": cmd = (which("sh"), *cmd) - data = Data(env={}) + data = Data(env={k: v for k, v in environ.items() if k != "RUNFILES_DIR"}) with ExitStack() as stack: for manager in parsed.managers: data = stack.enter_context(manager(data)) env = {k: resolve_runfile(v) for k, v in parsed.env} - env |= {k: v for k, v in data.env.items() if k != "RUNFILES_DIR"} + env |= {k: v for k, v in data.env.items()} + try: run(cmd, env=env, check=True) except CalledProcessError as e: -- GitLab From 49dd3aa7453cb1b95d04b13304973b5426343f30 Mon Sep 17 00:00:00 2001 From: Matt Clarkson Date: Wed, 23 Oct 2024 10:12:40 +0100 Subject: [PATCH 7/8] fix(genrule): use the `default_shell_env` Needed to pass through `--action_env` arguments. --- labgrid/genrule/rule.bzl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/labgrid/genrule/rule.bzl b/labgrid/genrule/rule.bzl index fd0a3de2..50c27211 100644 --- a/labgrid/genrule/rule.bzl +++ b/labgrid/genrule/rule.bzl @@ -97,7 +97,8 @@ def implementation(ctx): inputs = [ctx.file._executor_args], outputs = ctx.outputs.outs, tools = [t.files_to_run for t in (ctx.attr.tools + ctx.attr.srcs)] + [ctx.executable._sh], - env = ctx.attr._executor[RunEnvironmentInfo].environment, + use_default_shell_env = False, + env = ctx.configuration.default_shell_env | ctx.attr._executor[RunEnvironmentInfo].environment, mnemonic = "LabGridGenrule", ) -- GitLab From 6b87394e1aacab7476fc829c93aa1acd288afaf7 Mon Sep 17 00:00:00 2001 From: Matt Clarkson Date: Wed, 23 Oct 2024 14:30:06 +0100 Subject: [PATCH 8/8] test(e2e): add `requires-docker` tag Allows identifying rules that require a valid Docker daemon to be setup. --- e2e/docker/BUILD.bazel | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/e2e/docker/BUILD.bazel b/e2e/docker/BUILD.bazel index d33e8bb0..f1b7369a 100644 --- a/e2e/docker/BUILD.bazel +++ b/e2e/docker/BUILD.bazel @@ -52,7 +52,10 @@ labgrid_run( outs = ["stdout.log"], cmd = "$(locations :cat) /etc/os-release > $@", platform = ":platform", - tags = ["manual"], + tags = [ + "manual", + "requires-docker", + ], ) # Check that the output of `/proc/version` from within the container is what we expect @@ -61,5 +64,8 @@ diff_file_test( size = "small", a = ":version.txt", b = ":stdout.log", - tags = ["manual"], + tags = [ + "manual", + "requires-docker", + ], ) -- GitLab