在 Azure DevOps 中,与相同的 YAML 管道模板相比,经典编辑器模板中的任务缺失

Posted

技术标签:

【中文标题】在 Azure DevOps 中,与相同的 YAML 管道模板相比,经典编辑器模板中的任务缺失【英文标题】:In Azure DevOps, Task inside Classic Editor Template is missing compared to the same YAML Pipeline template 【发布时间】:2019-11-08 10:35:31 【问题描述】:

我有两种方法在 Azure DevOps 上构建管道,使用 YAML 管道模板或在经典编辑器中预设任务(也可以转换为任务组)。 如果我以其中任何一种方式选择相同的模板,经典编辑器中的相同任务可能会从其 YAML 管道模板对应项中丢失。

我选择了两种方式的 .NET 桌面。 https://i.imgur.com/2fGcZ14.png

在经典编辑器中,我可以看到其中 2 个发布任务,如下所示。 https://i.imgur.com/yxYxD44.png

使用 YAML 管道,上面看到的 2 个任务虽然丢失了。

# .NET Desktop
# Build and run tests for .NET Desktop or Windows classic desktop solutions.
# Add steps that publish symbols, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/apps/windows/dot-net

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

我不知道为什么会这样。感谢您对此的一些帮助或指示,在此先感谢。

【问题讨论】:

【参考方案1】:

这两个任务都没有丢失,但您可能需要手动添加它们。

发布工件不再是一项独立的任务,它已成为 YAML 管道的核心功能的一部分,因此它是一个名为 publish 的原生步骤。

steps:
- publish: output/files # path to files/directory containing files you want to publish
  artifact: myartifact # Name of the artifact

至于复制文件,那还是个任务,as documented here

The docs for YAML pipelines are pretty good IMO

还有complete reference for the all the built-in tasks

【讨论】:

以上是关于在 Azure DevOps 中,与相同的 YAML 管道模板相比,经典编辑器模板中的任务缺失的主要内容,如果未能解决你的问题,请参考以下文章

Azure Devops 私有构建代理在 nuget 还原任务中失败

如何将 Azure Policy 与 Azure DevOps 集成?

如何在 Azure DevOps 中查看与发布关联的工作项

如何将 Azure DevOps Extension for Azure CLI 与 Azure DevOps Server 一起使用?

将文件上传到 azure devops

链接 Azure DevOps 管道