Azure DevOps管道无法在运行时扩展任何环境变量

问题描述 投票:0回答:1

我在新管道上遇到问题,我正在Azure DevOps上为微服务设置,其中管道似乎无法引用由构建环境提供的环境变量。

我在管道中执行了一个步骤,该步骤运行一个Powershell脚本,该脚本会打印出所有环境变量以用于调试目的,这使我可以确认该环境确实包含我要使用的变量。]​​>

这些变量是BUILD_DEFINITIONNAME = my-microservice-repoBUILD_BUILDNUMBER = 20200519.2。本质上,我想将这两个变量组合在一起以创建另一个变量来命名我的docker容器,因此我将拥有一个等于$(BUILD_DEFINITIONNAME):$(BUILD_BUILDNUMBER)的变量,该变量应该

扩展为my-microservice-repo:20200519.2。我们将这个变量称为imageName。我在.yml脚本的变量部分中将其定义为
variables:
  - name: imageName
    value: $(BUILD_DEFINITIONNAME):$(BUILD_BUILDNUMBER)

但是,如果我尝试在Docker步骤上使用此变量:

    - task: Docker@0
      inputs:
        dockerFile: Dockerfile
        azureSubscriptionEndpoint: 'endpoint'
        azureContainerRegistry: 'my container registry'
        imageName: $(imageName)
        action: 'Build an image'

    - task: Docker@0
      inputs:
        azureSubscriptionEndpoint: 'endpoint'
        azureContainerRegistry: 'my container registry'
        action: 'Push an image'
        imageName: $(imageName)

然后在脚本运行时,出现此错误:##[error]invalid argument "myazurecontainerregistry.azurecr.io/$(build_definitionname):$(build_buildnumber)" for "-t, --tag" flag: invalid reference format

很明显,自从我得到$(build_definitionname):$(build_buildnumber)以来,它正确地连接了字符串,但是,尽管它们都像我前面提到的那样都存在于打印变量中,但它们并没有被扩展。

我需要做一些特别的事情来允许在脚本中使用环境变量吗?我复制了yml脚本后,我们还有其他运行良好的管道脚本,但是我的拒绝工作,我不知道为什么,我的同事也找不到。

任何帮助将不胜感激。

我在使用新管道时遇到问题,我正在Azure DevOps上为微服务设置,其中管道似乎无法引用由构建环境提供的环境变量。我...

azure-devops continuous-integration
1个回答
0
投票

想通了。我给我要使用的变量命名错误。

© www.soinside.com 2019 - 2024. All rights reserved.