Google Cloud Build - 一次替换中有多个值?

Google Cloud Build - multiple values in a single substitution?

我正在使用 Google Cloud Build,在其中一个步骤中,我是 运行 Bazel 构建。我正在尝试使用替换在一次调用中构建多个目标。

时间:

  1. 步骤如下:
{
      "name": "gcr.io/cloud-builders/bazel",
      "args": [
        "build",
        "$_TARGETS",
      ]
}
  1. TARGETS 替换为 //foo/... //bar/...

实际上是 运行 的命令是 bazel build "//foo/... //bar/...",这显然会导致目标名称无效错误。 (单个目标就可以了)

最终结果应该是 bazel build //foo/... //bar/...

有没有办法 "split" 在单个 sub 中使用多个参数?或者让命令分别处理参数?

我很难找到解决方法。我用 Bazel 进行了测试(不是构建,我没有示例,但是有帮助、版本和其他简单的关键字。它接缝工作。

使用 Cloud Build,您可以执行 linux 命令,即使使用特定的 Cloud Builder。只需指定 entrypoint.

{
      "name": "gcr.io/cloud-builders/bazel",
      "entrypoint": "bash",
      "args": [
        "-c",
        "bazel build $_TARGETS",
      ]
}

你应该实现你想要的。如果不尝试通过 $(echo $_TARGET) 更新 $_TARGET 以打印 $_TARGET (因此,删除引号,如果仍然存在)