Bazel 从配置文件中读取规则参数值
考虑在Bazel 从配置文件中读取规则参数值,bazel,bazel-rules,Bazel,Bazel Rules,考虑在工作区文件中编写的以下bazel规则: container_pull( name = "release-base", registry = "mydockernet:9443", repository = "release-base", digest = "sha256:...", tag = "1.8.2", ) 问题是标记值1.8.2写在yamlconfig文件中,我们希望尊重DRY原则(从config文件读取值,而不是复制bazel文件中的值
工作区文件中编写的以下bazel规则:
container_pull(
name = "release-base",
registry = "mydockernet:9443",
repository = "release-base",
digest = "sha256:...",
tag = "1.8.2",
)
问题是标记值1.8.2
写在yaml
config文件中,我们希望尊重DRY原则(从config文件读取值,而不是复制bazel文件中的值)。有没有办法处理这个问题?这不是yaml,但您可以在另一个bzl文件中定义内容,然后将它们加载到您的工作区:
load("common.bzl", "MYVERSION")
container_pull(
name = "release-base",
registry = "mydockernet:9443",
repository = "release-base",
digest = "sha256:...",
tag = MYVERSION,
)
然后在common.bzl中:
MYVERSION=1.8.2
它不是yaml,但您可以在另一个bzl文件中定义内容,然后将其加载到您的工作区:
load("common.bzl", "MYVERSION")
container_pull(
name = "release-base",
registry = "mydockernet:9443",
repository = "release-base",
digest = "sha256:...",
tag = MYVERSION,
)
然后在common.bzl中:
MYVERSION=1.8.2
是的,我们已经知道使用bzl
文件的解决方案。当配置文件不是Starlark格式时,就会出现问题。是的,我们已经知道使用bzl
文件的解决方案。当配置位于非Starlark格式的文件中时,就会出现问题。