无法从云构建中提取 BRANCH_NAME

Not able to pull BRANCH_NAME from cloud build

每个文档 https://cloud.google.com/cloud-build/docs/configuring-builds/substitute-variable-values

我应该拉 $BRANCH_NAME 但不知何故它不一致。有时它显示回购名称,有时什么也没有。

这是我的步骤

steps:
  - name: "gcr.io/cloud-builders/go"
    env:
      - "PROJECT_ROOT=blah"
      - "GOOS=linux"
      - "GOARCH=amd64"
      - "CGO_ENABLED=0"
    args:
      [
        "install",
        "-ldflags",
        "-d -s -w -X main.version=${TAG_NAME} -X main.commit=${SHORT_SHA} -X main.branch=${BRANCH_NAME}",
        "-a",
        "-tags",
        "netgo",
        "-installsuffix",
        "netgo",
        "blah/cmd/svc-api",
      ]

这是我在控制台上看到的:

Step #0 - "go-install": Running: go install -ldflags -d -s -w -X main.version=0.0.6p20-dev -X main.commit=ebf5281 -X main.branch= -a -tags netgo -installsuffix netgo blah/service

从我的服务开始:

我缺少分支名称。

Service : 2019/02/27 17:04:06.570856 main.go:135: TRACE MAIN : Started : Service Initializing version "0.0.6p20-dev" : **""** : "ebf5281"

似乎是因为我的构建是基于标签触发的,没有传递分支名称。但是我找到的解决方案是在构建过程中使用 substitutions

https://cloud.google.com/cloud-build/docs/configuring-builds/substitute-variable-values