我有一个ConcourseCI管道,它使用以下资源类型自动递增我的版本号:https://github.com/concourse/semver-resource
我的资源声明如下所示:
- name: version
type: semver
source:
driver: git
initial_version: 0.0.1
uri: {{version-repo-uri}}
branch: {{version-repo-branch}}
file: {{version-file}}
private_key: {{git-key}}我的工作是这样的:
- name: increment-version
plan:
- get: {{git-repo-name}}
trigger: true
- get: version
params: {bump: patch}
- put: version
params: {file: version/version}所以,正如你所看到的,现在我总是撞补丁版本。然而,我想要一个简单的,最好是自动化的方式,管道增加主要,次要,补丁或RC版本取决于具体情况。
是否有一个吉特钩或类似的东西,将知道什么时候应该撞什么?当自动进入管道时,有什么实现的最佳实践吗?还有其他我应该使用的集合资源类型吗?还是这件事我们应该留给人类来决定?在这种情况下,如何轻松地将“手动”步骤集成到CD管道中?
我能想到的最接近的事情是在我的项目中有一个版本文件(提交给github),它将设置主要的、次要的补丁号。管道以某种方式获取该文件,将其用作基,并且只增加RC编号,但这感觉非常容易出错。
要明确的是,我并不是问如何在理论上发布版本,以及什么是主要的,次要的,或补丁的含义。在实践中,我询问如何实现https://semver.org/上列出的建议。
发布于 2020-03-19 08:58:35
我对这个问题的解决方案是标记提交,以及一个读取Git提交消息并根据内容执行版本步骤的脚本:
如果当前提交中存在版本标记:始终执行步骤修补程序。
其他:
列出所有提交直到上一个标记。
这意味着,如果提交者没有在消息中声明任何内容,那么更改将被假定为一个功能更改。
在发布构建的工件之前,标记并推送提交。否则,下一个构建将生成一个已经存在的版本。
只需根据您的用例需要修改逻辑即可。
https://stackoverflow.com/questions/55402179
复制相似问题