繁体   English   中英

GCP 云构建,包含的文件过滤器不适用于新分支

[英]GCP Cloud build, included files filter is not working for the new branch

我正在使用 GCP 云存储库(用于镜像),以及用于 CI 和 CD 的 GCP 云构建。 而且在推送新分支时我会遇到麻烦,所有触发器都会被触发。

例如,

Directory:
/a/
/b/
/c/

Triggers set,
Trigger A, included files filter set /a/**
Trigger B, included files filter set /b/**
Trigger C, included files filter set /c/**

$(master) git checkout -b new-branch
$(new-branch) git push

就像上面的例子,如果我从 master 创建一个新分支然后推送它,它将触发所有触发器。

我了解到新分支包含所有目录 /a/, /b/, /c/ 但是随着触发器的数量越来越多,很难确定这些更改是否会影响其他服务。 并且浪费资源。

这种情况有什么解决办法吗?

根据文档,将新分支推送到您的存储库将始终触发您的构建并忽略文件过滤器。

如果您将更改推送到新创建的分支,则 Cloud Build 会将存储库中的所有文件视为已更改的文件。

我发现这个Issue tracker 是针对一个仍然开放的类似问题提出的。 问题跟踪器中针对此问题提供了某些解决方法。 您可以看看这个解决方法:

  1. 为每个分支使用不同的 cloudbuild.yaml 文件
  2. 按照Github Issue中的建议覆盖入口点并注入 bash
  3. 如果您更喜欢跨环境使用单个 cloudbuild.yaml,则可以使用 bash 模式解决方法。 (请注意,通过此更新,您还可以在构建触发器中使用替换变量来通过分支、标签等使用不同的环境变量来参数化单个 cloudbuild.yaml)
  4. 正如文档中所建议的,当通过应用程序与 GitHub 集成时,您现在可以创建构建触发器来自定义要在特定回购事件上运行的构建。 例如,您可以将构建触发器设置为仅在拉取请求 (PR)、推送到主控或发布标签时触发。 您可以进一步指定不同的构建配置以用于每个触发器,让您可以根据所做更改的分支、标记或 PR 自定义要运行的构建步骤。

也看看这个thread1 & thread2这可能会有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2023 STACKOOM.COM