我有困难的时间连接GitHub仓库与GCP云构建使用Terraform。
在其中一个项目中,我通过控制台手动连接了它,没有Terraform,但这对我没有帮助,试图自动化这个过程。下面我附上了我要使用的代码。
为了使用GitHub repo,我首先必须通过Cloud Build | Triggers | connect repository手动连接存储库。一旦存储库被链接,我在这里描述的Terraform问题就消失了。连接过程打开一个窗口到GitHub回购搜索链接各个回购。我还不知道该如何解决这个问题。
resource "google_cloudbuild_trigger" "my_cloudbuild_trigger" {
name = "my-trigger"
description = "Trigger on push to ${var.branch_name} branch"
filename = "cloudbuild.yaml"
project = var.project_id
github {
owner = # replace with your organization name
name = # replace with your repository name
push {
branch = var.branch_name
}
}
}
Error creating Trigger: googleapi: Error 400: Repository mapping does not exist. Please visit
到目前为止,我尝试了所有我在互联网上找到的东西,希望连接到Repo,但到目前为止没有任何工作。
目前似乎没有办法通过terraform连接github存储库,您必须手动完成:
https://cloud.google.com/architecture/managing-infrastructure-as-code directly_connecting_cloud_build_to_your_github_repository
这个答案概述了一种方法:
https://stackoverflow.com/a/71093605
,这将有助于减少需要手动维护的连接数量。
这是google通过他们的cloudbuild API添加此功能的特性请求:
https://issuetracker.google.com/issues/142550612?pli=1
上面还包含使用Github工作流等替代方法。
此后,此功能可以添加到terraform:
https://github.com/hashicorp/terraform-provider-google/issues/8961
同样相关的,这里的讨论:
https://github.com/hashicorp/terraform-provider-google/issues/1950
现在有一种方法可以通过编程方式连接到Github Host,并使用CLI或Terraform添加存储库。https://cloud.google.com/build/docs/automating-builds/github/connect-repo-github?generation=2nd-gen connecting_a_github_host_programmatically