Azure devops 清理分支名称以避免网站名称出现问题

Azure devops 清理分支名称以避免网站名称出现问题,azure-devops,Azure Devops,我正在使用Azure Devops发布管道自动将请求发布到测试域branchname.blabla.com 一切正常,但有时分支名称包含点。由于第四级域名,如branch.name.blabla.com 有没有办法在$(Build.SourceBranchName)绑定到参数\u WEBSITENAME之前从中删除非法字符?您可以在网站名称中使用它之前添加一个额外的任务,以从分支名称中删除点。例如,可以添加任务以运行一个shell脚本: a="$(echo $(Build.SourceBran

我正在使用Azure Devops发布管道自动将请求发布到测试域
branchname.blabla.com

一切正常,但有时分支名称包含点。由于第四级域名,如
branch.name.blabla.com


有没有办法在$(Build.SourceBranchName)绑定到参数\u WEBSITENAME之前从中删除非法字符?

您可以在
网站名称中使用它之前添加一个额外的任务,以从分支名称中删除点。例如,可以添加任务以运行一个shell脚本:

a="$(echo $(Build.SourceBranchName) | tr -d .)"
echo "##vso[task.setvariable variable=BranchName]$a"
在这个脚本中,它首先从
$(Build.SourceBranchName)
值中删除点
。然后创建一个新变量
BranchName
,并将修改后的值赋给它

现在,在下一个任务中,您可以使用
$(BranchName)
调用这个修改后的值


周末过后,我可以知道这家公司的情况吗?下面的脚本是否有助于实现您的目标?如果你对此仍有疑问,请毫不犹豫地分享你的评论。问题是,输入参数的绑定发生在阶段中的任何任务之前。我试图添加另一个阶段,但无法将更新的变量传递到下一个阶段。@irriss,那么,您的意思是网站名称已修改,而部署的网站在一个阶段中不存在?这是否发生在具有UI的发布管道中?如果是的话,我可以和你分享一个脚本,使新的网站名称可以用于整个管道。一切都在一个阶段。我的意思是,首先解析pipleline参数“Website Name”,任务iisweb-App部署始终使用初始值。无论我在任务中做什么,都不会更改传递给IIS Web App Deploy的“网站名称”值@Irris,这是因为在该任务中,您仍在调用无法手动修改和覆盖的环境变量。您可以在上面的脚本中看到,我将修改后的分支名称存储到新变量BranchName中。然后使用$(BranchName)调用它。IIS Web App部署任务中的网站名称链接到同名的管道参数。您是否建议我取消链接,然后用更新的变量$(BranchName)替换它?