Azure devops Azure Devops在yaml中处理特殊字符

Azure devops Azure Devops在yaml中处理特殊字符,azure-devops,Azure Devops,我对Azure Devops yaml脚本有问题,因为它不能正确地提取我的变量来构建我的ReactJS项目。下面是脚本,但不知怎的,构建在git push时失败了,并且用户名没有被获取 pool: vmImage: 'Ubuntu 16.04' steps: - task: NodeTool@0 inputs: versionSpec: '9.8.0' displayName: 'Install Node.js' - script: | npm install -

我对Azure Devops yaml脚本有问题,因为它不能正确地提取我的变量来构建我的ReactJS项目。下面是脚本,但不知怎的,构建在git push时失败了,并且用户名没有被获取

pool:
  vmImage: 'Ubuntu 16.04'

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '9.8.0'
  displayName: 'Install Node.js'

- script: |
    npm install --no-save
    npm run build
    git push https://"$(azure.Username)":$(azure.Password)@$(azure.AppName).scm.azurewebsites.net:443/$(azure.AppName).git master
  displayName: 'npm install and build'

我的解决方案与下面的yml文件一致,您可以将变量设置为带有“$”符号。另一个更好的方法是使用Azure DevOps本身中的步骤

image: node:9.8.0
clone:
  depth: full
pipelines:
  default:
    - step:
        script:
          - npm install --no-save
          - npm run build
          - git push https://$AZURE_LOGIN:$AZURE_PASSWORD@$AZURE_APP_NAME.scm.azurewebsites.net:443/$AZURE_APP_NAME.git master

正确的答案是将变量用单引号括起来:
“$(myVariable)
。这会阻止yaml解析器解析变量的内容

您得到的错误是什么?另外
azure.UserName
是您的实际变量名吗?我不清楚这里的git路径!这是您的示例/虚拟git吗?我的用户名具有特殊字符,如$abc,因此在npm构建之后,它应该使用git push命令推送到Azure Webapp。不幸的是,它没有拾取变量并导致错误。同样的命令也适用于BitBucket构建管道YAML文档没有任何对word脚本的引用,因此如果您指出“YAML[sic!]script”的含义,这将非常有用。您是否试图传达“使用Azure Devops脚本的YAML文档”或“使用具有脚本步骤的Azure Devops YAML文档”或其他信息?使用变量中的单引号解决了此问题,如“$xxx”@jokerday您可以将此解决方案作为答案发布,这对阅读此线程的其他社区成员可能是有益的。看起来您正在使用由Azure定义并由目标shell扩展的环境变量,而不是在shell看到命令之前预先扩展的Azure宏,对吗?