首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ConcourseCI中的自动分词器

ConcourseCI中的自动分词器
EN

Stack Overflow用户
提问于 2019-03-28 16:06:09
回答 1查看 1.5K关注 0票数 1

我有一个ConcourseCI管道,它使用以下资源类型自动递增我的版本号:https://github.com/concourse/semver-resource

我的资源声明如下所示:

代码语言:javascript
复制
  - 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}}

我的工作是这样的:

代码语言:javascript
复制
- 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/上列出的建议。

EN

回答 1

Stack Overflow用户

发布于 2020-03-19 08:58:35

我对这个问题的解决方案是标记提交,以及一个读取Git提交消息并根据内容执行版本步骤的脚本:

如果当前提交中存在版本标记:始终执行步骤修补程序。

其他:

列出所有提交直到上一个标记。

  • 如果任何消息包含“步骤:主要”,那么步骤主要
  • 否则,如果所有消息都包含“步骤:修补程序”或“步骤:微”,那么步骤修补程序
  • 其他步骤小调

这意味着,如果提交者没有在消息中声明任何内容,那么更改将被假定为一个功能更改。

在发布构建的工件之前,标记并推送提交。否则,下一个构建将生成一个已经存在的版本。

只需根据您的用例需要修改逻辑即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55402179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档