我最近配置了一个存储库,以便在我推送git tag
匹配的“vX.YZ”时自动部署版本,但此过程并非完全自动。< / p>
具体来说,我必须在源代码中更新我的版本号(即碰撞“vX.Y.Z”),然后才能将其标记为要构建。
所以看来我有几个选择
master
在我看来,手动更新版本号是首选,因为在部署版本之前需要更多的工作量,并且版本与提交相关联,而不是在CI必须更新版本号的情况下落后于一个提交。 (另外,我不想在更新master
)
我无法在网上找到强烈的意见,所以我很好奇:
让我的CI构建服务器提交进入是不好的做法 我的存储库?
答案 0 :(得分:0)
如果您可以使用vX.Y.Z. BuildVersion 版本控制方案,我会推荐以下内容。
答案 1 :(得分:0)
详细说明最初的问题,该问题比标记示例更为重要。有时,我们的CI会在生成工件之前修改回购的内容。举例来说,假设您已将配置文件与应用程序代码一起提交。您通常会将它们打包在一起(例如,在Docker映像中),然后将其作为构建过程的结果进行交付。如果您的CI通过更改某些值来修改这些文件,您将如何对待它们?
在不重新运行整个构建的情况下将文件提交回相同的仓库,将使配置保持一致,但会使构建过程混乱,如果在此期间仓库被更改,则可能会引起问题。
在最终工件中使用新配置非常容易,但是如果您回头看,该工件将无法反映回购的实际内容。
将这些工件外部化为新的回购协议是一种选择,但打破了最佳实践,以最大限度地减少构建应用程序所需的依赖项数量。