如何配置Google Cloud Build仅在Dockerfile变更时触发镜像构建
仅当Dockerfile变更时触发Cloud Build镜像构建的实现方案
我目前使用Cloud Build配置了自动触发规则,每当有人向Cloud Source Repo的对应分支推送变更时,就会自动触发Docker镜像构建。现在我希望调整触发逻辑,仅当Dockerfile发生变更时才执行镜像构建任务。
在GitHub Actions中实现同类需求时,我可以执行git diff --name-only ${{ github.event.before }}..${{ github.sha }}命令,获取上一次推送/合并到最新提交之间的变更文件列表做判断,但我未找到Cloud Build中与${{ github.event.before }}等效的环境变量,一度没有找到合适的实现方案。
最终验证可行的解决方案
使用*included files filter(包含文件过滤器)*即可直接满足需求,官方规则说明如下:
Included files为触发器的可选配置项:当提交变更至少命中列表中的一个文件时,才会触发构建。你可以使用glob字符串配合通配符指定多个文件,支持的通配符包括Go Match支持的字符、**通配符以及多选匹配规则。
具体配置方式如下:
- 若需要在仓库任意路径下的Dockerfile发生变更时触发构建,在触发器的「包含的文件」配置项填入
**/Dockerfile即可 - 若仅需要匹配仓库根目录的Dockerfile变更,直接填入
Dockerfile即可
内容的提问来源于stack exchange,提问作者kwong
相关产品推荐
相关产品推荐

