github - 如何让 Google Cloud Build 触发分支中所有提交的更改

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

当我们推送分支时,我们使用 Google Cloud Build 对 Github 存储库运行不同的测试。我们的问题是,只有分支中的最后一次提交似乎会影响运行哪些触发器。

例如假设我们的存储库如下所示:

./client/<client code>
./server/<server code>

在我们的两个触发器中,我们指定 Included files filter像这样:

  • 触发器 1:包含的文件:client/**
  • 触发器 2:包含的文件:server/**

问题在于,只有分支中应触发构建的最后一次提交才会影响要运行的触发器。

为了说明问题:假设我们推送具有以下提交的分支:

  • 提交 1:<对 client/foo.js 的更改>
  • 提交 2:<对 server/bar.scala 的更改>

仅运行“触发器 2”。我们想要的是两个触发器都运行,因为我们想要对分支引入的所有更改运行测试。

在决定运行哪些触发器时,有什么方法可以让 GCB “查看”推送的分支中的所有更改吗?明显的快速修复方法是创建具有单个提交的分支,这使得所有触发器都运行,但从我们的 git 工作流程的角度来看并不理想。

最佳答案

将触发器类型设置为“推送到分支”时,git 无法跟踪对所有分支所做的更改,而只能跟踪您所描述的最后一次提交。

要实现此目的,您必须使用拉取请求来触发构建。创建拉取请求时,git 将能够适本地跟踪更改,并且您的测试将按您的预期运行。因此,将触发构建的事件更改为“拉取请求”,然后从您的分支创建拉取请求以触发构建,从而触发您的测试。

关于github - 如何让 Google Cloud Build 触发分支中所有提交的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72599079/

相关文章:

laravel - 在 Google App Engine 上部署 Laravel - 灵活

google-cloud-platform - 数据流混合整数和长类型

docker - COPY失败:未指定源文件

stackdriver - 使用 Stackdriver 监控 Cloud Build 错误并发出警报

github - 通过 Github API 从 Github 存储库中获取所有文件名

Git 作者未知

github - 如何通过 GitHub API 获取 Git 标签中的所有提交

git - 在 Web 界面中更新 GitHub 分支存储库

python - 以编程方式为 GCP 的 OAuth 2.0 客户端 ID 中的授权重定向 URI 添加 URU

google-cloud-build - 是否可以从由 GCB 步骤构建和启动的容器访问服务帐户凭据?