我在GITHUB和GCP(Cloud Build for deployments)上工作,工作很好。以下是以下步骤:
cloudbuild.yml。现在,我需要将Cloud Build与GITLAB集成起来。我查看了文档,但发现只有webhook才是选项,触发器将基于整个存储库的更改。对于每个云功能或云运行,它都需要单独的存储库。没有选项可以选择存储库本身。
专家能否指导我如何进行这种集成,因为我们计划在存储库中存储一个回购和多个服务/应用程序。我们希望CI能够在GCP环境中运行。
发布于 2022-07-18 10:49:26
就个人而言,我发现在与GCP构建的集成方面,GitLab与GitHub和BitBucket相比是最差的(在GCP中运行部署)。
我不知道理想的解决方案,但我可能有两个想法。在我看来,没有一个是好的。
1/镜像GitLab存储库变成了GCP存储库--在我看来,将GitLab存储库镜像到云源存储库是最大的缺点之一--集成解决方案是基于个人证书的,并且应该有一个人让它工作-
如果Google帐户关闭或在Cloud存储库中失去Git存储库的访问权限,镜像将停止工作
当镜像完成时--您可能可以以一种普通的方式使用基于GCP的存储库,并像往常一样触发云构建作业。另一个问题-如何向那些启动部署的人提供部署日志.
2使用钩子。这不依赖于任何个人帐户,但不是很细的-正如您所提到的在整个存储库级别上推送。为了克服这个限制,可能会有一个非常棘手(内联)的yaml文件--由云构建触发器执行。在该yaml文件中,我们不仅应该获取代码,而且还应该解析该推送中的所有更改(所有提交),以找出哪些子目录(因此是独立的组件-云函数)可能被修改。然后,对于每个受影响的(修改的)子目录,我们可以触发(异步)其他一些云构建作业(其中包含位于该子目录中的yaml文件)。
一个明显的缺点--不清楚应该由谁和如何从所有这些部署中获取日志,特别是如果出了问题,开发(和管理)这样的部署过程可能会耗费时间/精力,而且不容易。
https://stackoverflow.com/questions/73019459
复制相似问题