我也遇到同样的错误:
Failed to trigger build: Couldn't read commit
当我创建触发器配置 .yaml 文件时,我在触发器模板中放置了不同的项目 ID。如果有人偶然发现这个问题,请确保您放置的项目 ID 与存储库的项目 ID 相同。请参阅以下内容:
triggerTemplate:
branchName: ^BRANCH_NAME$
projectId: PROJECT_ID_OF_THE_SOURCE_REPO_BRANCH
repoName: SOURCE_REPO_NAME
请参阅此处的文档:
对我来说,分支名称中包含正则表达式。所以当我使用
^feature/cloudbuild$
而不是feature/cloudbuild
时,错误并没有出现。
我的存储库 URI 错误(
https://source.developers.google.com/$(PROJECT)/$(REPO)
而不是 https://source.developers.google.com/p/$(PROJECT)/r/$(REPO)
)
我通过手动重新创建触发器并比较导出发现了问题
gcloud alpha builds triggers export $(TRIGGERNAME) --destination=trigger.yaml
Cloud Build 连接到 bitbucket 存储库存在限制问题。它只允许来自 Cloud Build 的每个存储库有一个连接。请检查您是否有更多与该存储库的连接?请删除重复项,然后重试
尝试在 GCP 中启用云构建 api(服务:cloudbuild.googleapis.com)(如果不这样做,则会出现此错误) 这是云构建 API: https://cloud.google.com/build/docs/api/reference/rest
以下是如何启用 api https://cloud.google.com/apis/docs/getting-started#enabling_apis
我也观察到同样的错误(
Couldn't read commit
)。解决方案是更新云构建服务帐户权限。
首先,我们必须通过导航到“云构建”->“设置”来识别云构建中使用的服务帐户。 然后,我们可以将所需的权限添加到 IAM 部分中的 SA。就我而言,SA 帐户中缺少 Cloud build
editor
角色。
请注意,这是云构建服务帐户,而不是触发器中使用的 SA。
我遇到了同样的错误,在我的例子中,将 Bitbucket 与云存储库同步时出现错误。
因此,我建议您检查 GCP 内的云存储库,因为我们从外部 Git(例如 Bitbucket)在那里创建了一个镜像,它可能会同步失败。
就我而言,我删除了存储库并再次添加它,它起作用了。