【问题标题】:Fetching Tags in Google Cloud Builder在 Google Cloud Builder 中获取标签
【发布时间】:2017-03-29 13:44:14
【问题描述】:

在新创建的 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 repo 的信息
  • 如果不知道您添加的“自定义构建过程”的详细信息,很难回答您的问题。您介意透露您的构建步骤吗?
  • @DavidBendory,我用构建步骤更新了问题

标签: google-container-registry google-compute-engine


【解决方案1】:

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

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

【讨论】:

  • 我认为这对您有用,因为您使用的是 git 映像,对吗?我正在使用gcr.io/cloud-builders/docker
  • 为什么不在该步骤中使用 git 映像?
  • 哦!我想我可以使用它!不知道为什么我没有想到。不过,你知道为什么 gcr 构建器不获取标签吗?
  • 我发现他们确实提取了标签。但我确实有一个额外的问题,发布在这里:github.com/GoogleCloudPlatform/cloud-builders/issues/43
【解决方案2】:

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

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

您可以了解更多关于凭证助手here 的信息。

【讨论】:

  • 正确,我正在触发一个分支,我希望所有标签都可以在构建器容器中使用。我依靠标签一直到 UI 页面来通知我正在运行哪个版本/标签
  • 我有点惊讶的是,将所有内容(类似于 TravisCI)提取到一定深度并不是默认设置
  • 这是发生在构建触发器中还是在手动提交的构建中?
  • 这发生在构建触发器中
  • 我能够通过执行以下操作来解决该问题:1)创建 github api 访问帐户。 2) 确保我使用带注释的 git 标签 3) git 从 repo 中提取更多历史记录 (--depth=200)。看起来建设者只获取最后一次提交。 3)被这个SO答案告知:stackoverflow.com/a/6445255/2258766
猜你喜欢
  • 2016-12-31
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 2020-12-21
  • 1970-01-01
  • 1970-01-01
  • 2017-01-02
  • 2017-01-07
相关资源
最近更新 更多