Bamboo无法从Bitbucket拉取Git标签,构建脚本执行失败求助
Bamboo构建中Git标签获取失败的问题与解决方案咨询
我们的bamboo-specs YAML文件中包含如下checkout任务:
- checkout: force-clean-build: "false" description: Checkout default repository
构建流程中需要执行发布分析,该分析需获取仓库中所有Git标签及其对应的哈希值。本地通过git tag获取所有标签,再用git rev-list -n 1 <tag>获取每个标签的哈希,运行正常,但在Bamboo上执行失败——Bamboo检出的仓库中无法找到这些标签,而这些标签已推送到Bitbucket上游(例如Bamboo Web界面显示1.0.0rc1存在,但分析脚本无法找到)。
推测Bamboo的checkout任务采用了轻量克隆方式(如浅克隆或仅拉取当前分支相关对象),这种方式在仅构建单个哈希时合理,但会导致标签或其对应对象缺失。查阅checkout任务官方文档未发现可拉取标签的配置选项,仅找到类似Jenkins问题的解决方案但不适用于Bamboo。
现咨询以下两种方案的可行性:
- 在bamboo-specs YAML中配置
checkout任务,使其拉取所有Git标签; - 在checkout任务后添加新任务,在Bamboo仓库目录中执行
git fetch --tags(后续可能还需获取完整仓库历史)。
额外报错日志
执行git tag时的报错:
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!
另外,怀疑标签实际存在,但对应的对象因浅克隆缺失,想了解是否有办法无需对应对象即可获取标签与哈希的映射关系。
内容的提问来源于stack exchange,提问作者paxdiablo
相关产品推荐
相关产品推荐

