代码之家  ›  专栏  ›  技术社区  ›  Kay Zumbusch

Jenkins管道的全球内部版本号

  •  0
  • Kay Zumbusch  · 技术社区  · 8 年前

    我们正在为构建管理环境从VSoft Continua CI切换到Jenkins。由于我们使用了一个稍微修改过的Gitflow流程,我们希望Jenkins能够从任何特性、版本或热修复分支和pull请求进行构建,因此我们决定使用Jenkins管道。

    版本和修补程序分支生成的版本号基于分支名称(例如release/2.1.0),而任何其他分支或请求的生成基于日期(例如2018年9月6日解析为18.9.6)。Continua CI在所有构建配置中提供了一个自动递增的构建编号,这就是为什么我们将此构建编号用作构建编号的最终部分(例如2.1.0.10、18.9.6.11、2.1.0.12…)。此生成的版本号作为参数传递给MSBuild,使用此版本号作为.NET二进制文件的文件版本和程序集版本。

    我在詹金斯寻找类似的解决方案。Jenkins管道为每个分支和pull请求分配一个单独的自动递增的内部版本号,这可能导致来自不同分支的两个内部版本具有相同的版本。我已经尝试使用全局环境变量来存储版本,并在每次构建时增加值,但似乎无法从管道任务设置全局环境变量。

    Jenkins管道项目有没有办法在所有分支/拉请求之间共享一个内部版本号?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Chadi Kris Verlaenen    8 年前

    以下是一些想法:

    • 以文件为基础:让你的舞台在 master 节点;选择一个文件并决定格式(属性文件可以是一个很好的开始); lock read ,更新,写入, unlock

    • 将其委托给外部服务(例如,具有 request 身份证)。

    • 为它写一个插件。