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



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

。假设我们的存储库是这样的:

./client/<client code>
./server/<server code>
在我们的两个触发器中,我们像这样指定Included files过滤器:
  • 触发器1:包含的文件:client/**
  • 触发器2:包含的文件:server/**

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

为了说明这个问题:假设我们通过以下提交来推送一个分支:

  • Commit 1:
  • Commit 2:

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

有没有办法让GCB"看到"?在决定运行哪个触发器时,推入的分支中的所有更改?显而易见的快速解决方案是创建带有单次提交的分支,这使得所有触发器都运行,但从我们的git工作流的角度来看,这并不理想。

如果将触发器类型设置为" push to a branch ",那么git将无法跟踪对所有分支所做的更改,而只能跟踪您所描述的最后一次提交。

要完成这一点,您必须使用Pull Requests来触发构建。当创建拉取请求时,git将能够适当地跟踪更改,并且您的测试将按预期运行。因此,将触发构建的事件更改为"Pull request"。然后从您的分支创建一个拉取请求来触发构建,从而触发您的测试。

相关内容

  • 没有找到相关文章

最新更新