Azure devops Azure Devops:在管道名称指令中使用时缩短$(SourceBranchName)

Azure devops Azure Devops:在管道名称指令中使用时缩短$(SourceBranchName),azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,Azure管道的yml定义文件始于 name:$(Build.DefinitionName)\u$(SourceBranchName)\u$(rev:rrrrr) 这样,我们就得到了很长的构建名称,这对在构建结果页面中显示有负面影响。因此,我们希望将$(SourceBranchName)缩短为前20个字符 有办法吗 我们希望将$(SourceBranchName)缩短为前20个字符 您可以尝试使用命令行\powershell脚本将长字符串拆分为短字符串 steps: - script: |

Azure管道的yml定义文件始于

name:$(Build.DefinitionName)\u$(SourceBranchName)\u$(rev:rrrrr)

这样,我们就得到了很长的构建名称,这对在构建结果页面中显示有负面影响。因此,我们希望将
$(SourceBranchName)
缩短为前20个字符

有办法吗

我们希望将$(SourceBranchName)缩短为前20个字符

您可以尝试使用
命令行\powershell
脚本将长字符串拆分为短字符串

steps:
- script: |
   echo $(Build.SourceBranchName)
   
   set  TestVar=$(Build.SourceBranchName)
   
   set MyCustomVar= %TestVar:~0,20%
   
   echo %MyCustomVar%
   
   echo ##vso[task.setvariable variable=CustomVar]%MyCustomVar%
   
  displayName: 'Get the first 20 character versions of Build.SourceBranchName'
然后我们可以得到
SourceBranchName
的短字符串

通常,
SourceBranchName
不同于
SourceVersion
,并且通常不是很长的字符串。如果您的
SourceBranchName
确实是一个很长的字符串,那么上述方法将对您有所帮助

你可以查看更多细节

注意:如果您想缩短生成名称,我们需要通过日志命令更新当前生成的生成编号(例如
写入主机“###vso[build.updatebuildnumber]buildnumber”
):

但是任务中无法使用
$(rev:rrrrr)
,因此我们必须以默认的内部版本号格式(选项)包含
$(rev:rrr)
,例如:
$(日期:yyyyMMdd)-(rev:rrr)
。并从预定义变量(
build.BuildNumber/build\u BuildNumber
)中获取当前版本号,然后解析
$(rev:rrrrr)
的值

我们希望将$(SourceBranchName)缩短为前20个字符

您可以尝试使用
命令行\powershell
脚本将长字符串拆分为短字符串

steps:
- script: |
   echo $(Build.SourceBranchName)
   
   set  TestVar=$(Build.SourceBranchName)
   
   set MyCustomVar= %TestVar:~0,20%
   
   echo %MyCustomVar%
   
   echo ##vso[task.setvariable variable=CustomVar]%MyCustomVar%
   
  displayName: 'Get the first 20 character versions of Build.SourceBranchName'
然后我们可以得到
SourceBranchName
的短字符串

通常,
SourceBranchName
不同于
SourceVersion
,并且通常不是很长的字符串。如果您的
SourceBranchName
确实是一个很长的字符串,那么上述方法将对您有所帮助

你可以查看更多细节

注意:如果您想缩短生成名称,我们需要通过日志命令更新当前生成的生成编号(例如
写入主机“###vso[build.updatebuildnumber]buildnumber”
):


但是任务中无法使用
$(rev:rrrrr)
,因此我们必须以默认的内部版本号格式(选项)包含
$(rev:rrr)
,例如:
$(日期:yyyyMMdd)-(rev:rrr)
。并从预定义变量(
build.BuildNumber/build\u BuildNumber
)中获取当前版本号,然后我们解析
$(rev:rrrrr)

的值。我有一个很好封装的任务,名为Transform variable,带有子字符串选项:。还有一个Regex搜索和替换选项。我有一个很好封装的任务,名为Transform Variable,带有一个子字符串选项:。还有一个Regex搜索和替换选项。您好,这个问题怎么样?下面的答案解决了你的问题吗?如果可以,那么它可以帮助其他遇到相同问题的社区成员,我们可以存档此线程,谢谢。您好,这个问题如何?下面的答案解决了你的问题吗?如果可以,那么它可以帮助其他社区成员解决同样的问题,我们可以存档此线程,谢谢。