使用Azure DevOps,如何将发布管道迁移到代码,类似于构建管道yml?

时间:2019-09-11 00:08:42

标签: azure azure-devops

如果我没记错的话,Azure Devops设置为添加一项功能,以允许将发布管道放入yaml中,类似于构建管道。该功能可用吗?

我是否希望获得有关将旧版经典发行渠道迁移到新格式的指导?

更新:看来我只差4个月了。发表于2019年5月6日

  

有了我们的新更新,开发团队现在可以利用相同的YAML文档以代码形式构建多阶段管道,以实现持续集成和持续交付。这是我们客户最大的要求之一

对于像我这样的人,这里有一些有用的链接:手动创建了许多对新格式感兴趣的经典发行管道。

https://azure.microsoft.com/en-us/updates/unified-pipelines/

https://azure.microsoft.com/en-us/blog/accelerating-devops-with-github-and-azure/

2 个答案:

答案 0 :(得分:1)

我发现Microsoft提供了一些内置帮助,可以将发布管道从经典的基于GUI的发布管道迁移到基于YAML的管道。

如果您编辑经典的基于GUI的Release管道并向下钻取任务,则右上角有一个链接,该链接显示查看YAML

Task in a Release pipeline showing the View YAML link

单击链接将生成与任务关联的YAML。不幸的是,它不包含字段值。而是使用变量,而不指定这些变量的值:

steps:
- task: IISWebAppManagementOnMachineGroup@0
  displayName: 'IIS Web App Manage'
  inputs:
    IISDeploymentType: '$(Parameters.IISDeploymentType)'
    ActionIISWebsite: '$(Parameters.ActionIISWebsite)'
    WebsiteName: '$(Parameters.WebsiteName)'
    WebsitePhysicalPath: '%SystemDrive%\inetpub\wwwroot\AspNetDemo'
    AddBinding: '$(Parameters.AddBinding)'
    Bindings: '$(Parameters.Bindings)'
    ParentWebsiteNameForVD: '$(Parameters.WebsiteName)'
    VirtualPathForVD: '$(Parameters.VirtualPathForApplication)'
    ParentWebsiteNameForApplication: '$(Parameters.WebsiteName)'
    VirtualPathForApplication: '$(Parameters.VirtualPathForApplication)'
    AppPoolName: '$(Parameters.AppPoolName)'

幸运的是,GUI中的任务具有针对大多数字段的链接,并具有特定于字段的帮助。该帮助提到了哪个变量映射到字段值:

Task in a Release pipeline showing the help linked to a field, highlighting the variable that maps to the field

因此,您可以遍历任务中的每个字段,确定哪个变量对应于每个字段,以算出要添加到YAML代码段中的值。

这有点费力,但是比尝试从头开始解决所有问题要快。

不幸的是,似乎没有任何方法可以在工作或阶段级别上查看YAML,而只能在任务级别上查看。因此,您必须为每个任务重复该过程。您还必须制定自己定义阶段和工作的YAML。

答案 1 :(得分:0)