我用Azure Pipelines(Azure DevOps)创建了一个新构建,并且效果很好。
通常,您使用$(Rev:.r)
在构建中获取修订版。不幸的是,似乎在构建步骤中未更换/设置该变量。您唯一可以使用它的地方是YAML文档中的name:
属性。
现在,我将其设置为名称并在某些PowerShell中提取,如果您可以通过环境变量获得它,则无需进行。
如何在新构建中(yaml文档中的name:
属性之外)中获得修订版(例如$(Rev)
)?
(docker内部运行内部运行的构建代理 - 但这不应影响上述内容)
您无法在不解析的情况下获得修订号,而是在某个地方或环境变量中将其存储为单独的字段。
$(Rev:.r)
部分指示Azure DevOps提出的第一个数字使构建号独特(在该特定示例中,将一个点放在其前面)。
就像您说的那样,唯一的方法是使用PowerShell脚本来获取值:
$buildNumber = $Env:BUILD_BUILDNUMBER
$revision= $buildNumber.Substring($buildNumber.LastIndexOf('.') + 1)
编辑:
您可以安装执行此操作的Get修订号扩展名。
上述问题的另一个可能的解决方案可能是使用counter Expression for ex:我们差异变量并将其用于构建Nuget软件包。
variables:
counterVar: $[counter($(versionVariable),0)]
.......
- task: CmdLine@2
inputs:
script: >
nuget pack ClassLibrary1/ClassLibrary1.csproj
-OutputDirectory $(Build.ArtifactStagingDirectory)
-NonInteractive
-Properties Configuration=release
-Version $(versionVariable).$(counterVar)
-Verbosity Detailed
-IncludeReferencedProjects
此处版本Variable是一个在管道 - >变量中定义的CUSTOME变量。种子值为0(第二个参数)。它的工作如下假设版本Variable为1.19
- 构建运行1反var将为0。
- 构建运行2反var为1。
- 现在说我们将版本变化为1.20
- 构建运行3反var将为0。
https://learn.microsoft.com/en-us/azure/devops/pipelines/process/process/expressions?view= azure-devops在上面的链接中检查计数器表达式,它重置了diff前缀的值。
P.S。使用计数器超过$(REV:R)的好处是,它可以从0开始,与$(REV:R)