从
文档中可以看出,变量
Rev:.r
是每日版本构建的修订计数器。使用该“解决方案”,一天后将会有版本号为
1.0.12
,然后第二天就变成了
1.0.1
。
如果要使用简单增量和
独立的semver,请使用
1.0.$(BuildID)
。
$(BuildID)
是用于您的构建的内部不可变计数器,因此比
$(BuildNumber)
更清晰。
BuildID将始终递增-不会重置。
因此,在进行次要更新后,例如
1.2.123
变成
1.3.124
。
如果想要完成这个任务,可以使用
npm version或类似工具,例如针对Dart或Flutter构建的
pubspec_version。
- script: npm version $RELEASE_TYPE
其中 $RELEASE_TYPE
是一个变量,根据构建(例如:CI、PR等)可以进行设置,其值可以是 major
、minor
、patch
、prerelease
等。
- script: npm version $RELEASE_TYPE
condition: startsWith(variables['build.sourceBranch'], 'refs/head/release/')
env:
releaseType: minor
更新:升级仓库版本并在构建中使用(使用npm)
为了使仓库版本更新,我最终将npm version作为DevDependency包含在内,并使用其预提交钩子在任何提交时提升项目版本。
这种技术可以应用于其他项目类型,将它们放在子文件夹中 - 虽然可能会导致与服务器操作系统要求的复杂性。
要在您的构建中使用此版本,请添加此 bash脚本任务,该任务获取并导出版本作为任务变量:
v=`node -p "const p = require('./package.json'); p.version;"`
echo "
.Net Core 仅任务版本
很遗憾,没有仓库升级。
jobs:
- job: versionJob
steps:
- powershell: |
$fv = Get-Content versionFile
Write-Host ("##vso[task.setvariable variable=versionFromFile;isOutput=true]$fv")
displayName: 'version from file'
name: setVersionStep
- job: buildJob
dependsOn: versionJob
variables:
versionFromFile: $[ dependencies.versionJob.outputs['setVersionStep.versionFromFile'] ]
buildIncrementalNumber: $[ counter(dependencies.versionJob.outputs['setVersionStep.versionFromFile'],1) ]
steps:
- powershell: |
Write-Host ($env:versionFromFile)
Write-Host ($env:versionFromFile + '.' + $env:buildIncrementalNumber)
displayName: 'version from file output'
这篇文章描述了一些其他方式,使用version-prefix并自动将BuildNumber应用为version-suffix。