From 62234fa1d1370f0cb40d56aa650dd0e36b31dc54 Mon Sep 17 00:00:00 2001 From: Alex Tercete Date: Thu, 7 Nov 2024 15:47:30 +0000 Subject: [PATCH] feat: add emulator constraint for QEMU Previously, we were registering the QEMU toolchain against any AMD64 Linux, which would select that toolchain if running one of the workflows (e.g. `labgrid_genrule`) without specifying a platform. We now require consumers to opt-in to using QEMU by using the constraint `@rules_labgrid//constraint/emulator:qemu`. The new constraint lives under a new top-level directory, as it's not specific to `rules_labgrid` and could be extracted into a separate module in the future. --- constraint/emulator/BUILD.bazel | 7 +++++++ e2e/qemu/BUILD.bazel | 1 + labgrid/toolchain/config/qemu/amd64/BUILD.bazel | 1 + 3 files changed, 9 insertions(+) create mode 100644 constraint/emulator/BUILD.bazel diff --git a/constraint/emulator/BUILD.bazel b/constraint/emulator/BUILD.bazel new file mode 100644 index 00000000..7dc7c4cb --- /dev/null +++ b/constraint/emulator/BUILD.bazel @@ -0,0 +1,7 @@ +constraint_setting(name = "emulator") + +constraint_value( + name = "qemu", + constraint_setting = ":emulator", + visibility = ["//visibility:public"], +) diff --git a/e2e/qemu/BUILD.bazel b/e2e/qemu/BUILD.bazel index 69a6e7a2..d263f875 100644 --- a/e2e/qemu/BUILD.bazel +++ b/e2e/qemu/BUILD.bazel @@ -4,6 +4,7 @@ load("@rules_labgrid//labgrid/run:defs.bzl", "labgrid_run") platform( name = "platform", constraint_values = [ + "@rules_labgrid//constraint/emulator:qemu", "@toolchain_utils//toolchain/constraint/os:linux", "@toolchain_utils//toolchain/constraint/cpu:amd64", ], diff --git a/labgrid/toolchain/config/qemu/amd64/BUILD.bazel b/labgrid/toolchain/config/qemu/amd64/BUILD.bazel index 7b326cd4..00b1ca8e 100644 --- a/labgrid/toolchain/config/qemu/amd64/BUILD.bazel +++ b/labgrid/toolchain/config/qemu/amd64/BUILD.bazel @@ -13,6 +13,7 @@ labgrid_config_toolchain( "LG_QEMU_VIRT_IMAGE": "$(location //qemu/seed/image)", }, target_compatible_with = [ + "//constraint/emulator:qemu", "@toolchain_utils//toolchain/constraint/os:linux", "@toolchain_utils//toolchain/constraint/cpu:amd64", ], -- GitLab