mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-24 12:27:18 +00:00
31 lines
970 B
Python
31 lines
970 B
Python
|
"a rule transitioning an oci_image to multiple platforms"
|
||
|
|
||
|
def _multiarch_transition(settings, attr):
|
||
|
return [
|
||
|
{"//command_line_option:platforms": str(platform)}
|
||
|
for platform in attr.platforms
|
||
|
]
|
||
|
|
||
|
multiarch_transition = transition(
|
||
|
implementation = _multiarch_transition,
|
||
|
inputs = [],
|
||
|
outputs = ["//command_line_option:platforms"],
|
||
|
)
|
||
|
|
||
|
# multiarch_transition impl returns a DefaultInfo provider with the image deps as declared outputs to
|
||
|
# build.
|
||
|
def _impl(ctx):
|
||
|
return DefaultInfo(files = depset(ctx.files.image))
|
||
|
|
||
|
# The multi_arch rule builds the image for multiple platforms defined in the platforms attribute.
|
||
|
multi_arch = rule(
|
||
|
implementation = _impl,
|
||
|
attrs = {
|
||
|
"image": attr.label(cfg = multiarch_transition),
|
||
|
"platforms": attr.label_list(),
|
||
|
"_allowlist_function_transition": attr.label(
|
||
|
default = "@bazel_tools//tools/allowlists/function_transition_allowlist",
|
||
|
),
|
||
|
},
|
||
|
)
|