本页介绍了如何将 GitLab 主机连接到 Cloud Build。
准备工作
- 
  
  
    
      Enable the Cloud Build and Secret Manager APIs. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
连接到 GitLab 主机
在为 GitLab 实例创建主机连接之前,您必须在 GitLab 中创建个人访问令牌,方法是完成以下步骤:
- 登录您的 GitLab 实例。 
- 在您实例的 GitLab 页面上,点击右上角的头像。 
- 点击修改个人资料。 
- 在左侧边栏中,选择访问令牌。 - 系统会显示个人访问令牌页面。 
- 创建具有 - api范围的访问令牌,用于与代码库建立连接和断开连接。
- 创建具有 - read_api范围的访问令牌,以确保 Cloud Build 代码库可以访问代码库中的源代码。
控制台
如需将 GitLab 主机连接到 Cloud Build,请执行以下操作:
- 在 Google Cloud 控制台中打开代码库页面。 - 您会看到代码库页面。 
- 在页面顶部,选择第 2 代标签页。 
- 在顶部栏的项目选择器中,选择您的 Google Cloud 项目。 
- 点击创建主机连接,将新主机连接到 Cloud Build。 
- 在左侧面板中,选择 GitLab 作为您的来源提供方。 
- 在配置连接部分中,输入以下信息: - 区域:为连接选择一个区域。 : 您必须指定一个区域。您的连接无法全局存在。
- 名称:输入连接的名称。 
 
- 在主机详细信息部分,选择或输入以下信息: - GitLab 提供程序:选择 GitLab.com 作为提供程序。
 
- 在个人访问令牌部分中,输入以下信息: - API 访问令牌:输入具有 - api范围访问权限的令牌。此令牌用于与代码库建立连接和断开连接。
- 读取 API 访问令牌:输入具有 - read_api范围访问权限的令牌。Cloud Build 触发器使用此令牌访问代码库中的源代码。
 
- 点击连接。 - 点击关联按钮后,您的个人访问令牌会安全地存储在 Secret Manager 中。建立主机连接后,Cloud Build 还会代表您创建网络钩子密钥。您可以在 Secret Manager 页面上查看和管理 Secret。 
您现在已成功创建 GitLab 连接。
gcloud
在将 GitLab 主机连接到 Cloud Build 之前,请完成以下步骤来存储您的凭据:
- 运行以下命令,在 Secret Manager 中创建 webhook Secret: - cat /proc/sys/kernel/random/uuid | tr -d '\n' | gcloud secrets create my-gle-webhook-secret --data-file=-
- 如果您将密钥存储在不同于计划用于创建宿主连接的 Google Cloud 项目中,请输入以下命令,以授予您的项目对 Cloud Build 服务代理的访问权限: - PN=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)") CLOUD_BUILD_SERVICE_AGENT="service-${PN}@gcp-sa-cloudbuild.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:${CLOUD_BUILD_SERVICE_AGENT}" \ --role="roles/secretmanager.admin"- 其中: - PROJECT_ID 是 Google Cloud 项目 ID。
 
您现在可以继续将 GitLab 主机连接到 Cloud Build。
请完成以下步骤:
如需将 GitLab 主机连接到 Cloud Build,请执行以下操作:
- 输入以下命令以创建 GitLab 连接: - gcloud builds connections create gitlab CONNECTION_NAME \ --host-uri=HOST_URI \ --project=PROJECT_ID \ --region=REGION \ --authorizer-token-secret-version=projects/PROJECT_ID/secrets/API_TOKEN/versions/SECRET_VERSION \ --read-authorizer-token-secret-version=projects/PROJECT_ID/secrets/READ_TOKEN/versions/SECRET_VERSION \ --webhook-secret-secret-version=projects/PROJECT_ID/secrets/WEBHOOK_SECRET/versions/SECRET_VERSION- 其中: - CONNECTION_NAME 是 Cloud Build 中 GitLab 主机连接的名称。
- HOST_URI 是您的 GitLab 实例的 URI。例如 https://my-gle-server.net。
- PROJECT_ID 是 Google Cloud 项目 ID。
- REGION 是连接的区域。
- API_TOKEN 是具有 api范围的令牌的名称。
- READ_TOKEN 是具有 read_api范围的令牌的名称。
- SECRET_VERSION 是您的 Secret 版本。
- WEBHOOK_SECRET 是您的 webhook 密文。
 
您现在已成功创建 GitLab 连接。
后续步骤
- 了解如何关联 GitLab 代码库。
- 了解如何在 GitLab 流水线中使用 Google 管理的 CI/CD 组件,将工作负载构建并部署到 Google Cloud 。请参阅 Google Cloud上的 GitLab。