【问题标题】:Azure devops: Increase counter only on masterAzure devops:仅在 master 上增加计数器
【发布时间】:2022-01-05 09:52:03
【问题描述】:

我想在 azure devops 管道中自动化我的版本控制。它的工作方式如下:

  1. 主要编号为常数,将手动增加。
  2. 每次构建主分支时,次要编号都应递增。
  3. 在开发分支上,次要编号不应增加,但始终将主分支使用的最后一个值加一。

(Develop-Build 编号会有一个额外的增加修订,但这不是问题的一部分。我也省略了补丁编号以使示例更短。)

例子:

  1. 构建大师 => 主要 1,次要 1
  2. 构建开发 => 主要 1,次要 2
  3. 构建开发 => 主要 1,次要 2
  4. 构建大师 => 主要 1,次要 2
  5. 构建开发 => 主要 1,次要 3
  6. 构建开发 => 主要 1,次要 3
  7. 构建大师 => 主要 2,次要 1
  8. 构建开发 => 主要 2,次要 2

我已经为 master 分支管理了自动增量,比如

variables:
  major: 1
  minor: $[counter(variables['major'], 1)]

结合条件

eq(variables['Build.SourceBranch'], 'refs/heads/master')

但我不知道如何从开发版本中获取下一个计数器值而不增加它。

【问题讨论】:

  • 您是否已经考虑过使用gitversion 之类的东西?它可以很容易地做你想做的事情,并且已经有管道任务可以用于运行版本控制工具和标记提交。

标签: azure-devops azure-pipelines


【解决方案1】:

我认为,这对于计数器和条件是不可能的。但是,您可以考虑使用可变组(主要和次要)并将您的构建拆分为主要和开发。

  1. 主版本使用主要和主要版本,然后在完成后增加次要版本。 (Add & use variable groups, How to Increase/Update Variable Group value using Azure Devops Build Definition?)
  2. 开发构建使用major 和major,并在构建名称的末尾添加一些自动增量(如$(Rev:.r))。 (Configure run or build numbers, Versioning Strategy)

【讨论】:

  • 问题的主要部分是在开发版本中使用与主版本中的最后一个次要编号相匹配的次要版本加一。我看不出你的解决方案是如何实现的。
  • 为了写入变量组,您必须从管道中访问 azure devops 的 http api。我不认为这是 azure devops 推荐的。无论如何感谢您的回答。它帮助我清晰地思考。
  • @Zomono I dont see how your solution achieves that. 主构建运行 (mj:1;mn:1) 然后设置 (mn+1)。开发构建运行 (mj:1;mn:2;Rev:1)。下一个开发构建运行 (mj:1;mn:2;Rev:2)。主构建运行 (mj:1;mn:2) 然后设置 (mn+1)。开发构建运行 (mj:1;mn:3;Rev:1)。下一个开发构建运行 (mj:1;mn:3;Rev:2)。
  • @Zomono In order to write to variable groups you have to access 从管道更新 Azure DevOps 资产没有问题。您可以管理构建服务帐户的访问权限。
  • 立即获取“提前主要变量”。谢谢。
猜你喜欢
  • 2021-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-02
相关资源
最近更新 更多