github - Google Cloud Build/GitHub 中的无效参数错误

标签 github google-cloud-platform github-actions google-cloud-build

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

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

  • 现在,当手动运行默认触发器时,我总是在选择我的分支后收到以下错误消息:“无法触发构建:请求包含无效参数。”这是它的样子:
    Invalid Argument Error on Google Cloud Build
    当通过 GitHub 存储库中的新提交调用时,触发器也不起作用。我通过 GitHub UI 发现了两个不同的错误:
  • GitHub Cloud Build Action 在手动调用构建时基本上报告了与 Cloud Build 本身相同的错误,并立即失败:

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

  • GitHub error 2
    以下是我迄今为止尝试过的一些方法来缓解这个问题:
  • 创建各种不同的触发器变体 - 它们似乎都不起作用。错误总是一样的。
  • 在 Github 上卸载 Cloud Build 应用程序,取消关联我的 Google Cloud 帐户,然后再次完成整个设置过程。
  • 在 Cloud Build 中连接存储库时,不要选择 GitHub App 作为源,而是选择“GitHub(镜像)”。

  • 在这一点上,我似乎被卡住了,我将非常感谢任何可以以某种方式将我推向正确方向的建议/提示。
    还有一件事我应该注意:我在这个项目中已经使用了一段时间的触发器。在我将 GitHub 上的主分支重命名为“生产”后,他们停止了工作。我不知道这是否与我的触发器失败有关。

    最佳答案

    我发现这可能是因为您有一个“无效”的 CloudBuild 配置文件(例如 cloudbuild.yaml )。
    这让我失望,因为这并不一定意味着它是无效的 YAML 或 JSON,只是它不是 CloudBuild 所期望的。
    就我而言,我定义了一个 secretEnv值,但删除了 step那个利用了它。显然,CloudBuild 不允许 secretEnv未使用的值,这导致了神秘的错误消息:

    Failed to trigger build: Request contains an invalid argument.


    如果不清楚,这里是一个将失败的配置文件示例:
    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"
    
    
    UNUSED_PASSWORD从未在任何地方实际使用过,因此这将失败。
    由于此错误消息非常模糊,我假设还有其他情况可能会导致相同的问题,因此仅将其作为要查找的错误类型的示例。

    关于github - Google Cloud Build/GitHub 中的无效参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63330669/

    相关文章:

    git - 如何创建一个新的存储库,它是另一个存储库的克隆?

    github - 存储库名称作为 GitHub 操作环境变量?

    bash - 如何有条件地运行 github 工作流作业并在作业之间传递环境变量

    git - 将多个提交(中间有 merge )从 master 移出到单独的分支

    git - 通过 ssh 克隆 git 的具体问题

    google-app-engine - 如何使用Firebase Storage上传到现有的Google云存储桶?

    kubernetes - 如何使用多个 Google Kubernetes Engine (GKE) 集群制作多区域 Kafka/Zookeeper 集群?

    azure-pipelines - CICD 管道中 git checkout 操作有什么用

    android - 在 Android Studio 项目中包含现有代码的正确方法?

    python - 如何从 python 函数登录 Google Cloud Storage?