如何在Azure Pipelines yaml构建定义中接收修订



我用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)

不同

最新更新