Bamboo 似乎没有从 Bitbucket 获取标签

问题描述 投票:0回答:1

我们的bamboo-specs YAML 文件中有一个签出任务:

- checkout:
  force-clean-build: "false"
  description: Checkout default repository

作为构建过程的一部分,我们希望对项目运行发布分析,并且此分析需要了解当前在存储库中设置的所有标签及其 git 哈希值。该脚本使用

git tag
获取所有标签,然后针对每个标签使用
git rev-list -n 1 <tag>
获取哈希值。

但是,虽然该脚本在我的本地存储库中运行良好,但在 Bamboo 上却失败了,因为这些标签似乎在其签出的存储库中不存在。这些标签肯定存在于 BitBucket 中(我已将它们推到上游)。例如,Bamboo Web 界面显示

1.0.0rc1
存在,但在 Bamboo 上运行的分析脚本找不到它。

我的猜测是,Bamboo

checkout
任务正在执行某种类型的“轻量级”克隆。我知道我以前工作过的商店也做类似的事情,例如只进行浅层克隆,或者只获取影响分支的对象作为克隆的一部分被签出。

这是可以理解的,因为如果你只想构建一个哈希,那么获取整个存储库历史记录就没有什么意义)。

寻找解决方案没有找到任何结果。有一个与 Jenkins 相关的问题,它很相似,但当然,那不是 Bamboo。

checkout任务上的

文档
没有显示任何有用的选项(例如“也获取该死的标签[X]`),所以那里没有任何乐趣:-)

所以我想知道是否有办法:

  • 告诉
    checkout
    (在bamboo-specs YAML文件中)我需要它来获取所有标签;或
  • 弄清楚如何在结帐后运行运行的任务
    git fetch --tags
    (假设我可以确保从 Bamboo 存储库中运行它)。

后一种可能性可能是最好的,因为我稍后可能需要其他东西(例如整个回购历史记录,而不仅仅是标签)。


额外信息,尝试

git tag
时 Bamboo 日志的输出为(为了便于阅读而格式化):

build 18-Apr-2024 08:02:40 <<< ERROR[0bbdd4cc]: error: object directory
      /home/bamboo/bamboo-agent-home/xml-data/build-dir/_git-repositories-cache/
      9c8324fc55f93ea4c7a0730ef5791ddc872de550/.git/objects
   does not exist; check .git/objects/info/alternates

git rev-list

build 18-Apr-2024 08:02:40 <<< ERROR[0bbdd4cc ]: error: refs/tags/1.0.0rc1
   does not point to a valid object!

所以我想知道标签 do 是否存在,但只是它们指向的对象不存在(因为前面提到的浅克隆可能性?)。如果是这样,也许有一种方法可以在不存在支持对象的情况下获得标签到 git 哈希的映射。

bitbucket bamboo git-tag bamboo-specs
1个回答
0
投票

© www.soinside.com 2019 - 2024. All rights reserved.