在 Google Cloud Builder 中获取标签

Fetching Tags in Google Cloud Builder

在新创建的 google 容器构建器中,我无法在构建过程中获取 git 标签。在构建过程中,默认克隆似乎不会获取 git 标签。我添加了一个调用 git fetch --tags 的自定义构建过程,但这会导致错误:

Fetching origin git: 'credential-gcloud.sh' is not a git command. See 'git --help'. fatal: could not read Username for 'https://source.developers.google.com': No such device or address

# cloudbuild.yaml
#!/bin/bash

openssl aes-256-cbc -k "$ENC_TOKEN" -in gcr_env_vars.sh.enc -out gcr_env_vars.sh -
source gcr_env_vars.sh
env
git config --global url.https://${CI_USER_TOKEN}@github.com/.insteadOf git@github.com:

pushd vendor
git submodule update --init --recursive
popd

docker build -t gcr.io/project-compute/continuous-deploy/project-ui:$COMMIT_SHA -f /workspace/installer/docker/ui/Dockerfile .
docker build -t gcr.io/project-compute/continuous-deploy/project-auth:$COMMIT_SHA -f /workspace/installer/docker/auth/Dockerfile .

明确地说,您希望 Git 存储库中的所有标签都可用,而不仅仅是在标签更改时触发?在后者中,触发标签应该可用IIUC。

我会向 Container Builder 团队的某个人寻求更详细的解释,但该错误告诉我他们使用 gcloud 克隆了 Google Cloud Source Repository (GCSR),它配置了 Git 如此命名的凭证助手。他们可能在调用您的容器或主机上之前在另一个容器中执行此操作。由于 gcloud and/or gcloud 凭据助手在您的容器中不可用,因此您无法使用 GCSR 正确进行身份验证。

您可以进一步了解凭证助手 here

这对我有用,作为第一个构建步骤:

- name: gcr.io/cloud-builders/git
  args: [fetch, --depth=100]