如何根据构建设置使用文件名
How to use a filename based on a build setting
我的构建设置如下:
string_flag(
name = "version",
build_setting_default = "0.1")
我想用它来创建一个文件,例如:
ctx.actions.run_shell(
outputs = ["report-%s.csv" % (version)],
inputs = ctx.files.inputs,
command = "$(location //build:report-generator.sh) 2>&1"
)
但是,我收到以下错误:
Error in run_shell: at index 0 of outputs, got element of type string, want File
这是文件的文档:https://docs.bazel.build/versions/main/skylark/lib/File.html
created during the analysis phase
所以我的问题是,如何在分析阶段获取构建设置的值?
如错误消息所述,run_shell
的 outputs
参数需要一个 File
对象列表而不是字符串。一般通过declaring an output in the rule class definition or using the ctx.actions.declare_file
方法得到一个合适的输出File
对象。
我的构建设置如下:
string_flag(
name = "version",
build_setting_default = "0.1")
我想用它来创建一个文件,例如:
ctx.actions.run_shell(
outputs = ["report-%s.csv" % (version)],
inputs = ctx.files.inputs,
command = "$(location //build:report-generator.sh) 2>&1"
)
但是,我收到以下错误:
Error in run_shell: at index 0 of outputs, got element of type string, want File
这是文件的文档:https://docs.bazel.build/versions/main/skylark/lib/File.html
created during the analysis phase
所以我的问题是,如何在分析阶段获取构建设置的值?
如错误消息所述,run_shell
的 outputs
参数需要一个 File
对象列表而不是字符串。一般通过declaring an output in the rule class definition or using the ctx.actions.declare_file
方法得到一个合适的输出File
对象。