git - Azure Dev Ops 构建参数来定义 BuildNumber?
问题描述
我有一个 git 存储库,其中有一个master
分支,我们从中feature\myFeature
获取、处理,然后将拉取请求返回到master
.. 非常直截了当。
当一个feature
分支被推送到 git repo 时,我们有一个在该分支上运行的构建过程,并生成一个构建。它从项目的程序集中获取 semver 信息 major.minor.patch ..
我想做的是(取决于构建是否打开feature
或master
)更改构建名称的构建..
就像是:
feature
--> 1.0.3-alpha1, 1.0.3-alpha2, 1.0.3-alpha3master
--> 1.0.3-rc1, 1.0.3-rc2
我现在面临的挑战是,从使用 $(Rev:r) 得出的最后数字似乎无法用于我为计算内部版本号而编写的 PowerShell 任务中......
我试图围绕设置内部版本号进行一些测试,例如:
Write-Output ("##vso[task.setvariable variable=ReleaseType]alpha")
然后做...
$(ReleaseType)$(Rev:.r)
似乎将发布名称“锁定”为 ReleaseType var 的原始值。
我尝试过的另一个选择是:
Write-Output ("##vso[build.updatebuildnumber]"-alpha")
但这只会覆盖选项表内部版本号格式框中的任何内容...
我正在尝试做的事情可能吗?我猜另一种选择是为每种分支类型设置不同的构建过程..似乎有点OTT..有没有办法从PowerShell派生$(Rev:.r)?
解决方案
我们不能$(Rev:.r)
在 PowerShell 中使用令牌。
如果您只想更改构建名称的构造,例如:
feature
--> 1.0.3-alpha1, 1.0.3-alpha2, 1.0.3-alpha3master
--> 1.0.3-rc1, 1.0.3-rc2
然后您可以创建两个 CI 构建管道(一个 forfeature
和另一个 for master
)并Build number format
直接设置如下:
feature
-->1.0.3-alpha$(rev:.r)
master
-->1.0.3-rc$(rev:.r)
根据您的描述,您可以使用major.minor.patch
项目程序集中的 semver 信息作为内部版本号的一部分(前缀)。在这种情况下,令牌$(rev:.r)
不是增量的,因为前缀总是在变化,所以 的值$(rev:.r)
总是1
。详情请参阅代币。
使用 $(Rev:.r) 确保每个完成的构建都有一个唯一的名称。构建完成后,如果构建编号中没有其他任何内容发生变化,则 Rev 整数值将增加 1。
推荐阅读
- ios - 向 Xcode 10 Core Data 生成的文件添加方法
- c# - SQLiteOpenHelper - 无法访问已处置的对象
- php - 如何在php中完全解码base64字符串?
- c# - 尝试根据属性类型从 DataTable 中删除特定列
- c++ - 用于保存任何维度数组的 C++ 变量
- user-interface - 有没有使用 Solidity 创建 GUI 的选项?
- reactjs - onChange 中的多个函数?我看到的答案不起作用
- data-structures - 使用堆栈将中缀转换为后缀表达式时该怎么办?
- javascript - 如何导航到另一个页面而不在 NextJs 中重新加载整个页面?
- selenium - 是否可以使用 Selenium 关闭在不同会话中打开的所有浏览器?