Azure DevOps、YAML 发布管道?

Azure DevOps, YAML release pipelines?

我正在按照此过程为 .NET Core Web API 项目创建 YAML 构建管道:

https://docs.microsoft.com/en-us/azure/devops/pipelines/get-started-yaml?view=vsts

在发布时,我注意到(最近重命名的)Azure DevOps 似乎不支持 YAML 来定义发布管道。但是,我可以看到已经定义了部署任务,例如:

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-rm-web-app-deployment?view=vsts

我们是否期望升级发布管道功能以支持 YAML,如果是,何时?

在撰写此回复时,功能时间表反映了 yaml 版本将于 2018 年第三季度发布。

https://docs.microsoft.com/en-us/azure/devops/release-notes/

更新:这已经被撞了几次。建议查看下面的评论,因为人们一直在提供他们发现的更新。

更新

根据评论,这现在是可能的: https://devblogs.microsoft.com/devops/whats-new-with-azure-pipelines/。以下是从文章中复制粘贴并使用各个阶段进行演示:

stages:
- stage: Build
  jobs:
  - job: Build
    pool:
      vmImage: 'Ubuntu-16.04'
    continueOnError: true
    steps:
    - script: echo my first build job
- stage: Deploy
  jobs:
    # track deployments on the environment
  - deployment: DeployWeb
    pool:
      vmImage: 'Ubuntu-16.04'
    # creates an environment if it doesn’t exist
    environment: 'smarthotel-dev'
    strategy:
      # default deployment strategy
      runOnce:
        deploy:
          steps:
          - script: echo my first deployment

产品团队正在努力。您可以通过 Release notes 跟踪更新。

此刻我正在做这样的事情,但我使用的是当前的 REST API。我正在做的事情与我在此处记录的内容类似 ()。基本上,我将模板化的 JSON Release Pipeline 文件保存到源代码存储库中,其中包含可变占位符和嵌入的版本号。然后有一个调用 Azure DevOps 的 PowerShell 脚本(这是一个很长的词,我更喜欢输入 VSTS,也许我会开始输入 AD)

  • 用于检查发布管道是否存在的 REST API - 有效
  • 如果不存在则创建 - 有效
  • 比较嵌入式版本并在必要时更新(我被困在这里,但我会解决它,返回错误,即使我已经更改了正在更新的管道也没有改变。)

我希望它在构建管道期间执行,这样我就不必再手动修改大量类似的发布管道。我也希望它是一个 YAML 文件,但这就是我今天所拥有的。希望对您有所帮助。

管道由一个或多个作业组成,可能包括资源和变量。作业由一个或多个步骤加上一些特定于作业的数据组成。步骤可以是任务、脚本或对外部模板的引用。这反映在 YAML 文件的结构中。请访问here了解详情

YAML build 管道创建体验正在预览中。 (今天是2018-12-04)

release 管道的 YAML 似乎还有一段路要走:2019 Q2

可以像这样从您的个人资料启用预览功能:

编辑: 正如 nullforce 在评论中指出的那样,这只会为构建管道启用 YAML 体验,而不是发布管道。

更新(2019-05-16):继微软的"Build 2019"之后,构建和部署的完整 YAML 体验现在应该可以在同一个 YAML 管道中实现文件。