在从生产部门合并到主分支部门时,如何在Gitlab CI/CD中增加版本或标记

在从生产部门合并到主分支部门时,如何在Gitlab CI/CD中增加版本或标记,git,gitlab,versioning,git-tag,gitversion,Git,Gitlab,Versioning,Git Tag,Gitversion,我正在做一个项目,我想标记或给出一个版本号。当合并发生并且我的CI/CD成功运行时,我希望gitlab在我的gitci.yml文件中标记v1.0、1.1等。您可以使用此工具。它通过提交前缀自动检测要增加的版本(主要、次要、补丁)。它不仅可以更新gitlab标记,还可以发送松弛通知、更新版本文件或任何自定义逻辑 示例设置如下所示(完整的示例链接将位于答案的末尾) .gitlab ci.yml文件 构建版本: 图像:节点:Dubinium 阶段:构建发布 脚本: -npm i语义发布@semanti

我正在做一个项目,我想标记或给出一个版本号。当合并发生并且我的CI/CD成功运行时,我希望gitlab在我的gitci.yml文件中标记v1.0、1.1等。

您可以使用此工具。它通过提交前缀自动检测要增加的版本(主要、次要、补丁)。它不仅可以更新gitlab标记,还可以发送松弛通知、更新版本文件或任何自定义逻辑

示例设置如下所示(完整的示例链接将位于答案的末尾)

  • .gitlab ci.yml
    文件
  • 构建版本:
    图像:节点:Dubinium
    阶段:构建发布
    脚本:
    -npm i语义发布@semantic release/changelog@semantic release/commit analyzer@semantic release/gitlab@semantic release/git@semantic release/npm@semantic release/release notes generator semantic release slack bot
    -npx语义释放
    仅:
    -主人
    除:
    参考文献:
    -标签
    变量:
    -$CI\u COMMIT\u TITLE=~/^RELEASE:+$/
    
  • .releaserc.yaml
    文件(与.gitlab ci.yml处于同一级别)
  • 分支:['master']
    ci:没错
    调试:正确
    dryRun:错误
    标记格式:“${version}”
    #全局插件选项(将传递给所有插件)
    预设:“常规提交”
    gitlabUrl:'http://gitlab.mycomany.com/“#您的gitlab url
    懒虫钩:'https://slack.xxx.com/hooks/q3dtkec6yjyg9x6616o3atgkkr“#如果需要,请通知
    #负责验证继续发布所需的条件:
    #配置正确,身份验证令牌有效等。。。
    验证条件:
    -“@semantic release/changelog”
    -“@semantic release/git”
    -“@semantic release/gitlab”
    -“语义释放松弛机器人”
    #负责确定下一版本的类型(主要、次要或补丁)。
    #如果定义了多个带有analyzeCommits步骤的插件,则发布类型将为
    #插件输出中最高的一个。
    #详情请参阅:https://github.com/semantic-release/commit-analyzer#configuration
    分析提交:
    -路径:“@semantic release/commit analyzer”
    #负责生成发行说明的内容。
    #如果定义了多个带有generateNotes步骤的插件,
    #发行说明将是每个插件输出串联的结果。
    生成节点:
    -路径:“@semantic release/release notes生成器”
    编写者注意事项:
    groupBy:“类型”
    委员会主席:“职务”
    commitsSort:'标题'
    linkCompare:对
    linkReferences:true
    #负责准备发布,例如创建或更新文件
    #例如package.json、CHANGELOG.md、文档或编译的资产
    #以及推动一项承诺。
    准备:
    -路径:“@semantic release/changelog”
    -路径:“@semantic release/git”
    消息:“发布:${nextRelease.version}”
    资产:['CHANGELOG.md']
    #负责发布发布。
    出版:
    -路径:“@semantic release/gitlab”
    成功:
    -路径:'semantic release slack bot'
    notifyOnSuccess:true
    markdownReleaseNotes:false
    失败:
    -路径:'semantic release slack bot'
    notifyOnFail:true
    
  • 要测试它,请尝试进行调试提交:
    $git commit--allow empty-m“fix:fake release”
    (将增加路径版本)


  • 完整的工作示例可用

    谢谢@ujlbu。其他使用其他语言的服务如何?@ILoveCode此解决方案与语言无关(不依赖于服务语言)。您只需要配置文件、适当的git提交前缀和命令行实用程序语义-release@ujlbu4,是否可以创建gitlab管道构建,并使用类似jenkins job的增量构建编号,如果是,请告诉我know@Pradeepkumar对于增量构建编号,请查看类似于
    CI\u PIPELINE\u ID
    CI\u JOB\u ID
    。顺便说一句,您不需要本文中的语义发布工具来使用预定义的环境变量