我想根据复杂的 python 脚本的输出动态生成 Bazel 测试规则(使用导入等,不幸的是不能移植到 Starlark)。
是否可以在 Bazel 规则解析期间运行此脚本、解析其输出并创建测试规则,而不是以某种方式生成BUILD
包含这些预先编写的规则的文件?
我想根据复杂的 python 脚本的输出动态生成 Bazel 测试规则(使用导入等,不幸的是不能移植到 Starlark)。
是否可以在 Bazel 规则解析期间运行此脚本、解析其输出并创建测试规则,而不是以某种方式生成BUILD
包含这些预先编写的规则的文件?
Bazel 在加载阶段解析 WORKSPACE、BUILD 和 .bzl 文件,加载阶段在分析和执行阶段之前。如果您想使用 Bazel 创建 BUILD 文件(例如使用Buildifier),您需要有一个两步过程,首先更新生成的 BUILD 文件,然后对它们进行操作。
如果您不需要经常更新并将生成的文件提交到源存储库,这可以工作。如果您计划在每个构建中动态执行不同的事情,您将需要找到不同的方式。