据我所知,有两种方法可以在 GitHub 存储库上触发 Google Cloud Build:
- 所有拉取请求都是自动构建的
- 定义一个触发器,然后在更改分支时运行
未合并的 GitHub 拉取请求有 2 个引用,如下所示:
$ git ls-remote
From git@github.com:user/repo
1680161331c0a0ebcf59fb1ef2f4dbe27b857418 HEAD
9e1d427bfcd97d8ac2eda7661cc8a21da2355d19 refs/heads/if_deps
ee8328eb1e5fa38c9cc39c86d8b0896c9eaec73c refs/heads/mcmc-fixes
1680161331c0a0ebcf59fb1ef2f4dbe27b857418 refs/heads/master
94d3a40412aff060a2a820d164dfd52050cac192 refs/pull/1/head
9e1d427bfcd97d8ac2eda7661cc8a21da2355d19 refs/pull/2/head
ccb44a8c12ed9d79e76551e7876892c9e87de032 refs/pull/2/merge
ee8328eb1e5fa38c9cc39c86d8b0896c9eaec73c refs/pull/3/head
f9928f924698042939008e8526094662b7f44125 refs/pull/3/merge
- PR #1 已合并,只有
refs/pull/1/head
- PR #2 和 #3 尚未合并并且
refs/pull/2/merge
也存在
不幸的是,自动拉取请求触发器只构建refs/pull/*/head
参考而不是refs/pull/*/merge
参考。更重要的是构建refs/pull/*/merge
证明拉取请求可以安全地合并到master中。
所以我试图定义一个触发器来运行refs/pull/*/merge
据我所知,Google Cloud Build 触发器只匹配表单的 GitHub 引用refs/heads/<regex>
:
refs/pull/*/merge
更改分支时是否可以触发构建?