如何在Azure Devops上使用条件图像标签构建yaml管道?

时间:2019-01-15 12:57:26

标签: azure-devops

对于几种环境,我需要具有不同的docker映像标记策略,即:开发和发行版应使用“最新”标记,而生产版应具有适当的版本标记。

我目前正在对所有AzureDevOps构建管道使用单个Yaml文件,并且希望将图像标记模式定义为每个构建的变量,/ let称为$(Versioned)/。

构建步骤如下所示:

steps
- bash: docker push $(imageFullName):latest
  displayName: 'docker push'

因此,这里有任何方法可以使用IF语句或其他条件操作。 例如:

steps
- bash: docker push $(imageFullName):IF($(Versioned), $(Build.BuildNumber), latest)
  displayName: 'docker push'

1 个答案:

答案 0 :(得分:1)

您可以使用以下方法进行此操作:

steps
- bash: docker push $(imageFullName):latest
  displayName: 'docker push'
  condition: eq($(Versioned), 'true')
- bash: docker push $(imageFullName):$(Build.BuildNumber)
  displayName: 'docker push'
  condition: ne($(Versioned), 'true')