Bazel: minimal test build transitions (#9122)

* Add build transitions for minimal config based tests

* respect existing gotags

* clean up import

* Add some commentary

* gaz

Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: rauljordan <raul@prysmaticlabs.com>
This commit is contained in:
Preston Van Loon
2021-06-30 14:22:09 -05:00
committed by GitHub
parent 24d17a536c
commit d6bd619429
155 changed files with 258 additions and 298 deletions

View File

@@ -1,5 +1,5 @@
load("@prysm//tools/go:def.bzl", "go_library")
load("@io_bazel_rules_go//go:def.bzl", "go_test", "go_tool_library")
load("@prysm//tools/go:def.bzl", "go_library", "go_test")
load("@io_bazel_rules_go//go:def.bzl", "go_tool_library")
go_library(
name = "go_default_library",

View File

@@ -1,5 +1,5 @@
load("@prysm//tools/go:def.bzl", "go_library")
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_test")
load("@prysm//tools/go:def.bzl", "go_library", "go_test")
load("@io_bazel_rules_go//go:def.bzl", "go_binary")
load("@io_bazel_rules_docker//go:image.bzl", "go_image")
load("@io_bazel_rules_docker//container:container.bzl", "container_bundle")
load("@io_bazel_rules_docker//contrib:push-all.bzl", "docker_push")

View File

@@ -1,5 +1,5 @@
load("@prysm//tools/go:def.bzl", "go_library")
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_test")
load("@prysm//tools/go:def.bzl", "go_library", "go_test")
load("@io_bazel_rules_go//go:def.bzl", "go_binary")
load("@io_bazel_rules_docker//go:image.bzl", "go_image")
load("@io_bazel_rules_docker//container:container.bzl", "container_bundle")
load("@io_bazel_rules_docker//contrib:push-all.bzl", "docker_push")

View File

@@ -1,5 +1,5 @@
load("@prysm//tools/go:def.bzl", "go_library")
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_test")
load("@prysm//tools/go:def.bzl", "go_library", "go_test")
load("@io_bazel_rules_go//go:def.bzl", "go_binary")
load("@io_bazel_rules_docker//go:image.bzl", "go_image")
load("@io_bazel_rules_docker//container:container.bzl", "container_bundle")
load("@io_bazel_rules_docker//contrib:push-all.bzl", "docker_push")

View File

@@ -1,6 +1,51 @@
load("@io_bazel_rules_go//go:def.bzl", _go_library = "go_library")
load("@io_bazel_rules_go//go/private/rules:library.bzl", _go_library = "go_library")
load("@io_bazel_rules_go//go/private/rules:test.bzl", "go_test_kwargs")
load("@bazel_gazelle//:deps.bzl", _go_repository = "go_repository")
def _go_test_transition_impl(settings, attr):
"""Edge transition to add minimal or mainnet build tags"""
settings = dict(settings)
if attr.eth_network == "minimal":
settings["//proto:network"] = "minimal"
settings["@io_bazel_rules_go//go/config:tags"] += ["minimal"]
elif attr.eth_network == "mainnet": # Default / optional
settings["//proto:network"] = "mainnet"
settings["@io_bazel_rules_go//go/config:tags"] += ["mainnet"]
if attr.gotags:
settings["@io_bazel_rules_go//go/config:tags"] += attr.gotags
return settings
go_test_transition = transition(
implementation = _go_test_transition_impl,
inputs = [
"@io_bazel_rules_go//go/config:tags",
"//proto:network",
],
outputs = [
"@io_bazel_rules_go//go/config:tags",
"//proto:network",
],
)
def _go_test_transition_rule(**kwargs):
"""A wrapper around go_test to add an eth_network attribute and incoming edge transition to support compile time configuration"""
kwargs = dict(kwargs)
attrs = dict(kwargs["attrs"])
attrs.update({
"eth_network": attr.string(values = ["mainnet", "minimal"]),
"_whitelist_function_transition": attr.label(
default = "@bazel_tools//tools/whitelists/function_transition_whitelist",
),
})
kwargs["attrs"] = attrs
kwargs["cfg"] = go_test_transition
return rule(**kwargs)
go_test = _go_test_transition_rule(**go_test_kwargs)
def go_library(name, **kwargs):
gc_goopts = []

View File

@@ -1,5 +1,5 @@
load("@prysm//tools/go:def.bzl", "go_library")
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_test")
load("@prysm//tools/go:def.bzl", "go_library", "go_test")
load("@io_bazel_rules_go//go:def.bzl", "go_binary")
load("@io_bazel_rules_docker//go:image.bzl", "go_image")
load("@io_bazel_rules_docker//container:container.bzl", "container_bundle")
load("@io_bazel_rules_docker//contrib:push-all.bzl", "docker_push")

View File

@@ -1,5 +1,5 @@
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_test")
load("@prysm//tools/go:def.bzl", "go_library")
load("@io_bazel_rules_go//go:def.bzl", "go_binary")
load("@prysm//tools/go:def.bzl", "go_library", "go_test")
go_library(
name = "go_default_library",

View File

@@ -1,5 +1,5 @@
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_test")
load("@prysm//tools/go:def.bzl", "go_library")
load("@io_bazel_rules_go//go:def.bzl", "go_binary")
load("@prysm//tools/go:def.bzl", "go_library", "go_test")
go_library(
name = "go_default_library",

View File

@@ -1,5 +1,5 @@
load("@prysm//tools/go:def.bzl", "go_library")
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_test")
load("@prysm//tools/go:def.bzl", "go_library", "go_test")
load("@io_bazel_rules_go//go:def.bzl", "go_binary")
go_library(
name = "go_default_library",