我正在使用Google Cloud Build,在其中一个步骤中,我正在运行Bazel构建。我正在尝试使用替换在一次调用中构建多个目标。
什么时候:
- 该步骤如下所示:
{
"name": "gcr.io/cloud-builders/bazel",
"args": [
"build",
"$_TARGETS",
]
}
TARGETS
替换是//foo/... //bar/...
实际运行的命令bazel build "//foo/... //bar/..."
,这显然会导致无效的目标名称错误。(单个目标工作正常(
最终结果应该是bazel build //foo/... //bar/...
有没有办法在单个子中"拆分"多个参数? 还是让命令单独处理参数?
我很难找到解决方法。我用 Bazel 进行了测试(不是构建,我没有示例,但有帮助、版本和其他简单的关键字。它接缝工作。
使用Cloud Build,您可以执行linux命令,即使使用特定的Cloud Builder也是如此。只需指定entrypoint
即可。
{
"name": "gcr.io/cloud-builders/bazel",
"entrypoint": "bash",
"args": [
"-c",
"bazel build $_TARGETS",
]
}
你应该实现你想要的。如果没有,请尝试通过$(echo $_TARGET)
来更新$_TARGET
以打印$_TARGET
(因此,如果仍然存在,则删除引号(