Google Cloud Build/GitHub 中出现无效参数错误

Ale*_*ter 7 github google-cloud-platform google-cloud-build github-actions

我一直在尝试将 Google Cloud Build 与我的 GitHub 帐户集成。我过去曾为 GCP 上的其他项目设置过工作构建触发器 - 但对于这个,我无法让它可靠地工作。这是我所做的:

  1. 在 GitHub 上安装 Google Cloud Build 应用程序并将其链接到我的 Google Cloud 帐户。
  2. 连接到我在 Google Cloud Build 中的 GitHub 存储库。作为来源,我选择了“GitHub(Cloud Build GitHub App)”。
  3. 让 Cloud Build 为我创建默认触发器 - 只是为了确保设置正确。

现在,当手动运行默认触发器时,在选择分支后我总是收到以下错误消息:“无法触发构建:请求包含无效参数。” 看起来是这样的:

Google Cloud Build 上的无效参数错误

当通过 GitHub 存储库中的新提交调用时,触发器也不起作用。我通过 GitHub UI 发现了两个不同的错误:

  1. 当手动调用构建并立即失败时,GitHub Cloud Build Action 基本上会报告与 Cloud Build 本身相同的错误:

GitHub 错误 1

  1. GitHub Cloud Build Action 已排队/启动,但实际上从未执行任何操作。在这种情况下,Cloud Build 似乎甚至不知道 GitHub 触发的构建。尽管默认情况下 Cloud Build 通常会在 10 分钟后取消构建,但该操作仍将保持此状态数小时。

GitHub 错误 2

到目前为止,我已经尝试过以下一些措施来缓解该问题:

  • 创建各种不同的触发变化 - 它们似乎都不起作用。错误总是一样的。
  • 在 Github 上卸载 Cloud Build 应用程序,取消链接我的 Google Cloud 帐户,然后再次完成整个设置过程。
  • 在 Cloud Build 中连接存储库时,不要选择 GitHub 应用程序作为源,而是选择“GitHub(镜像)”。

在这一点上,我似乎陷入了困境,我将非常感谢任何可以以某种方式推动我走向正确方向的建议/提示。

我还应该注意的一件事是:我已经让触发器在这个项目中工作了一段时间。在我将 GitHub 上的主分支重命名为“生产”后,他们停止工作一段时间了。我不知道这是否与我的触发器失败有关。

twi*_*wiz 4

我发现当您有“无效”CloudBuild 配置文件(例如cloudbuild.yaml)时,可能会导致这种情况。

这让我很失望,因为它并不一定意味着它是无效的 YAML 或 JSON,只是它不是 CloudBuild 所期望的。

就我而言,我定义了一个secretEnv值,但删除了step使用它的值。显然,CloudBuild 不允许secretEnv值不被使用,这导致了神秘的错误消息:

无法触发构建:请求包含无效参数。

如果不清楚,这里是一个将失败的配置文件的示例:

steps:
  - name: "gcr.io/cloud-builders/docker"
    entrypoint: "bash"
    args: ["-c", "docker login --username=user-name --password=$$PASSWORD"]
    secretEnv: ["PASSWORD"]
secrets:
  - kmsKeyName: projects/project-id/locations/global/keyRings/keyring-name/cryptoKeys/key-name
    secretEnv:
      PASSWORD: "encrypted-password"
      UNUSED_PASSWORD: "another-encrypted-password"

Run Code Online (Sandbox Code Playgroud)

UNUSED_PASSWORD从未在任何地方实际使用过,所以这会失败。

由于此错误消息非常模糊,我认为还有其他情况可能会导致同样的问题,因此将此作为要查找的错误类型的示例。