【发布时间】:2016-12-01 06:45:24
【问题描述】:
我们 CI 的一部分是使用 version.txt 文件中指定的版本标记我们的 repo。我们只是这样做:
git tag `cat version.txt`
由于我们无法自动增加版本(无法知道我们是在做主要版本还是次要版本),所以更新version.txt 文件留给了个人开发人员。这意味着错误可能而且确实会发生。
我们想要的是:
- 如果版本已更新,则应标记并部署存储库。
- 如果版本尚未更新,CI 周期应该会失败。
- 但是如果手动重启 CI 周期,这应该可以顺利运行
如果git tag 在我想用它已有的标签标记当前提交时没有失败,则可以轻松满足要求 3。
也就是说,如果标签 1.2.3 已经在旧的提交中(好),git tag 1.2.3 会失败,但如果它在我想要标记的提交中(坏),它也会失败。
如果我想用它已经拥有的标签之一标记当前提交,有没有办法告诉git tag 不要失败?
否则我需要自己实现这个功能,通过获取标签所引用的提交,并根据 HEAD 中的当前提交检查它。
【问题讨论】: