You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Cloud Build触发器使其根据git commit message跳过Docker镜像构建

Cloud Build跳过Docker构建的实现方案

你可以通过Cloud Build的条件执行能力结合Commit Message拉取逻辑实现该需求,具体步骤如下:

1. 前置准备:拉取Commit Message到流水线

Cloud Build默认不会把Git提交信息内置为环境变量,你需要先新增一个步骤拉取当前提交的Message存到工作区:

steps:
  # 拉取最新提交的Commit Message并存入临时文件
  - name: 'gcr.io/cloud-builders/git'
    entrypoint: 'bash'
    args:
      - '-c'
      - 'git log -1 --pretty=%B > /workspace/current_commit_msg.txt'

可选简化配置:你可以直接在Cloud Build触发器的「替换变量」栏新增自定义变量 _COMMIT_MSG,值设置为$(body.commit.message),配置后无需新增上面的git拉取步骤,可直接在后续步骤中引用该变量。

2. 给Docker构建步骤添加执行条件

在你原有执行Docker镜像构建的步骤中,新增if判断规则,仅当Commit Message不包含skip-docker-creation标识时才执行该步骤:

# Docker构建步骤,增加跳过判断
  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/你的项目ID/镜像名:版本号', '.']
    # 用git拉取文件的判断写法
    if: '!contains(readFile("/workspace/current_commit_msg.txt"), "skip-docker-creation")'
    # 如果用触发器自定义变量的判断写法,替换上面的if为下面这行即可
    # if: '!contains($_COMMIT_MSG, "skip-docker-creation")'

注意事项

  • 如果你需要大小写不敏感的匹配,可以用lower()函数包裹内容,示例:!contains(lower(readFile("/workspace/current_commit_msg.txt")), "skip-docker-creation")
  • 如果你的流水线还有Docker镜像推送、安全扫描等依赖构建结果的后续步骤,需要给这些步骤也加上相同的if条件,避免找不到镜像触发流水线报错。

内容的提问来源于stack exchange,提问作者Yash Saini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:24:00